NXP

飞思卡尔烧写工具mfgtools的使用

2019-07-12 12:08发布

注意:当时遇到烧录之后各种重启问题,还有system.img 文件同步不过去的原因,都是因为没有加flash刷新flush the memory.
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一定要根据你的板子和要烧写到哪里来设置,设置的信息和你使用的板子要匹配。
2ucl2.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.iniUICfg.ini文件
2)设置boot modedownload模式
3)用OTG-USB线连接开发板和PC
4)打开终端,并运行MfgTool2.exe
5)给开发板上电,出现如下HID-compliant device,点击Start开始下载。

 
 4、如何使用MFGTool烧写image到你自己设计的板子上? 
编译生成板子上需要跑的U-bootuImage和文件系统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文件:
 


//全局变量 
//ucl2.xml将烧录过程分成两个阶段:BootStrap和Updater 
//dev、vid和pid:分别对应两个阶段的设备名、设备对应连接的USB vid和pid号 
//针对imx6系列,在 BootStrap阶段,有效的设备名只有MX6Q、MX6D、MX6SL。在Updater阶段,有效的设备名只有MSC

Android-Marsboard-eMMC
" desc="Choose eMMC as media">
//根据cfg.ini 文件中定义的name 选择(ucl2.xml中LIST name要与cfg.ini文件中定义的name相对应)
u-boot.bin
">Loading U-boot
//下载当前目录的u-boot.bin 文件到RAM
uImage
" address="0x10800000" loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE">Loading Kernel.
//下载当前目录的uImage文件到RAM的0x10800000地址处
initramfs.cpio.gz.uboot
" address="0x10C00000" loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE">Loading Initramfs.
//下载当前目录的initramfs.cpio.gz.uboot文件到内存的0x10C00000地址处
Jumping to OS image.
//通知内嵌ROM代码跳转到内存中的镜像执行

Erasing Boot partition
//擦除信息mtd0

Sending U-Boot
//将files/android/u-boot.bin文件发送到目标机

write U-Boot to SPI-NOR
//烧写将$FILE下载到/dev/mtd0位置,bs=512,指定读/写的blocks大小为512bytes

Clear Params
//擦除信息mtd1
Sending partition shell
//将files/android/u-boot.bin文件发送到目标机
//将当前目录的mksdcard-android.sh.tar 分区脚本文件,发送到目标机
Partitioning...
//解压脚本文件
Partitioning...
//执行脚本文件
Formatting sd partition

//从下面开始烧录内核、文件系统
boot.img"
>Sending kernel uImage
//将files/android/boot.img 发送到目标机
/dev/mmcblk0p1">write boot.img
flush the memory.
//刷新,等待数据传送完成
Formatting data partition

Sending data partition shell
Extracting data partition shell

Making data encryptable
Formatting system partition
Formatting cache partition
flush the memory.

Formatting device partition 
Sending and writting system.img
//利用pipe 传输大数据
flush the memory.
//执行flush刷新操作,等到数据传输完毕