注意:当时遇到烧录之后各种重启问题,还有system.img 文件同步不过去的原因,都是因为没有加flash刷新

<CMD state="Updater" type="push" body="frf">flush the memory.</CMD>

MFGTool是飞思卡尔提供的烧写工具,使用起来非常方便。但是,在使用MFGTool有几点是需要注意的,否则就会在烧写过程中遇到一些问题:
1、在使用MFGTool前,文件cfg.ini 和 UICfg.ini是必须要在同一个文件夹下,同时这两个文件一定要配置正确。
         UICfg.ini用来配置每次同时可以烧写开发板的个数:
             [UICfg]
             PortMgrDlg=1
       cfg.ini用来配置芯片类型和板子信息以及烧写内容存储方式:
[profiles]
chip = MX6DL Linux Update   -----------芯片为i.mx6dl
 
[platform]
board = SabreSD                       ------------板子型号
 
[LIST]
name = i.MX6DL-ubuntu-SabreSD-SD ---------------烧写内容及存储方式
cfg.ini一定要根据你的板子和要烧写到哪里来设置,设置的信息和你使用的板子要匹配。
2、ucl2.xml
MFGTool烧写过程是完全按照ucl2.xml进行的。具体ucl2.xml的内容你可以到MFGTool-Dir/Profiles/MX6DL Linux Update/OS Firmware下查看。ucl2.xml中的烧写命令为linux命令(文档Manufacturing Tool V2 Quick Start Guide中有介绍)这里不再详述。
3、boot mode方式要正确
在烧写前要设置板子为下载模式,才可以进行烧写。
总结一下使用MFGTool烧写过程如下:
1)配置cfg.ini和UICfg.ini文件
2)设置boot mode为download模式
3)用OTG-USB线连接开发板和PC机
4)打开终端,并运行MfgTool2.exe
5)给开发板上电,出现如下HID-compliant device,点击Start开始下载。
 
4、如何使用MFGTool烧写image到你自己设计的板子上? 
编译生成板子上需要跑的U-boot、uImage和文件系统rootfs(具体操作查看你参考设计的板子的User Guider中有详细的步骤和介绍)
Sending U-Boot
write U-Boot to sd card
Sending kernel uImage
write kernel image to sd card………….
     Sending and writting rootfs
根据ucl2.xml文件中的内容来创建你自己设计板子的烧写过程,只要修改原有的U-Boot 和 kernel就够了。
 
  以下时ucl2.xml文件:
 <CFG>
<STATE name="BootStrap" dev="MX6Q" vid="15A2" pid="0054"/><STATE name="Updater" dev="MSC" vid="066F" pid="37FF"/>
<STATE name="Updater"   dev="MSC" vid="066F" pid="37FF"/>
</CFG>
//全局变量 
//ucl2.xml将烧录过程分成两个阶段:BootStrap和Updater 
//dev、vid和pid:分别对应两个阶段的设备名、设备对应连接的USB vid和pid号 
//针对imx6系列,在 BootStrap阶段,有效的设备名只有MX6Q、MX6D、MX6SL。在Updater阶段,有效的设备名只有MSC

<LIST name="Android-Marsboard-eMMC" desc="Choose eMMC as media">
//根据cfg.ini 文件中定义的name 选择(ucl2.xml中LIST name要与cfg.ini文件中定义的name相对应)

<CMD state="BootStrap" type="boot" body="BootStrap" file="u-boot.bin">Loading U-boot</CMD>
//下载当前目录的u-boot.bin 文件到RAM

<CMD state="BootStrap" type="load" file="uImage" address="0x10800000" loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE">Loading Kernel.</CMD>
//下载当前目录的uImage文件到RAM的0x10800000地址处

<CMD state="BootStrap" type="load" file="initramfs.cpio.gz.uboot" address="0x10C00000" loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE">Loading Initramfs.</CMD>
//下载当前目录的initramfs.cpio.gz.uboot文件到内存的0x10C00000地址处

