Linux学习笔记---使用MfgTool工具烧写官方系统(一)

        

目录

MfgTool工具简单介绍

软件烧写原理分析

1 、firmeare 文件夹

2 、files 文件夹

3 、ucl2.xml 文件

烧写步骤

1.连接USB线

2.开发板设置为USB模式

3.开发板上电

4.打开烧写软件

5.开始烧写


                          

MfgTool工具简单介绍

MfgTool 工具是 NXP 提供的专门用于给 I.MX 系列 CPU 烧写系统的软件,可以在 NXP 官网下载到。下载后解压

                                          

解压后里面有两个压缩包,两个压缩包的区别在名字上已经写的很详细了。 “without-rootfs”和“with-rootfs”,一个是带 rootfs 和一个是不带 rootfs。

这里要使用到文件系统,所以就要选择mfgtools-with-rootfs文件,解压mfgtools-with-rootfs.tar.gz

                                    

进入到文件夹中

文件夹里面有很多的.vbs 文件,烧写的时候通过双击这些.vbs 文件来打开烧写工具。由于这里面的文件都是针对不同的系统,这里可以将用不到的文件删除掉。

删除完成后留下这几个文件就可以了

这里开发板使用的是EMMC版本的,实际上只会用到第一个vbs文件。

软件烧写原理分析

 在mfgtools-with-rootfs\mfgtools\Profiles\Linux\OS Firmware 文件夹中存放着烧写需要用到的文件。

MfgTool 其实是先通过 USB OTG 先将 uboot、kernel 和.dtb(设备树)这三个文件下载到开发板的 DDR 中,注意不需要下载 rootfs。就相当于直接在开发板的 DDR上启动 Linux 系统,等 Linux 系统启动以后再向 EMMC 中烧写完整的系统,包括 uboot、linux kernel、.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 的大概工作流程。

下面来看一下mfgtools-with-rootfs\mfgtools\Profiles\Linux\OS Firmware中的几个文件的作用。

1 、firmeare 文件夹

打开 firmware 文件夹,里面有很多的.imx 结尾的 uboot 文件、一个 zImage 镜像文件、很多.dtb结尾的设备树文件。这些文件都是NXP官方开发板使用的,不同的板子使用不同的文件。

其中我们需要关心的只有下面的这三个文件:

这三个文件就是 I.MX6ULL EVK 开发板烧写系统的时候第一阶段所需的文件。

将上面这三个文件下载到开发板的 DDR 上以后烧写的第一阶段就完成了,第二阶段就是从 files

目录中读取整个系统文件,并将其烧写到 EMMC 中。下面接着看file文件夹。

2 、files 文件夹

files 目录中的文件和firmware 目录中的基本差不多,都是不同板子对应的 uboot、设备树文件

同样,我们只关心下面四个文件:

3 、ucl2.xml 文件

files 和 firmware 目录下有众多的 uboot 和设备树,那么烧写的时候究竟选择哪一个呢?这

个工作就是由 ucl2.xml 文件来完成的。ucl2.xml 以“<UCL>”开始,以“</UCL>”结束。 “<CFG>”

和“</CFG>”之间是配置相关内容,主要是判断当前是给 I.MX 系列的哪个芯片烧写系统。

“<LIST>”和“</LIST>”之间的是针对不同存储芯片的烧写命令。整体框架如下:

ucl2.xml 首先会判断当前要向 I.MX 系列的哪个芯片烧写系统,然后通过读取芯片的VID和PID来判断当前要烧写什么处理器的系统,接下来通过调用 *.vbs文件来确定给什么存储设备烧写系统。

比如在这里就调用的是mfgtool2-yocto-mx-evk-emmc.vbs 文件

在文件第二行中”eMMC”就表示用EMMC烧写系统。

接下来在ucl2.xml 中找到相应的烧写命令

上面的命令就是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.i

ni 文件,该文件里包含了开发板的一些信息,查看 cfg.ini 文件可得 lite=l 以及一些字符串代表

的值。

      查看这个cfg.ini 文件后发现文件内容中6uluboot的值和正点原子资料上写的值不一样。正点原子资料上写的值如下:

     实际查看cfg.ini 文件内容后,值如下:

将实际配置文件中的值带入后就是:

u-boot-imx6ul%lite%%6uluboot%_emmc.imx = u-boot-imx6ull14x14ddr3arm2_emmc.imx

所以,这里向 DDR 中下载的是 firmware/ u-boot-imx6ull14x14ddr3arm2_emmc.imx

虽然按照实际文件解析出来的uboot文件名是u-boot-imx6ull14x14ddr3arm2_emmc.imx和正点原子资料上说的不一样,但是烧写完系统后,开发板可以正常运行。

这是为什么呢?难道是这几个变量的值在其他地方被改变了?

没错,配置文件中的变量值是被烧写软件*.vbs 修改了

用文本的格式打开mfgtool2-yocto-mx-evk-emmc.vbs 软件,查看里面的内容。

对比这个vbs文件和配置文件内容

可以发现在vbs文件中重新设置了变量mmc、6uluboot、6uldtb的值,所以最终变量6uluboot值会被替换为14x14evk,变量6uldtb 值会被替换为14x14-evk。

这样一来烧写的uboot文件和设备树文件就可以和上面所要求的文件名对应上了。

同样的方法将.dtb(设备树)和 zImage 都下载到 DDR 中以后就会跳转去运行 OS,这个时候会在 MfgTool 工具中会有“Jumping to OS image”提示语句,ucl2.xml 中的跳转命令如下:

启动 Linux 系统以后就可以在 EMMC 上创建分区,然后烧写 uboot、zImage、.dtb(设备树)

