当前位置: 首页 > news >正文

mip网站有什么好处保定关键词排名推广

mip网站有什么好处,保定关键词排名推广,wordpress可爱主题,深圳企业网站定制公司直接参考【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.81 本文仅作为个人笔记使用#xff0c;方便进一步记录自己的实践总结。 前面我们已经移植好了 uboot 和 linux kernle#xff0c;制作好了根文件系统。但是我们移植都是通过网络来测试的#xff0c;在实际的产品开发中… 直接参考【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.81 本文仅作为个人笔记使用方便进一步记录自己的实践总结。 前面我们已经移植好了 uboot 和 linux kernle制作好了根文件系统。但是我们移植都是通过网络来测试的在实际的产品开发中肯定不可能通过网络来运行否则没网的时候产品岂不是就歇菜了。因此我们需要将 uboot、linux kernel、.dtb(设备树)和 rootfs 这四个文件烧写到板子上的 EMMC、NAND 或 QSPI Flash 等其他存储设备上这样不管有没有网络我们的产品都可以正常运行。本章我们就来学习一下如何使用 NXP 官方提供的 MfgTool 工具通过 USB OTG 口来烧写系统。 MfgTool 工具简介 MfgTool 工具是 NXP 提供的专门用于给 I.MX 系列 CPU 烧写系统的软件可以在 NXP 官网下载到。此工具已经放到了开发板光盘中路劲为5、开发工具-3、NXP官方原版MFG_TOOL烧写工具-L4.1.15_2.0.0-ga_mfg-tools.tar.gz。此软件在 Windows 下使用对于我们来说太友好了。将此压缩包进行解压解压完成以后会出现一个名为 L4.1.15_2.0.0-ga_mfg-tools 的文件夹进入此文件夹此文件夹的内容如图 39.1.1 所示 从图 39.1.1 可以看出有两个.txt 文件和两个.gz 压缩包。.txt 文档就不去看了重点是这两个.gz 压缩包这两个压缩包的区别在名字上已经写的很详细了。“without-rootfs”和“with-rootfs”一个是带 rootfs 和一个是不带 rootfs。mfg_tools 这个工具本意是给 NXP 自己的开发板设计的烧写软件所以肯定带有自家开发板对应的 uboot、linux kernel 和 rootfs 的文件。我们肯定是要烧写文件系统的所以选择 mfgtools-with-rootfs.tar.gz 这个压缩包继续对其解压 解压出一个名为 mfgtools-with-rootfs 的文件夹此文件夹就包含有我们需要的烧写工具。 进入目录 mfgtools-with-rootfs\mfgtools 中在此目录下有几个文件夹和很多的.vbs 文件如图 39.1.2 所示 我们只关心图 39.1.2 中 Profiles 这个文件夹因为后面要烧写文件就放到这个文件夹中。MfgTool2.exe 就是烧写软件但是我们不会直接打开这个软件烧写mfg_tools 不仅能烧写I.MX6U而且也能给 I.MX7、I.MX6Q 等芯片烧写所以在烧写之前必须要进行配置指定烧写的是什么芯片烧写到哪里去下面的这些众多的.vbs 文件就是配置脚本烧写的时候通过双击这些.vbs 文件来打开烧写工具。这些.vbs 烧写脚本既可以根据处理器的不同由用户选择向 I.MX6D、I.MX6Q、I.MX6S、I.MX7、I.MX6UL 和 I.MX6ULL 等的哪一款芯片烧写系统。也可以根据存储芯片的不同选择向 EMMC、NAND 或 QSPI Flash 等的哪一种存储设备烧写功能非常强大我们现在需要向 I.MX6U 烧写系统因此需要参考表 39.1.1 所示的 5 个烧写脚本 其他的.vbs 烧写脚本用不到因此可以删除掉防止干扰我们的视线。本书用的是正点原子的 EMMC 版核心板因此只会用到 mfgtool2-yocto-mx-evk-emmc.vbs 这个烧写脚本如果用其他的核心板请参考相应的烧写脚本。 MfgTool 工作原理简介 MfgTool 只是个工具具体的原理不需要去深入研究大概来了解一下其工作原理就行了知道它的工作流程就行了。 烧写方式 1、连接 USB 线 MfgTool 是通过 USB OTG 接口将系统烧写进 EMMC 中的正点原子 I.MX6U-ALPHA 开发板 V2.4 版本以前的底板上 USB OTG 口如图 39.2.1.1 所示 V2.4 及以后版本底板上 USB OTG 换为了 Type-C接口如图 39.2.1.2 所示 在烧写之前需要先用 USB 线将图 39.2.1.1 或图 39.2.1.2 中的 USB_OTG1 接口与电脑连接起来。 2、拨码开关拨到 USB 下载模式 将拨码开关拨到“USB”模式如图 39.2.1.3 所示 如果插了 TF 卡请弹出 TF 卡否则电脑不能识别 USB等识别出来以后再插上 TF 卡一切准备就绪以后按一下开发板的复位键此时就会进入到 USB 模式如果是第一次进入 USB 模式的话可能会久一点这个是免驱的因此不需要安装驱动。第一次进入 USB 模式会在电脑右下角有如图 39.2.1.4 所示提示 一旦第一次设置好设备以后后面每次连接都不会有任何提示了。到这里我们的开发板已经和电脑连接好了可以开始烧写系统了。 系统烧写原理 开发板连接电脑以后双击“mfgtool2-yocto-mx-evk-emmc.vbs”打开下载对话框如图39.2.2.1 所示 如果出现“符合 HID 标准的供应商定义设备”就说明连接正常可以进行烧写如果出现其他的字符那么就要检查连接是否正确。点击“Start”按钮即可开始烧写烧写什么东西呢肯定是烧写 uboot、Linux kernel、.dtb 和 rootfs那么这四个应该放到哪里 MfgTool 才能访问到呢进入如下目录中 L4.1.15_2.0.0-ga_mfg-tools/mfgtools-with-rootfs/mfgtools/Profiles/Linux/OS Firmware 此目录中的文件如图 39.2.2.2 所示 文件夹“OS Firmware”看名字就知道是存放系统固件的我们重点关注 files、firmware 这两个文件夹以及 ucl2.xml 这个文件。在具体看这三个文件和文件夹之前我们先来简单了解一下 MfgTool 烧写的原理MfgTool 其实是先通过 USB OTG 先将 uboot、kernel 和.dtb(设备树)这是三个文件下载到开发板的 DDR 中注意不需要下载 rootfs。就相当于直接在开发板的 DDR上启动 Linux 系统等 Linux 系统启动以后再向 EMMC 中烧写完整的系统包括 uboot、linuxkernel、.dtb(设备树)和 rootfs因此 MfgTool 工作过程主要分两个阶段 ①、将 firmware 目录中的 uboot、linux kernel 和.dtb(设备树)然后通过 USB OTG 将这个文件下载到开发板的 DDR 中目的就是在 DDR 中启动 Linux 系统为后面的烧写做准备。 ②、经过第①步的操作此时 Linux 系统已经运行起来了系统运行起来以后就可以很方便的完成对 EMMC 的格式化、分区等操作。EMMC 分区建立好以后就可以从 files 中读取要烧写的 uboot、linux kernel、.dtb(设备树)和 rootfs 这 4 个文件然后将其烧写到 EMMC 中这个就是 MfgTool 的大概工作流程。 1、firmeare 文件夹 打开 firmware 文件夹里面有很多的.imx 结尾的 uboot 文件、一个 zImage 镜像文件、很多.dtb结尾的设备树文件。这些文件都是NXP官方开发板使用的不同的板子使用不同的文件其中我们需要关心的只有表 39.2.2.1 中的这三个文件 zImage NXP 官方 I.MX6ULL EVK 开发板的 Linux 镜像文件。 u-boot-imx6ull14x14evk_emmc.imx NXP 官方 I.MX6ULL EVK 开发板的 uboot 文件。 zImage-imx6ull-14x14-evk-emmc.dtb NXP 官方 I.MX6ULL EVK 开发板的设备树 这三个文件就是 I.MX6ULL EVK 开发板烧写系统的时候第一阶段所需的文件。如果要烧写我们的系统就需要用我们编译出来的 zImage、u-boot.imx 和 imx6ull-alientek、emmc.dtb 这三个文件替换掉表 39.2.2.1 中这三个文件。但是名字要和表 39.2.2.1 中的一致因此需要将 u-boot.imx 重命名为 u-boot-imx6ull14x14evk_emmc.imx将 imx6ull-alientek-emmc.dtb重命名为 zImage-imx6ull-14x14-evk-emmc.dtb。 2、files 文件夹 将表 39.2.2.1 中的这三个文件下载到开发板的 DDR 上以后烧写的第一阶段就完成了第二阶段就是从 files 目录中读取整个系统文件并将其烧写到 EMMC 中。files 目录中的文件和firmware 目录中的基本差不多都是不同板子对应的 uboot、设备树文件同样我们只关心表39.2.2.2 中的四个文件 zImage NXP 官方 I.MX6ULL EVK 开发板的 Linux 镜像文件。 u-boot-imx6ull14x14evk_emmc.imx NXP 官方 I.MX6ULL EVK 开发板的 uboot 文件。 zImage-imx6ull-14x14-evk-emmc.dtb NXP 官方 I.MX6ULL EVK 开发板的设备树 rootfs_nogpu.tar.bz2 根文件系统注意和另外一个 rootfs.tar.bz2 根文件系统区分开。nogpu 表示此根文件系统不包含 GPU 的内容I.MX6ULL 没有 GPU因此要使用此根文件系统表 39.2.2.2 I.MX6ULL EVK 开发板烧写文件如果要烧写我们自己编译出来的系统就需要用我们编译出来的 zImage、u-boot.imx 和imx6ull-alientek-emmc.dtb 和 rootfs 这四个文件替换掉表 39.2.2.2 中这四个文件。 3、ucl2.xml 文件 files 和 firmware 目录下有众多的 uboot 和设备树那么烧写的时候究竟选择哪一个呢这个工作就是由 ucl2.xml 文件来完成的。ucl2.xml 以“UCL”开始以“/UCL”结束。“CFG”和“/CFG”之间是配置相关内容主要是判断当前是给 I.MX 系列的哪个芯片烧写系统。“LIST”和“/LIST”之间的是针对不同存储芯片的烧写命令。整体框架如下 通过读取芯片的VID和 PID 即可判断出当前要烧写什么处理器的系统如果 VID0X15A2PID0080那么就表示要给 I.MX6ULL 烧写系统。确定了处理器以后就要确定向什么存储设备烧写系统这个时候就要有请 mfgtool2-yocto-mx-evk-emmc.vbs 再次登场此文件内容如下 示例代码 39.2.2.3 mfgtool2-yocto-mx-evk-emmc.vbs 文件内容 Set wshShell CreateObject(WScript.shell) wshShell.run mfgtool2.exe -c linux -l eMMC -s boardsabresd -s mmc1 -s 6uluboot14x14evk -s 6uldtb14x14-evk Set wshShell Nothing 重点是“wshShell.run”这一行这里一行调用了 mfgtool2.exe 这个软件并且还给出了一堆的参数其中就有“eMMC”字样说明是向 EMMC 烧写系统要烧写的存储设备就这样确定下来了。“wshShell.run”后面还有一堆的其他参数这些参数都有对应的值如下所示 boardsabresd mmc1 6uluboot14x14evk 6uldtb14x14-evk 我们继续回到 ucl2.xml 中既然现在已经知道了是向 I.MX6ULL 的 EMMC 中烧写系统那么直接在 ucl2.xml 中找到相应的烧写命令就行了因为相应的命令太长为了缩小篇幅我们就以 uboot 的烧写为例讲解一下。前面说了烧写分两个阶段第一步是通过 USB OTG 向 DDR中下载系统第二步才是正常的烧写。通过 USB OTG 向 DDR 下载 uboot 的命令如下 示例代码 39.2.2.4 通过 USB OTG 下载 uboot CMD stateBootStrap typeboot bodyBootStrap file firmware/u boot-imx6ul%lite%%6uluboot%_emmc.imx ifdevMX6ULLLoading U-boot /CMD 上面的命令就是BootStrap阶段也就是第一阶段“file”表示要下载的文件位置在firmware目录下文件名字为u-boot-imx6ul%lite%%6uluboot%_emmc.imx在 L4.1.15_2.0.0-ga_mfg-tools\mfgtools-with-rootfs\mfgtools-with-rootfs\mfgtools 下找到 cfg.ini 文件该文件里包含了开发板的一些信息查看 cfg.ini 文件可得 litel 以及一些字符串代表的值。 “%lite%”和“%6uluboot%”分别表示取 lite 和 6uluboot 的值而 litel6uluboot14x14evk 因此将这个值代入以后就是 u-boot-imx6ull14x14evk _emmc.imx 所以这里向 DDR 中下载的是 firmware/ u-boot-imx6ull14x14evk _emmc.imx 这个 uboot 文件。同样的方法将.dtb(设备树)和 zImage 都下载到 DDR 中以后就会跳转去运行 OS这个时候会在 MfgTool 工具中会有“Jumping to OS image”提示语句ucl2.xml 中的跳转命令如下 示例代码 39.2.2.5 跳转到 OS CMD stateBootStrap typejump Jumping to OS image. /CMD 启动 Linux 系统以后就可以在 EMMC 上创建分区然后烧写 uboot、zImage、.dtb(设备树)和根文件系统。 这个就是 MfgTool 的整个烧写原理弄懂了烧写原理以后就可以开始试着先将 NXP 官方的系统烧写到正点原子的 I.MX6U-ALPHA 开发板中。 烧写 NXP 官方系统 我们先试着将 NXP 官方的系统烧写到正点原子的 I.MX6U-ALPHA 开发板中主要是先熟悉一下烧写过程。因为正点原子的 EMMC 核心版用的也是 512MB 的 DDR3 加 8G 的 EMMC因此烧写 NXP 官方的系统是没有任何问题的。烧写步骤如下 ①、连接好 USB拨码开关拨到 USB 下载模式。 ②、弹出 TF 卡然后按下开发板复位按键。 ③、打开 SecureCRT。 ③、双击“mfgtool2-yocto-mx-evk-emmc.vbs”打开下载软件如果出现“符合 HID 标准的供应商定义设备”等字样就说明下载软件已经准备就绪。点击“Start”按钮开发烧写 NXP 官方系统烧写过程如图 39.3.1 所示 这个时候可以在 SecurCRT 上看到具体的烧写过程如图 39.3.2 所示 等待烧写完成因为 NXP 官方的根文件系统比较大因此烧写的时候耗时会久一点。烧写完成以后 MfgTool 软件如图 39.3.3 所示 烧写完成以后点击“Stop”按钮停止烧写然后点击“Exit”键退出。拔出 USB 线将开发板上的拨码开关拨到 EMMC 启动模式然后重启开发板此时就会从 EMMC 启动。只是启动以后的系统是 NXP 官方给 I.MX6ULL EVK 开发板制作的这个系统需要输入用户名用户名为“root”没有密码如图 39.3.3 所示 在“imx6ul7d login”后面输入“root”用户名然后点击回车键即可进入系统中进入系统以后就可以进行其他操作了。所以说NXP 官方的系统其实是可以在正点原子的 EMMC 版核心板上运行的。 烧写自制的系统 1 系统烧写 上一小节我们试着将 NXP 官方提供的系统烧写到正点原子的 I.MX6U-ALPHA 开发板中目的是体验一下通过 MfgTool 烧写系统的过程。本小节我们就来学习如何将我们做好的系统烧写到开发板中首先是准备好要烧写的原材料 ①、自己移植编译出来的 uboot 可执行文件u-boot.imx。 ②、自己移植编译出来的 zImage 镜像文件和开发板对应的.dtb(设备树)对于 I.MX6UALPHA 开发板来说就是 imx6ull-alientek-emmc.dtb。 ③、自己构建的根文件系统 rootfs这里我们需要对 rootfs 进行打包进入到 Ubuntu 中的rootfs 目录中然后使用 tar 命令对其进行打包命令如下 cd rootfs/ tar -vcjf rootfs.tar.bz2 * 完成以后会在 rootfs 目录下生成一个名为 rootfs.tar.bz2 的压缩包将 rootfs.tar.bz2 发送到windows 系统中。 将上面提到的这 4 个“原材料”都发送到 Windows 系统中如图 39.4.1 所示 材料准备好以后还不能直接进行烧写必须对其进行重命名否则的话 ucl2.xml 是识别不出来的前面讲解 ucl2.xml 语法的时候已经说过了图 39.4.1 中的这四个文件重命名见表 39.4.1 完成以后如图 39.4.2 所示 接下来就是用我们的文件替换掉 NXP 官方的文件先将图 39.4.2 中的 zImage、u-boot-imx6ull14x14evk_emmc.imx 和 zImage-imx6ull-14x14-evk-emmc.dtb 这三个文件拷贝到 mfgtools with-rootfs/mfgtools/Profiles/Linux/OS Firmware/firmware 目录中替换掉原来的文件。然后将图39.4.2 中的所有 4 个文件都拷贝到 mfgtools-with-rootfs/mfgtools/Profiles/Linux/OS Firmware/files目录中这两个操作完成以后我们就可以进行烧写了。 双击“mfgtool2-yocto-mx-evk-emmc.vbs”打开烧写软件点击“Start”按钮开始烧写由于我们自己制作的 rootfs 比较小因此烧写相对来说会快一点。烧写完成以后设置开发板从EMMC 启动启动我们刚刚烧写进去的系统测试有没有问题。 注意一旦自己改造的 mfgtools 工 具 能 够 正 常 烧 写 系 统 那 么 mfgtools-with rootfs/mfgtools/Profiles/Linux/OS Firmware/firmware 目录下的文件以后就不能再修改否则可能导致烧写失败 2 网络开机自启动设置 大家在测试网络的时候可能会发现网络不能用这并不是因为我们将系统烧写到 EMMC 中以后网络坏了。仅仅是因为网络没有打开我们用 NFS 挂载根文件系统的时候因为要使用 NFS服务因此 Linux 内核会打开 eth0 这个网卡现在我们不使用 NFS 挂载根文件系统因此 Linux内核也就不会自动打开 eth0 网卡了。我们可以手动打开网卡首先输入“ifconfig -a”命令查看一下 eth0 和 eth1 是否都存在结果如图 39.4.3 所示 可以看出 eth0 好 eth1 都存在既然存在我们就打开以打开 eth0 网卡为例输入如下命令打开 eth0: ifconfig eth0 up 打开网卡的时候会有如图 39.4.4 所示的提示信息 打开的时候会提示 eth0 连接成功并且是 100Mpbs 全双工eth0 链接准备就绪。这个时候输入“ifconfig”命令就会看到 eth0 这个网卡如图 39.4.6 所示 接下来就是个 eth0 设置 IP 地址如果你的开发板连接的路由器那么可以通过路由器自动分配 IP 地址命令如下 udhcpc -i eth0//通过路由器分配 IP 地址 如果你的开发板连接着电脑那么就可以手动设置 IP 地址比如设置为 192.168.1.251命令如下 ifconfig eth0 192.168.1.251 netmask 255.255.255.0//设置 IP 地址和子网掩码 route add default gw 192.168.1.1//添加默认网关 推荐大家将开发板连接到路由器上设置好 IP 地址以后就可以测试网络了比如 ping 一下电脑 IP 地址或者 ping 一下百度官网。 每次开机以后都要自己手动打开网卡然后手动设置 IP 地址也太麻烦了有没有开机以后自动启动网卡并且设置 IP 地址的方法呢肯定有的我们将打开网卡设置网卡 IP 地址的命令添加到/etc/init.d/rcS 文件中就行了完成以后的 rcS 文件内容如下所示 //示例代码 39.4.2.1 网络开机自启动 1 #!/bin/sh 2 3 PATH/sbin:/bin:/usr/sbin:/usr/bin 4 LD_LIBRARY_PATH$LD_LIBRARY_PATH:/lib:/usr/lib 5 export PATH LD_LIBRARY_PATH runlevel 6 7 #网络开机自启动设置 8 ifconfig eth0 up 9 #udhcpc -i eth0 10 ifconfig eth0 192.168.1.251 netmask 255.255.255.0 11 route add default gw 192.168.1.1 ...... 12 #cd /drivers 13 #./hello 14 #cd / 第 8 行打开 eth0 网卡 第 9 行通过路由器自动获取 IP 地址。 第 10 行手动设置 eth0 的 IP 地址和子网掩码。 第 11 行添加默认网关。 修改好 rcS 文件以后保存并退出重启开发板这个时候 eth0 网卡就会在开机的时候自动启动了我们也就不用手动添加相关设置了。 改造我们自己的烧写工具 改造 MfgTool 在上一小节中我们已经实现了将自己的系统烧写到开发板中但是使用的是“借鸡生蛋”的方法。我们通过将 NXP 官方的系统更换成我们自己制作的系统来完成系统烧写本节我们就来学习一下如何将 MfgTool 这个工具改造成我们自己的工具让其支持我们自己的开发板。要改造 MfgTool重点是三方面 ①、针对不同的核心版确定系统文件相关名字。 ②、新建我们自己的.vbs 文件。 ③、修改 ucl2.xml 文件。 1、确定系统文件名字 确定系统文件名字完全是为了兼容不同的产品比如某个产品有 NAND 和 EMMC 两个版本那么 EMMC 和 NAND 这两个版本的 uboot、zImage、.dtb 和 rootfs 有可能不同。为了在MfgTool 工具中同时支持 EMMC 和 NAND 这两个版本的核心板EMMC 版本的系统文件命名如图 39.5.1.1 所示 2、新建.vbs 文件 直接复制 mfgtool2-yocto-mx-evk-emmc.vbs 文件即可将新复制的文件重命名为 mfgtool2-alientek-alpha-emmc.vbs文件内容不要做任何修改.vbs 文件我们就新建好了。 3、修改 ucl2.xml 文件 在修改 ucl2.xml 文件之前先保存一份原始的 ucl2.xml。将 ucl2.xml 文件改为如下所示内容 待补充。 ucl2.xml 文件我们仅仅保留了给 EMMC 烧写系统如果要支持 NAND 的话可以自行参考原版的 ucl2.xml 文件添加相关的内容。 烧写测试 MfgTool 工具修改好以后就可以进行烧写测试了将 imx6ull-alientek-emmc.dtb、u-boot alientek-emmc.imx和zImage-alientek-emmc这三个文件复制到mfgtools-with rootfs/mfgtools/Profiles/Linux/OS Firmware/firmware 目录中。将 imx6ull-alientek-emmc.dtb、u-boot-alientek-emmc.imx、zImage-alientek-emmc 和 rootfs-alientek-emmc.tar.bz2 这四个文件复制到mfgtools-with-rootfs/mfgtools/Profiles/Linux/OS Firmware/files 目录中。 点击“mfgtool2-alientek-alpha-emmc.vbs”打开 MfgTool 烧写系统等待烧写完成然后设置拨码开关为 EMMC 启动重启开发板系统启动信息如图 39.5.2.1 所示 从图 39.5.2.1 可以看出出现“Starting kernel ...”以后就再也没有任何信息输出了说明Linux 内核启动失败了。接下来就是解决为何 Linux 内核启动失败这个问题。 解决 Linux 内核启动失败 上一小节我们启动系统以后发现输出“Starting kernel ...”以后就再也没有任何信息了难道是系统烧写错误了可以确定的是 uboot 启动正常就是在启动 Linux 的时候出问题了仔细观察 uboot 输出的 log 信息会发现如图 39.5.3.1 所示两行信息 从图 39.5.3.1 可以看出在读取“imx6ull-14x14-evk.dtb”这个设备树文件的时候出错了。重启 uboot进入到命令行模式输入如下命令查看 EMMC 的分区 1 里面有没有设备树文件 mmc dev 1//切换到 EMMC ls mmc 1:1//输出 EMMC1 分区 1 中的所有文件 结果如图 39.5.3.2 所示 从图 39.5.3.2 可以看出此时 EMMC 的分区 1 中是存在设备树文件的只是文件名字为imx6ull-alientek-emmc.dtb因此读取 imx6ull-14x14-evk.dtb 肯定会出错的因为根本就不存在这个文件。之所以出现这个错误的原因是因为 uboot 里面默认的设备树名字就是 imx6ull-14x14-evk.dtb这个我们在讲解 uboot 的时候就已经说过了。解决方法很简单有两种方法 1、重新设置 bootcmd 环境变量值 进入 uboot 的命令行重新设置 bootcmd 和 bootargs 这两个环境变量的值这里要注意的是 bootargs 的值也要重新设置一下命令如下 setenv bootcmd mmc dev 1;fatload mmc 1:1 80800000 zImage;fatload mmc 1:1 83000000 imx6ull-alientek-emmc.dtb;bootz 80800000 - 83000000 setenv bootargs consolettymxc0,115200 root/dev/mmcblk1p2 rootwait rw saveenv 设置好 bootcmd 和 bootargs 这两个环境变量以后重启开发板Linux 系统就可以正常启动。 2、修改 uboot 源码 第 1 种方法每次重新烧写系统以后都要先手动设置一下 bootcmd 的值这样有点麻烦有没有一劳永逸的方法呢肯定是有的就是直接修改 uboot 源码。打开 uboot 源码中的文件include/configs/mx6ull_alientek_emmc.h在宏 CONFIG_EXTRA_ENV_SETTINGS 中找到如下所示内容 示例代码 39.5.3.1 查找设备树文件 194 findfdt\ 195 if test $fdt_file undefined; then \ 196 if test $board_name EVK test $board_rev 9X9; then \ 197 setenv fdt_file imx6ull-9x9-evk.dtb; fi; \ 198 if test $board_name EVK test $board_rev 14X14; then \ 199 setenv fdt_file imx6ull-14x14-evk.dtb; fi; \ 200 if test $fdt_file undefined; then \ 201 echo WARNING: Could not determine dtb to use; fi; \ 202 fi;\0 \ findfdt 就是用于确定设备树文件名字的环境变量fdt_file 环境变量保存着设备树文件名。 第 196 行和 197 行用于判断设备树文件名字是否为 imx6ull-9x9-evk.dtb第 198 行和 199 行用于判断设备树文件名字是否为 imx6ull-14x14-evk.dtb。这两个设备树都是 NXP 官方开发板使用的I.MX6U-ALPHA 开发板用不到因此直接将示例代码 39.5.3.1 中 findfdt 的值改为如下内容 示例代码 39.5.3.1 查找设备树文件 194 findfdt\ 195 if test $fdt_file undefined; then \ 196 setenv fdt_file imx6ull-alientek-emmc.dtb; \ 197 fi;\0 \ 第 196 行如果 fdt_file 未定义的话直接设置 fdt_file imx6ull-alientek-emmc.dtb简单直接不需要任何的判断语句。修改以后重新编译 uboot然后用将新的 uboot 烧写到开发板中烧写完成以后重启测试Linux 内核启动正常。 关于系统烧写就讲解到这里本章我们使用 NXP 提供的 MfgTool 工具通过 USB OTG 口向开发板的 EMMC 中烧写 uboot、Linux kernel、.dtb(设备树)和 rootfs 这四个文件。在本章我们主要做了五个工作 ①、理解 MfgTool 工具的工作原理。 ②、使用 MfgTool 工具将 NXP 官方系统烧写到 I.MX6U-ALPHA 开发板中主要是为了体验一下 MfgTool 软件的工作流程以及烧写方法。 ③、使用 MfgTool 工具将我们自己编译出来的系统烧写到 I.MX6U-ALPHA 开发板中。 ④、修改 MfgTool 工具使其支持我们所使用的硬件平台。 ⑤、修改相应的错误。 关于系统烧写的方法就讲解到这里本章内容不仅仅是为了讲解如何向 I.MX6ULL 芯片中烧写系统更重要的是向大家详细的讲解了 MfgTool 的工作原理。如果大家在后续的工作或学习中使用 I.MX7 或者 I.MX8 等芯片本章同样适用。 随着本章的结束也宣告着本书第三篇的内容也正式结束了第三篇是系统移植篇重点就是 uboot、Linux kernel 和 rootfs 的移植看似简简单单的“移植”两个字引出的却是一篇300 多页的“爱恨情仇”。授人以鱼不如授人以渔本可以简简单单的教大家修改哪些文件、添加哪些内容怎么去编译然后得到哪些文件。但是这样只能看到表象并不能深入的了解其原理为了让大家能够详细的了解整个流程笔者义无反顾的选择了这条最难走的路不管是uboot 还是 Linux kernel从 Makefile 到启动流程都尽自己最大的努力去阐述清楚。奈何笔者水平有限还是有很多的细节没有处理好大家有疑问的地方可以到正点原子论坛www.openedv.com 上发帖留言大家一起讨论学习。
http://www.hkea.cn/news/14308047/

