matlab飞思卡尔工具包,IMX6开发板飞思卡尔系统烧写工具MFGTool2工具详解-迅为电子...

fsl i.MX6开发板有多种系统烧写方式,这里介绍使用联机烧写工具MFGTool及其对系统的烧写。

MFGTool是fsl官方开发的一套PC联机系统烧写程序,通过USB将PC和开发板连接后,使用MFGTool就可以烧写

u-boot,kernel和filesys。

MFGTool当前的版本是MFGTool V2。

MFGTool程序的具体烧写和运行流程是:

一.Boot跳线到USB下载模式---BOOT_MODE[1:0]为0b10

二.MFGTool加载相关的配置文件:UICfg.ini、cfg.ini、ucl2.xml。其中:

1. UICfg.ini指明了MFGTool界面配置。

2. cfg.ini指明了芯片和开发板名称,并指定了ucl2.xml文件中的LIST项名称。另外,MFGTool根据芯片和开发板

名称在.\Profiles中寻找 相应的配置文件ucl2.xml,启动镜像和烧写镜像文件。此处的".\"为相对目录,即

MFGTool 的存放和执行目录。

如文件cfg.ini内容如下:

[profiles]

chip = MX6Q Linux Update

[platform]

board = SabreSD

[LIST]

name = Sabre-SD

[profiles]

chip = MX6Q Linux Update,它指明了文件操作的目录,即为.\Profiles\MX6Q Linux Update\OS Firmware,

例如MFGTool会在在.\Profiles\MX6Q Linux Update\OS Firmware中寻找相应的配置文件ucl2.xml。

[LIST]

name = Sabre-SD

ucl2.xml有多个LIST项,每一项对应于一个开发板相关烧写配置,此处指明哪一项LIST有效。

LIST中指明了执行的下载/烧写动作,要操作(下载/烧写/或命令)的文件,shell命令等内容,

针对文件,根据上面的chip =xxx来指明其路径名。

下图中说明了文件cfg.ini和[LIST] 标签中name的关系:

2b57b1d2ed0f1d900682fd056456e932.png

下面两个图中说明了文件ucl2.xml中相关文件的具体指向:

9492c3719dadf310686c9927349efc60.png

40b764b34e1c86323e31d525fea2cd15.png

3.ucl2.xml通过LIST项来列出要执行的命令集和相应文件。

三.MFGTool通过USB将前导u-boot,kernel,文件系统下载到开发板中的RAM中,并跳转到RAM中的u-boot处来

执行kernel,挂载文件系统。

之所以称"前导u-boot,kernel,文件系统“,因为它们是为最终的程序烧写做系统准备,它们并不是最终要下

载到Flash、SD、TF卡等非易失存储器中的系统镜像。

对应于ucl2.xml中的标签,有如下内容:

Loading U-boot

loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Loading Kernel.

loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Loading Initramfs.

Jumping to OS image.

以下是对其中内容详细的说明:

state="BootStrap"指明其为启动,对比参照下面程序烧写时的state="Updater"。

type="boot"或type="load",加载或启动,对比参照下面程序烧写时的 type="push" 。

file指明要操作的文件, address指明了加载的地址。

四.MFGTool强制开发板启动RAM中的kernel,并装载相关特定的USB下载驱动,开发板中的Linux系统做好了程序烧写的前期准备。

五.通过执行一组在配置文件中设置的Linux命令,MFGTool使用USB将要烧写的系统镜像烧写到非易失存储器中。

如 u-boot烧写,在ucl2.xml文件中,有如下命令:

1. 

2. Sending partition shell

3.  Partitioning...

4.  Partitioning...

5. 

6. Sending u-boot.bin

7. write u-boot.bin to sd card   上面红色字体部分是ucl2.xml文件中的原命令,蓝色数字是为了方便下面的说明而附加的行号。

以下是对其中命令(body标签部分)详细的说明:

行1. body="mknod block,mmcblk1,/dev/mmcblk1,block"   为使用SD,TF卡等设备创建结点。

行2. body="send" file="mksdcard.sh.tar"   发送文件mksdcard.sh.tar到开发板的RAM中。

行3. body="$ tar xf $FILE "   解压文件mksdcard.sh.tar。

行4. body="$ sh mksdcard.sh /dev/mmcblk1 执行mksdcard.sh,mksdcard.sh是个shell脚本文件,

它用来对Flash、SD、TF进行分区,具体的内容可查看该文件。

行5. body="mknod block/mmcblk1,mmcblk1p1,/dev/mmcblk1p1,block" 创建设备结点,

具体的用法参考设备驱动程序相关内容 。

行6. body="send" file="files/u-boot.bin" 发送文件files/u-boot.bin到开发板的RAM中。

行7. body="$ dd if=$FILE of=/dev/mmcblk1 bs=1k seek=1 skip=1 conv=fsync" 执行u-boot的烧写。

其中变量$FILE为第6行中设 定的值,最终执行烧写的命令 是dd。

六.掉电,跳线到正常的启动模式,重启。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值