那个公司做的网站详情页好看,线上企业推广,wordpress 软件公司主题,a5wordpress主题一. 简介
MfgTool 工具是 NXP 提供的专门用于给 I.MX 系列 CPU 烧写系统的软件#xff0c;可以在 NXP 官网下载到。运行在windows下。可以烧写uboot.imx、zImage、dtb#xff0c;rootfs。通过 USB口进行烧写。
上一篇文章简单了解了 烧录工具MfgTool #xff08;针对ALPH…一. 简介
MfgTool 工具是 NXP 提供的专门用于给 I.MX 系列 CPU 烧写系统的软件可以在 NXP 官网下载到。运行在windows下。可以烧写uboot.imx、zImage、dtbrootfs。通过 USB口进行烧写。
上一篇文章简单了解了 烧录工具MfgTool 针对ALPHA开发板的烧写的方法。文章地址如下
ALPHA开发板烧录工具MfgTool烧写过程-CSDN博客 本文简单了解一下 烧录工具MfgTool的工作原理就行了。MfgTool 只是个工具具体的原理不需要去深入研究。 二. ALPHA开发板烧录工具MfgTool烧写原理 MfgTool工具都烧录哪些文件呢 肯定是烧写 uboot、Linux kernel、.dtb 和 rootfs。 那么uboot、Linux kernel、.dtb 和 rootfs 这四个应该放到哪里 MfgTool 才能访问到呢 进入如下目录中 L4.1.15_2.0.0-ga_mfg-tools/mfgtools-with-rootfs/mfgtools/Profiles/Linux/OS Firmware 此目录中的文件如下所示 文件夹“ OS Firmware ”看名字就知道是存放系统固件的我们重点关注 files 、 firmware 这两个文件夹以及 ucl2.xml 这个文件。 MfgTool 烧写的原理 在具体看这三个文件和文件夹之前我们先来简单了解一下 MfgTool 烧写的原理。 MfgTool 其实是先通过 USB OTG 先将 uboot 、 kernel 和 .dtb( 设备树 ) 这三个文件下载到开发板的 DDR 中注意不需要下载 rootfs 。就相当于直接在开发板的 DDR 上启动 Linux 系统等 Linux 系统启动以后再向 Nand-Flash 中烧写完整的系统包括 uboot 、 kernel 、 .dtb( 设备树 ) 和 rootfs。 MfgTool 工作过程主要分两个阶段 1. 将 firmware 目录中的 uboot 、 linux kernel 和 .dtb( 设备树 ) 然后通过 USB OTG 将这个 文件下载到开发板的 DDR 中目的就是在 DDR 中启动 Linux 系统为后面的烧写做准备。 2. 经过第 1 步的操作此时 Linux 系统已经运行起来了系统运行起来以后就可以很方 便的完成对 Nand-Flash 的格式化、分区等操作。 Nand-Flash 分区建立好以后就可以从 files 中读取要烧 写的 uboot 、 linux kernel 、 .dtb( 设备树 ) 和 rootfs 这 4 个文件然后将其烧写到 Nand-Flash中。 三. MfgTool工具中几个文件或文件夹 注意下面介绍 MFGTool工具的几个文件或文件夹以 EMMC 版开发板所使用的文件为例进行说明 1. firmeare 文件夹 打开 firmware 文件夹里面有很多的以 .imx 结尾的 uboot 文件、一个 zImage 镜像文件、很多 .dtb 结尾的设备树文件。这些文件都是 NXP 官方开发板使用的不同的板子使用不同的文件 其中我们需要关心的只有下面 的这三个文件 上表 中的这三个文件就是 I.MX6ULL EVK 开发板烧写系统的时候第一阶段所需的文 件。如果要烧写我们的系统就需要用我们编译出来的 zImage 、 u-boot.imx 和 imx6ull-alientek- emmc.dtb 这三个文件替换掉上表中的 这三个文件。但是名字要和上表中 的一致因 此需要将 u-boot.imx 重命名为 u-boot-imx6ull14x14evk_emmc.imx 将 imx6ull-alientek-emmc.dtb 重命名为 zImage-imx6ull-14x14-evk-emmc.dtb 。 2. files 文件夹 将上表 中的这三个文件下载到开发板的 DDR 上以后烧写的第一阶段就完成了。 第二阶段就是从 files 目录中读取整个系统文件并将其烧写到 EMMC 中。 files 目录中的文件和 firmware 目录中的基本差不多都是不同板子对应的 uboot 、设备树文件同样我们只关心表 下表 中的四个文件 如果要烧写我们自己编译出来的系统就需要用我们编译出来的 zImage 、 u-boot.imx 和 imx6ull-alientek-emmc.dtb 和 rootfs 这四个文件替换掉上表 中这四个文件。 同样的名字也需要跟上表中名字都保持一致。 3. ucl2.xml 文件 files 和 firmware 目录下有众多的 uboot 和设备树那么烧写的时候究竟选择哪一个呢这个工作就是由 ucl2.xml 文件来完成的。 ucl2.xml 以“ UCL ”开始以“ /UCL ”结束。“ CFG ” 和 “ /CFG ” 之间是配置相关内容主要是判断当前是给 I.MX 系列的哪个芯片烧写系统。 UCLCFGSTATE nameBootStrap devMX6SL vid15A2 pid0063/STATE nameBootStrap devMX6D vid15A2 pid0061/STATE nameBootStrap devMX6Q vid15A2 pid0054/STATE nameBootStrap devMX6SX vid15A2 pid0071/STATE nameBootStrap devMX6UL vid15A2 pid007D/STATE nameBootStrap devMX7D vid15A2 pid0076/STATE nameBootStrap devMX6ULL vid15A2 pid0080/STATE nameUpdater devMSC vid066F pid37FF//CFG“ LIST ”和“ /LIST ”之间的是针对不同存储芯片的烧写命令。例如如下是针对 Nand-Flash版芯片的烧录命令 LIST nameNAND Flash descChoose NAND as mediaCMD stateBootStrap typeboot bodyBootStrap file firmware/u-boot-imx6q%plus%%board%_%nand%.imx ifdevMX6QLoading U-boot/CMDCMD stateBootStrap typeboot bodyBootStrap file firmware/u-boot-imx6dl%board%_%nand%.imx ifdevMX6DLoading U-boot/CMDCMD stateBootStrap typeboot bodyBootStrap file firmware/u-boot-imx6sx%sxuboot%_%nand%.imx ifdevMX6SXLoading U-boot/CMDCMD stateBootStrap typeboot bodyBootStrap file firmware/u-boot-imx7d%7duboot%_%nand%.imx ifdevMX7DLoading U-boot/CMDCMD stateBootStrap typeboot bodyBootStrap file firmware/u-boot-imx6ul%6uluboot%_%nand%.imx ifdevMX6ULLoading U-boot/CMDCMD stateBootStrap typeboot bodyBootStrap file firmware/u-boot-imx6ul%lite%%6uluboot%_%nand%.imx ifdevMX6ULLLoading U-boot/CMDCMD stateBootStrap typeload filefirmware/zImage address0x12000000loadSectionOTH setSectionOTH HasFlashHeaderFALSE ifdevMX6Q MX6DLoading Kernel./CMDCMD stateBootStrap typeload filefirmware/zImage address0x80800000loadSectionOTH setSectionOTH HasFlashHeaderFALSE ifdevMX6SL MX6SX MX7D MX6UL MX6ULLLoading Kernel./CMDCMD stateBootStrap typeload filefirmware/%initramfs% address0x12C00000loadSectionOTH setSectionOTH HasFlashHeaderFALSE ifdevMX6Q MX6DLoading Initramfs./CMDCMD stateBootStrap typeload filefirmware/%initramfs% address0x83800000loadSectionOTH setSectionOTH HasFlashHeaderFALSE ifdevMX6SL MX6SX MX7D MX6UL MX6ULLLoading Initramfs./CMDCMD stateBootStrap typeload filefirmware/zImage-imx6q%plus%-%board%-%nanddtb%.dtb address0x18000000loadSectionOTH setSectionOTH HasFlashHeaderFALSE ifdevMX6QLoading device tree./CMDCMD stateBootStrap typeload filefirmware/zImage-imx6dl-%board%-%nanddtb%.dtb address0x18000000loadSectionOTH setSectionOTH HasFlashHeaderFALSE ifdevMX6DLoading device tree./CMDCMD stateBootStrap typeload filefirmware/zImage-imx6sx-%sxdtb%-%nanddtb%.dtb address0x83000000loadSectionOTH setSectionOTH HasFlashHeaderFALSE ifdevMX6SXLoading device tree./CMDCMD stateBootStrap typeload filefirmware/zImage-imx7d-%7ddtb%-%nanddtb%.dtb address0x83000000loadSectionOTH setSectionOTH HasFlashHeaderFALSE ifdevMX7DLoading device tree./CMDCMD stateBootStrap typeload filefirmware/zImage-imx6ul-%6uldtb%-%nanddtb%.dtb address0x83000000loadSectionOTH setSectionOTH HasFlashHeaderFALSE ifdevMX6ULLoading device tree./CMDCMD stateBootStrap typeload filefirmware/zImage-imx6ul%lite%-%6uldtb%-%nanddtb%.dtb address0x83000000loadSectionOTH setSectionOTH HasFlashHeaderFALSE ifdevMX6ULLLoading device tree./CMDCMD stateBootStrap typejump Jumping to OS image. /CMD!--burn the uboot to NAND: -- CMD stateUpdater typepush body$ mount -t debugfs debugfs /sys/kernel/debugMounting debugfs/CMDCMD stateUpdater typepush body$ flash_erase /dev/mtd%part_uboot% 0 0Erasing Boot partition/CMD............................................../LIST MfgTool工具烧录原理简单介绍到这里。后面使用 MfgTool烧录我们自制系统。