文档章节

基于迅为i.MX6Q开发板-飞思卡尔系统烧写工具MFGTool2工具详解

书白
 书白
发布于 2017/05/10 09:38
字数 1237
阅读 6
收藏 0

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

详情了解:http://topeetboard.com 更多了解:https://arm-board.taobao.com
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的关系:


     

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




    

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

三.MFGTool通过USB将前导u-boot,kernel,文件系统下载到开发板中的RAM中,并跳转到RAM中的u-boot处来
    执行kernel,挂载文件系统。
   之所以称"前导u-boot,kernel,文件系统“,因为它们是为最终的程序烧写做系统准备,它们并不是最终要下
   载到Flash、SD、TF卡等非易失存储器中的系统镜像。
   对应于ucl2.xml中的标签,有如下内容:
    <CMD state="BootStrap" type="boot" body="BootStrap" file ="u-boot-mx6q-sabreauto.bin" >Loading U-boot</CMD>
    <CMD state="BootStrap" type="load" file="uImage" address="0x10800000"
            loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Loading Kernel.</CMD>
    <CMD state="BootStrap" type="load" file="initramfs.cpio.gz.uboot" address="0x10C00000"
              loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Loading Initramfs.</CMD>
    <CMD state="BootStrap" type="jump" > Jumping to OS image. </CMD>
   以下是对其中内容详细的说明:
   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. <CMD state="Updater" type="push" body="mknod block,mmcblk1,/dev/mmcblk1,block"/>
   2. <CMD state="Updater" type="push" body="send" file="mksdcard.sh.tar">Sending partition shell</CMD>
   3. <CMD state="Updater" type="push" body="$ tar xf $FILE "> Partitioning...</CMD>
   4. <CMD state="Updater" type="push" body="$ sh mksdcard.sh /dev/mmcblk1"> Partitioning...</CMD>
5. <CMD state="Updater" type="push" body="mknod block/mmcblk1,mmcblk1p1,/dev/mmcblk1p1,block"/>
   6. <CMD state="Updater" type="push" body="send" file="files/u-boot.bin">Sending u-boot.bin</CMD>
   7. <CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mmcblk1 bs=1k seek=1 skip=1 conv=fsync">write u-boot.bin to sd card</CMD>   上面红色字体部分是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
博文 63
码字总数 53844
作品 0
私信 提问
飞思卡尔Kinetis L系列MCU的kl03

  2014年7月25日,飞思卡尔并充满整个kl03家庭市场的启动,引进了一批设备和自由板,客户可以开始他们的发展。Kinetis kl03是最终产品为便携式设备在物联网空间由于其体积小、功耗低(图1)。...

kailixun
2018/03/26
0
0
[初学嵌入式]完全没有接触过linux也可以轻松玩转4412开发板

需要按照以下方法和步骤来学习,轻松玩转开发板。 以下学习内容均有配套视频。 1.开发板上电测试以及提供的基本资料介绍:所 学手册的章节包括(第一章节) 2.安装超级终端,理解uboot模式和...

topeet
2015/08/03
657
0
迅为iMX6UL开发板多路串口开发平台接口详解

iMX6UL开发板 核心板参数 底板参数 一.底板硬件描述: 1. POWER电源接口 电源输入为5V/2A+,给核心板提供5V电源,给底板供电。 原理图部分如下图所示。 电源接口位置如下图所示。 2.SWITCH电源...

chihiro_s
2018/04/23
0
0
iMX8方案服务-辰汉

辰汉电子(股票代码900017)iMX8是飞思卡尔/NXP出品的新一代多媒体应用处理器,采用ARM Cortex-A53和Cortex-A72的内核,具备多屏同步4K视频解码能力,面向下一代车载航空智能仪表仓类高性能产...

lucy007
2017/05/19
0
0
迅为6818开发板烧写系统方法分享

1、制作启动的 TF 卡 如果 iTOP-4418 开发板的EMMC 中存在 uboot,此步可忽略。给TF 卡手动分区,在 TF 卡最前面预留约 64M 的空间用于存放 uboot。在 WINDOWS 下可使用 PartitionManager 工...

歌之王子殿下
2017/04/11
73
0

没有更多内容

加载失败,请刷新页面

加载更多

如何在工作中快速成长?致工程师的10个简单技巧

阿里妹导读:阿里有句非常经典的土话,“今天的最好表现,是明天的最低要求。”如何挖掘潜能、发现更好的自己?今天,阿里巴巴高级无线开发专家江建明将认知升级的方法总结出来,帮助你获得快...

阿里云云栖社区
27分钟前
1
0
PHP和Redis实现在高并发下的抢购及秒杀功能

抢购、秒杀是平常很常见的场景,面试的时候面试官也经常会问到,比如问你淘宝中的抢购秒杀是怎么实现的等等。 抢购、秒杀实现很简单,但是有些问题需要解决,主要针对两个问题: 一、高并发对...

xiaogg
29分钟前
0
0
从数据上看:谁才是漫威的绝对C位

复联4上映了!这次比美国还早了两天。当然,我还没看,不会给你们剧透,当然也不想不剧透。 这一部不仅是灭霸这一线剧情的结局,也被认为漫威第三阶段的收官之作。据说此部之后,不少影迷熟知...

crossin
42分钟前
3
0
Spring Cloud底层原理

毫无疑问,Spring Cloud 是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。 不过大多数讲解还停留在对 Spring Cloud 功能使用的层面,其底层的很多原理,很多人可能并不知晓。 ...

月下狼
52分钟前
5
0
Linux重启Tomcat

在测试过程中,要构建测试环境,还经常要重启Tomcat排查问题,重启Tomcat的步骤: 1、首先查看Tomcat是否有启动或重复启动? 输入命令ps -aux|grep java按回车键,可见下图,是有一个Tomcat启...

测试龙管家
53分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部