<CMD state="BootStrap" type="jump"> Jumping to OS image. </CMD>
//通知内嵌ROM代码跳转到内存中的镜像执行

<CMD state="Updater" type="push" body="$ flash_eraseall /dev/mtd0">Erasing Boot partition</CMD>
//擦除信息mtd0

<CMD state="Updater" type="push" body="send" file="files/android/u-boot.bin">Sending U-Boot</CMD>
//将files/android/u-boot.bin文件发送到目标机

<CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mtd0 bs=512">write U-Boot to SPI-NOR</CMD>
//烧写将$FILE下载到/dev/mtd0位置,bs=512,指定读/写的blocks大小为512bytes

<CMD state="Updater" type="push" body="$ flash_eraseall /dev/mtd1">Clear Params</CMD>
//擦除信息mtd1
<CMD state="Updater" type="push" body="send" file="mksdcard-android.sh.tar">Sending partition shell</CMD>
//将files/android/u-boot.bin文件发送到目标机
//将当前目录的mksdcard-android.sh.tar 分区脚本文件,发送到目标机
<CMD state="Updater" type="push" body="$ tar xf $FILE "> Partitioning...</CMD>
//解压脚本文件
<CMD state="Updater" type="push" body="$ sh mksdcard-android.sh /dev/mmcblk0"> Partitioning...</CMD>
//执行脚本文件
<CMD state="Updater" type="push" body="$ ls -l /dev/mmc* ">Formatting sd partition</CMD>

//从下面开始烧录内核、文件系统
<CMD state="Updater" type="push" body="send" file="files/android/boot.img">Sending kernel uImage</CMD>
//将files/android/boot.img 发送到目标机
<CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mmcblk0p1">write boot.img</CMD>
<CMD state="Updater" type="push" body="frf">flush the memory.</CMD>
//刷新,等待数据传送完成
<CMD state="Updater" type="push" body="$ mkfs.ext4 -b 4096 -m 0 /dev/mmcblk0p4">Formatting data partition</CMD>

<CMD state="Updater" type="push" body="send" file="mk-encryptable-data-android.sh.tar">Sending data partition shell</CMD>
<CMD state="Updater" type="push" body="$ tar xf $FILE ">Extracting data partition shell</CMD>

<CMD state="Updater" type="push" body="$ sh mk-encryptable-data-android.sh /dev/mmcblk0 /dev/mmcblk0p4">Making data encryptable</CMD>
<CMD state="Updater" type="push" body="$ mkfs.ext4 /dev/mmcblk0p5">Formatting system partition</CMD>
<CMD state="Updater" type="push" body="$ mkfs.ext4 /dev/mmcblk0p6">Formatting cache partition</CMD>
<CMD state="Updater" type="push" body="frf">flush the memory.</CMD>

<CMD state="Updater" type="push" body="$ mkfs.ext4 /dev/mmcblk0p7">Formatting device partition</CMD> 
<CMD state="Updater" type="push" body="pipe dd of=/dev/mmcblk0p5 bs=512" file="files/android/system.img">Sending and writting system.img</CMD>
//利用pipe 传输大数据
<CMD state="Updater" type="push" body="frf">flush the memory.</CMD>
//执行flush刷新操作,等到数据传输完毕

