IMX6开发板飞思卡尔系统烧写工具MFGTool2工具详解

Wesley13
• 阅读 520

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的关系:
IMX6开发板飞思卡尔系统烧写工具MFGTool2工具详解

     

     下面两个图中说明了文件ucl2.xml中相关文件的具体指向:
     
IMX6开发板飞思卡尔系统烧写工具MFGTool2工具详解

    IMX6开发板飞思卡尔系统烧写工具MFGTool2工具详解

  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
    Loading Kernel.
    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。

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

详情了解它的网址是:http://topeetboard.com/

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Karen110 Karen110
2年前
一篇文章带你了解JavaScript日期
日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用
Wesley13 Wesley13
2年前
STM32新手入门教程
文章目录STM32简介STM的选型编写程序Keil安装烧写程序USB转串口烧写STLi
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
2年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
2年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
2年前
ubuntu adb安装及烧写img
安装adb与fastbootsudoaptgetinstallandroidtoolsadbandroidtoolsfastboot修改/etc/udev/rules.d/目录下70persistentnet.rules文件,增加下内容:SUBSYSTEM"usb",ATTRS{idVendor}"05c6
Wesley13 Wesley13
2年前
F28379D烧写双核程序(在线&离线)
烧写双核程序前需知在分别对F28379D的CPU1和CPU2两个核进行烧写程序时,需要在CCS中建立两个工程,独立编写两个核的程序。如controlSUITE中提供的双核程序例程:1\.在线1.1编译烧写CPU1程序到F28379D中1.2编译CPU2程序,把生成的.out文件加载到CPU2中选中上图中红色框框中的
Wesley13 Wesley13
2年前
TQ210 TFTP 更新固件方法
tftp烧写镜像名字规定与对应命令  由于uboot的一键式tftp下载命令的限制(即只能使用固定的文件名),所以,为了使用一键式菜单,  作出如下规定:  uboot镜像必须命名为:uboot.bin—命令“1”  Linux内核镜像必须命名为:zImage.bin—命令“3”  文件系统镜像必须命名为:root.ub
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究