目录

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官方的系统下载到了自己的开发板上。

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

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

  1. Linux学习笔记---使用MfgTool工具烧写自己的系统(二)

    目录 准备文件 重命名文件 替换firmware文件夹中的文件 替换files文件夹中的文件 修改cfg.ini配置文件 烧写系统 启动系统 设置网络相关环境变量 设置环境变量bootcmd 和 bo ...

  2. Linux学习笔记(二)——文件与磁盘系统

    Linux学习笔记(二)--文件与磁盘系统 文件操作 ls [选项][目录名]-l :列出长数据串,包含文件的属性与权限数据等-a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)- ...

  3. 裸板烧写linux内核,嵌入式linux学习(二):烧写裸板进程

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 用了两种方式烧写裸板 1.使用J-link烧写uboot,然后再使用uboot烧写其他进程1)J-link只能烧写Nor ...

  4. itop-4412学习笔记:TF卡烧写

    1. 制作可以烧写的TF卡(TF卡内存至少2G) 给TF卡分区.需要将TF卡先插入开发板,然后再启动开发板并进入Uboot模式,然后在超级终端中,依次输入下列烧写命令: fdisk -c 1 fatf ...

  5. linux 观察应用使用内存的情况,Linux学习笔记:free和top命令查看系统内存使用情况...

    free 命令 Linux free 命令用于显示内存状态. free 指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等. 语法: free [-b ...

  6. Linux学习笔记---记一次rootfs根文件系统下载时掉进的大坑

    俗话说要想技术好,踩坑少不了.技术的好坏和踩坑的多少基本是成正比的.这次就大大的提升了一次技术(大大的踩了一次坑).废话少说,直奔主题. 最近入手了一块正点原子的IMX6ULL开发板,跟着视频教程和开 ...

  7. (零)我为什么要写Linux学习笔记?

    我对Linux有强烈的好奇心,兴趣:写学习笔记会让我有成就感:我记忆力实在不好.好吧,其实真正原因是:如果我能把自己学到的知识简明扼要的讲出来,写出来,那便证明我真的学懂了我想学的知识.没时间怎么办? ...

  8. 最热网友收藏:写得蛮好的linux学习笔记(2007年第10周)

    2007年第10周最热网友收藏 上班人员必读:"五险一金"详解!(130),共376人收藏,liukang520236首先收藏 写得蛮好的linux学习笔记-(96),共159人收 ...

  9. Linux学习笔记---移植官方uboot步骤(一)

    目录 编写shell脚本 修改MakeFile文件 重命名shell脚本 添加默认配置文件 修改默认配置文件 准备需要的板级文件夹 重命名.C文件 修改Makefile 修改imximage.cfg配 ...

最新文章

  1. 广域网设备:远程路由器/交换机/服务器—Vecloud
  2. 硬RAID可以为NVMe SSD数据可靠性保驾护航吗?
  3. HTG Explains: Why Linux Doesn’t Need Defragmenting
  4. 数学是理工基础,如何才能令人信服?
  5. 深入了解CSS字体度量,行高和vertical-align
  6. php获取本机root,通过PHP执行root命令
  7. nginx简介--理解nginx配置/模块/openresty
  8. 工欲善其事必先利其器,TI-ONE平台“实操手册”在这里!
  9. curl / libcURL ‘tailmatch()’ Cookie 信息泄露漏洞
  10. 【车间调度】基于matlab GUI遗传算法求解车间调度问题【含Matlab源码 049期】
  11. 自定义标签之使用struts的valueStack取值
  12. 分布式系统中Topology(Rack) Awareness的实现思路
  13. 为什么有了FineBI后还会有FineReport?这两者的区别真的很大
  14. CocosCreator微信小游戏之排行榜
  15. kettle报错 Driver class ‘org.gjt.mm.mysql.Driver‘ could not be found, make sure the ‘MySQL‘ driver
  16. 怎么把多个图片转成一个文字版的Word呢
  17. 浅谈单线程的Redis快的原因是什么
  18. 第一篇Mac上fluter开发环境配置
  19. 评法国和瑞士之比赛郁闷篇
  20. SharePoint使用资源管理器打开,提示:在文件资源管理器中打开此库时遇到问题

热门文章

  1. virsh 基于xml create VMs虚机
  2. VB编程操作AutoCAD块对象
  3. PHP函数调用及循环体内定义大型变量效率的研究
  4. 安装 SQL Server 2005 时出现性能计数器要求安装错误的解决办法
  5. 几种关系型数据库比较
  6. CSS3 制作魔方 - 相关立体样式
  7. hdu3507 print article
  8. Hadoop和Spark的异同
  9. Renting Boats
  10. 自定义控件的构建(10)