飞思卡尔烧写工具mfgtools的使用相关推荐

  1. 交叉编译飞思卡尔imx6烧写工具MFGtools脚本中的sfdisk小软件

    原文链接:(5条消息) 交叉编译飞思卡尔imx6烧写工具MFGtools脚本中的sfdisk小软件_bxf0817的专栏-CSDN博客 MFGtools中的脚本中有如此一段 sfdisk --forc ...

  2. 系统烧写方法(MfgTool烧写工具)

    目录 MfgTool 工具简介 MfgTool 工作原理简介 USB接线 系统烧写原理 烧写NXP 官方系统 烧写自制的系统 系统烧写 网络开机自启动设置 改造我们自己的烧写工具 改造MfgTool ...

  3. 将MfgTool工具改造为自己的烧写工具

    以前通过MfgTool工具烧写,都是讲自己的文件名改成和官方要求的烧写文件名.这样虽然能烧写,但是终于不是真正意义上自己的烧写. 那么能不能将MfgTool工具改造为烧写自己的文件名呢?当然是可以的, ...

  4. 【迅为iMX6Q】开发板 烧写工具 MfgTool2.exe 打不开问题的解决

    现象 最近整理电脑,重新搭建了 [迅为iMX6Q]开发板的开发环境,从网盘重新下载的烧写烧写工具:android_m6.0.1_2.0.0_ga_tool_20190725,直接双击MfgTool2. ...

  5. 【开源共享】全网最简单易用的imx6ull烧写工具设计初衷工作原理设计前的思考

    在线课堂:https://www.100ask.net/index(课程观看) 论  坛:http://bbs.100ask.net/(学术答疑) 开 发 板:https://100ask.taoba ...

  6. st 串口烧写工具 芯片_STM32芯片的几种烧写方式简介

    我们做STM32产品开发,最终是要将编写的程序代码写进芯片存储器,通常指Flash存储器[含可以映射到芯片存储空间的片外存储器],让程序正常运行起来以实现相应的功能. 一般来讲,将我们准备好的机器代码 ...

  7. linux/windows上STM32固件烧写工具的开发demo

    1.主要实现功能:完成对HEX和DFU文件的烧写,显示烧写的进度等功能 2.开发工具:Qt creator4.9.0 3.开发系统平台:windows系统和linux系统两套平台 4.具体开发步骤: ...

  8. opencv4.4.0函数手册_【文档更新】发布100ask_imx6ull用户手册V2.0和全新烧写工具

    疫情期间,韦东山团队在家办公丝毫没有松懈,一直在写文档,答疑等. 下面给读者们公布阶段性成果: 一.发布<100ask_imx6ull用户手册 入门篇_V2.0 >: 添加更多烧写方法.更 ...

  9. 3.韦东山嵌入式学习笔记-烧写工具

    程序烧写工具 oflash.SecureCRT.openJTAG.jlink 烧写方法 并口.openjtag.jlink.nor上的uboot 步骤 接口.接线.装驱动.装软件 如果PC有并口,装并 ...

最新文章

  1. cocoapods使用教程
  2. 在 Google Colab 中使用 OpenCV 进行图像处理简介
  3. SQL用了Union后的排序问题
  4. C#中实现一个TreeGridView(树形表格)附源码下载
  5. sed 删除windows下的CR/LF
  6. ASP.NET Core 基础知识(十四)错误处理
  7. 日志管理:(二)og4j.xml警告log4j:WARN The content of element type log4j:configuration m
  8. 5门可能衰落的编程语言
  9. java框架之SpringBoot(5)-SpringMVC的自动配置
  10. 社交网络营销之传统营销VS社交网络营销
  11. 记一次win7 配置Windows Update 失败,还原更改,无法进入系统
  12. 电脑桌面计算机点开一直在刷新,Win10系统桌面一直在刷新怎么办
  13. C|倒三角(trangle)
  14. BNUOJ29065鸣人的查克拉
  15. 逆向笔记2(数据宽度_逻辑运算)
  16. Xshell7 远程连接 阿里云服务器需要用户密钥问题
  17. 伪元素(3)-解决IE6/IE7/IE8不支持before,after问题
  18. 人行征信上贷款余额指的是什么?(图文)
  19. 必备Linux命令和C语言基础
  20. java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?

热门文章

  1. Nodejs开源项目推荐
  2. Java 面试知识点解析(三)——JVM篇
  3. DDD 领域驱动设计 教程
  4. 面试必备:LinkedHashMap源码解析(JDK8)
  5. Java直接内存与非直接内存性能测试
  6. jdk动态代理实现原理
  7. 国内大学毕业论文LaTeX模板集合
  8. Python整型数与字符串相互转换
  9. 漫谈:机器学习中距离和相似性度量方法
  10. 《敏捷迭代开发:管理者指南》—第2章2.14节推荐读物