和根文件系统。这个就是 MfgTool 的整个烧写原理。

烧写步骤

1.连接USB线

MfgTool 是通过 USB OTG 接口将系统烧写进 EMMC,这里使用的是正点原子的IMX6ULL-MINI开发板,USB OTG接口不能给开发板供电,如果要使用USB供电的话,还需要一根USB线连接到USB_TTL口给开发板供电。

2.开发板设置为USB模式

将开发板的拨码开关拨到 USB 模式。


如果插了 TF 卡,请弹出 TF 卡,否则电脑不能识别 USB!

3.开发板上电

给开发板上电,这时候电脑就会自动安装USB驱动,驱动程序安装成功后,电脑就会有“登登”的提示音。

4.打开烧写软件

双击打开 mfgtool2-yocto-mx-evk-emmc.vbs 软件

如果通过USB成功连接到了开发板时,软件上面就会提示已经成功连接到了设备。

如果USB驱动安装失败,或者开发板没有上电,就会提示没有连接到设备。

5.开始烧写

连接成功后点击“Start”按钮即就可以开始烧写系统呢,具体烧写什么东西呢?

系统默认会烧写 uboot、Linux kernel、.dtb 和 rootfs 这四个文件。那么这4个文件还没有准备,系统烧写的文件是哪里来了?如果自己没有替换文件,那么软件默认烧写的就是NXP官方自带的文件。

在烧写的过程中USB连接会断开一次

这个不用担心,过一会就会自动连接。

这个烧写的过程会比较久,会有十几二十分钟。

在烧写的过程如果打开串口终端,就会看到串口会输出系统烧写时具体的过程。

烧写完成后进度条就会变成绿色

此时在串口终端上也会有相应的信息提示。

然后点 Stop 按钮,在点Exit按钮退出。

将开发板断电,将拨码开关拨到EMMC模式,然后给开发板重新上电。

同样打开串口终端,就可以看到系统输出的信息。

启动成功后,系统会提示输入登录信息

直接输入root,然后按回车键。

进入到根目录中,使用ls命令,显示根目录中的文件。

到这里就说明使用MfgTool工具已经成功的将NXP官方的系统下载到了自己的开发板上。

接下来我们就按照同样的方法,烧写自己的系统文件。

### 回答1: mfgtool和uuu都是用于嵌入式设备的工具mfgtool种通用的制造工具,它用于在生产环境中录固件和软件,以保证设备的正常运行。它具有简单易用的界面,可以通过USB或串口与目标设备进行通信。使用mfgtool,制造商可以将固件和软件加载到设备的存储器中,并进行验证和校验。此外,mfgtool还支持设备的自动化测试和硬件的诊断。 而uuu是种更加强大的工具,用于支持嵌入式设备的完整开发过程。uuu是Universal Update Utility的缩,它提供了更多的功能和灵活性。它可以用于录固件、下载和更新应用程序,调试和测试设备,以及进行远程的系统维护和管理。与mfgtool相比,uuu支持更多种类的通信接口,如USB、网络等,并且可以通过命令行或脚本进行批量操作。 总的来说,mfgtool和uuu都扮演着重要的角色,帮助制造商和开发人员在嵌入式设备的生产和开发过程中提高效率和准确性。无论是在制造过程中的固件录,还是在设备的全生命周期内的维护和更新,这两个工具都起着关键的作用。 ### 回答2: Mfgtool和uuu是两种常用于嵌入式系统开发和调试的工具Mfgtool(Manufacturing Tool)是个用于生产制造环境的工具,它主要应用于新设备的生产过程中。它可以通过USB接口与目标设备进行通信,并提供了系列的功能用于设备的录、配置和测试等操作。Mfgtool的设计目标是方便使用,能够简化设备制造过程,提高生产效率。常见的用途包括设备录操作系统、刷引导加载程序、配置设备参数等。 而uuu(Universal Update Utility)是种通用的更新工具,它主要应用于设备的系统更新和固件升级等操作。相比于Mfgtool,uuu更加灵活,可以适用于不同的设备和操作系统平台。它提供了组命令行工具,可以通过USB、串口等接口与目标设备进行通信,并进行设备的固件更新、文件传输等操作。uuu的设计目标是易于跨平台使用,可以在Windows、Linux、Mac等不同的操作系统上运行。 Mfgtool和uuu都是在嵌入式系统开发中非常重要的工具,它们能够简化设备的研发过程、提高生产效率,并保证设备的稳定性和可靠性。无论是在设备开发阶段还是在设备量产过程中,选择合适的工具对于提高开发效率和降低成本都是至关重要的。 ### 回答3: mfgtool款用于生产制造和录嵌入式系统固件的工具。而uuu则是mfgtool个版本,它是款开源的、跨平台的工具mfgtool和uuu主要用于将固件录到嵌入式系统的存储介质中,以完成系统录和更新。它们广泛应用于各类嵌入式系统的生产制造和维护过程中。 使用mfgtool和uuu,我们可以通过USB接口将已编译好的固件文件录到目标设备的闪存、eMMC、SD卡等存储介质中。通过连接目标设备和主机,mfgtool/uuu能够实现固件的自动录,完成整个录过程的自动化控制。 mfgtool和uuu具有强大的灵活性和可扩展性。它们支持多种操作系统、硬件平台和存储介质,能够满足不同嵌入式系统录需求。同时,它们还提供了丰富的配置选项,可以按需设置录参数,如闪存分区、启动方式等,以实现个性化的录流程。 总之,mfgtool和uuu是可靠、高效的嵌入式系统工具,通过使用它们,我们可以简化录过程,提高生产和维护效率,确保固件的可靠性和稳定性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值