相关文章:

  • 旅游公司的网站怎么做网站设计文字超链接
  • 深圳网站制作十年乐云seo品牌淘宝网站开发类目没法上架商品
  • 企业网站建设ppt介绍it外包服务管理制度
  • 上海房地产网站官网编辑html
  • 专业网站设计招聘信息一个网站需要几个人
  • 网站开发问题装修设计图网站
  • 自己怎么做网站视频赚钱易语言怎么做网站自动登录
  • 做网站资金来源是什么华为云 wordpress
  • 地方网站域名企业建站系统费用
  • 如何设计校园网站ps网站交互设计
  • 第一次找人做网站平谷微网站建设
  • 医院网站建设 南宁公司有域名 如何做网站
  • 榆次做网站北京网站设计公司价格
  • 站长工具箱网站怎么做站群
  • 设计网站用什么语言网站如何收录快
  • 游戏网站建设一条龙去掉 wordpress
  • 网站搬家教程购物网站开发问题域分析
  • 公司直招的招聘网站网站如何发布到网上
  • 什么网站做h5没有广告seo 深圳
  • 自己怎么样做游戏网站上海人才引进网站
  • 胶南网站建设价格wordpress用户发表文章特定目录
  • 石家庄外贸公司网站设计公司四川建设人才考试官网
  • 有什么好的手机推荐网站网站建设培训教程 新手入门到精通
  • 水泵行业网站哪个做的好wordpress post template
  • 建设项目环保竣工验收备案网站建筑施工合同完整版
  • Html手机浏览网站变形wordpress图片上传慢
  • ev123建站wordpress跟php
  • 如何验证网站所有权看手表网站
  • 什么程序做网站网站开发需要用例图吗
  • 广东专注网站建设怎么样广州注册公司地址怎么解决