windows驱动开发技术详解 pdf(windows驱动开发陈志远)

windows驱动开发技术详解 pdf(windows驱动开发陈志远)By Toradex nbsp 胡珊逢 1 nbsp 简介 通常当编译 nbsp Linux U Boot nbsp 相关源代码时 由于编译工具或者文件系统限制 这些任务需要在 nbsp Linux nbsp 发行版中完成 如常见的 nbsp Ubuntu Fedora Linux Mint Arch Linux nbsp

大家好,我是讯享网,很高兴认识大家。



By Toradex 胡珊逢

1). 简介

通常当编译 Linux、U-Boot 相关源代码时,由于编译工具或者文件系统限制,这些任务需要在 Linux 发行版中完成,如常见的 Ubuntu、Fedora、Linux Mint、Arch Linux 等。在电脑安装双系统,或者虚拟机,是使用 Linux 发行版的主要方式。Windows 推出的 WSL (Windows Subsystem for Linux)则提供了另外一种方式来使用 Linux 系统。本文接下来将介绍如何在 Windows 10 电脑上使用 WSL 来编译使用NXP iMX8 ARM平台的 Linux、U-Boot 和 Device tree overlays。

 

本文所演示的ARM平台来自于Toradex 基于NXP iMX8QM ARM处理器的Apalis iMX8QM ARM嵌入式平台。

 

 

2). 编译流程

WSL 有两个版本,这里我们将使用 WSL 2。在开始安装 WSL之前,推荐先安装 Windows Terminal。这是微软新推出的终端工具,可以很好的兼容 WSL。并且还直接集成了一些 Linux 的命令工具,如  ssh、scp。

WSL 具体的安装方法请参考微软官方的适用于 Linux 的 Windows 子系统安装指南 (Windows 10)。安装完毕后我们将使用 Ubuntu-20.04 为例进行编译演示。

打开 Windows Terminal 点击标签页旁边的 + ,可以看到刚才安装的 Ubuntu-20.04 WSL 已经自动出现在其中。点击后即可启动 Ubuntu 。目前的 WSL 还不支持图形,所以接下来的操作会在 Windows Terminal 以命令行的形式完成。

                                              


讯享网

Windows系统下编译hiredis_Windows系统下编译hiredis

进入Ubuntu-20.04 WSL后,命令操作的形式和通常的 Ubuntu 没有区别。首先安装一些编译所需的软件。

sudo apt updatesudo apt install make bison flexsudo apt install build-essentialsudo apt install libncurses-devsudo apt install libssl-dev

交叉编译工具 gcc 的安装可以通过两种形式。在 Ubuntu-20.04 WSL 中通过 wget 等命令直接下载。另外还可以在Windows  电脑上通过浏览器下载,然后使用 Windows 的文件浏览器直接访问  Ubuntu-20.04 WSL 的文件系统,将编译工具复制进去。交叉编译工具的选择可以参考这里。

在文件浏览器中输入&nbsp;\wsl\(,其会显示电脑上可以用的&nbsp;WSL&nbsp;实例文件系统。例如将适用于&nbsp;Apalis iMX8QM Linux BSP 5.0&nbsp;的&nbsp;&nbsp;gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz&nbsp;复制到&nbsp;Ubuntu-20.04/home/ben&nbsp;目录下。</p><p style="text-align:center;"><img src='https://s2.51cto.com/images/blog//_670b9ba4e58bb80596.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184' alt='Windows系统下编译hiredis_ARM_02' title="image002.png" style="width: 450px; visibility: visible;"></p><p>&nbsp;&nbsp;</p><p>重新回到&nbsp;Windows Terminal&nbsp;命令行终端,解压该工具,并设置环境变量。</p><p>tar vxf gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xzexport ARCH=arm64export DTC_FLAGS="-@"export PATH=/home/ben/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin/:\)PATHexport CROSS_COMPILE=aarch64-none-linux-gnu-

使用&nbsp;git&nbsp;工具下载&nbsp;Linux、U-Boot&nbsp;源码。

git config –global user.name “XXX”git config –global user.email your_emailgit clone -b toradex_imx_v2020.04_5.4.24_2.1.0 git://git.toradex.cn/u-boot-toradex.gitgit clone -b toradex_5.4-2.1.x-imx git://git.toradex.cn/linux-toradex.gitgit clone -b toradex_5.4-2.1.x-imx git://git.toradex.cn/device-tree-overlays.git

详细的编译步骤和说明可以参考我们开发者中心的相关网页说明。

例如编译&nbsp;U-boot

make apalis-imx8_defconfigmake -j3 2&gt;&1 | tee build.log

例如编译&nbsp;Linux&nbsp;和&nbsp;device tree

make defconfigmake -j3 Image 2&gt;&1 | tee build.logmake DTC_FLAGS=“-@” freescale/fsl-imx8qm-apalis-ixora-v1.1.dtb

&nbsp;编译&nbsp;Device tree overlays

cpp -nostdinc -I /linux-toradex/arch/arm64/boot/dts/freescale -I /linux-toradex/include -undef -x assembler-with-cppapalis-imx8_atmel-mxt_overlay.dts apalis-imx8_atmel-mxt_overlay.dts.preprocesseddtc -@ -Hepapr -I dts -O dtb -i /linux-toradex/arch/arm64/boot/dts/freescale -o apalis-imx8_atmel-mxt_overlay.dtboapalis-imx8_atmel-mxt_overlay.dts.preprocessed

&nbsp;当这些都编译好以后,生成的文件都可以通过文件浏览器将其复制出来。

Windows系统下编译hiredis_WSL_03

Windows系统下编译hiredis_iMX8_04

Windows系统下编译hiredis_ARM_05

在完成编译工作后,Windows Terminal&nbsp;命令行终端输入&nbsp;exit&nbsp;命令即可退出&nbsp;WSL,但其仍在后台运行。通过以下命令来查看仍在运行的&nbsp;WSL&nbsp;实例,并将其关闭。

3).&nbsp;总结

借助&nbsp;WSL运行&nbsp;Linux&nbsp;发行版,为&nbsp;Linux&nbsp;开发人员提供一种简便的方式,免去双系统的切换,或者安装庞大的虚拟机系统。WSL&nbsp;是直接运行在&nbsp;CPU&nbsp;上,避免了虚拟化技术的开销。目前该技术也有限制,如WSL&nbsp;还无法使用图形界面,从而使得一些需要借助图形化界面&nbsp;IDE&nbsp;如&nbsp;Eclipse&nbsp;完成的&nbsp;C/C++&nbsp;应用开发还不是很适合。当然网络上也有关于如何在WSL&nbsp;安装&nbsp;X11&nbsp;并通过远程桌面的方式来开启图形界面的说明,但这会影响到&nbsp;WSL&nbsp;的性能。WSL&nbsp;的方式比较适合不需要借助图形界面的编译任务,如make、cmake&nbsp;编译,甚至是&nbsp; Yocto&nbsp;编译等。

小讯
上一篇 2025-05-25 22:38
下一篇 2025-05-28 22:48

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/181978.html