首先从飞思卡尔官方随便下载一个mfgtool下来,比如我下载的是imx6ul里的L4.1.15_2.0.0-ga_mfg-tools.tar.gz
然后解压,我选择解压的是withoutrootfs,这样子解压快
说一下mfgtool的工作原理,就是在你的ram中挂载起一个系统,通过这个系统来对你的rom进行读写操作
所以它的烧录过程可以分为两个阶段,第一个阶段跑一个小系统准备烧录,第二个阶段才是正式开始烧录
里面所有的vbs和profiles/linux/OS Firmware/file内所有内容皆可删除
然后我们 用文本编辑工具打开profiles/linux/OS Firmware/ucl2.xml
寻找烧录我们这个处理器型号的相关的语句
举个例子:就比如说imx6ul
我将每个list折叠起来了,可以很方便的看到我们如果是烧录到哪种存储介质,需要参考哪个list
我们手上这块板子是imx6ulevk,是SD卡启动的,所以我们需要参考的list是SDCard
然后我们展开SD卡可以看到官方用注释标出了烧录的第一个阶段
将firmware里的东西放进去跑起来,第一个阶段我们不太需要注意它,它就是一个我们烧录软件的媒介
第二个阶段又可以分为5个小阶段,一目了然是干嘛干嘛的
其中我们需要注意的是每个阶段用到的东西是叫什么名字,我们不要缺东西即可,ucl2.xml文件我们是不需要修改的
之后我们回到最开始的目录:mfgtool目录下
我们需要关注的点在于cfg.ini和UICfg.ini这两个文件,至于VBS文件我们之后会自己写一个,很简单
UICfg.ini文件里,很简单,就是规定了一下同时烧录的硬件个数
cfg.ini文件:
内容如图
第一个profile
chip=linux这句是表面在profile文件夹里的linux文件夹,说的官方点,这是指定了平台,但通俗点就是profile目录下的linux目录
第二个platform
这里面的选项暂时无用
第三个LIST
对应上面说到的ucl2.xml文件
第四个variable------------变量
这些变量看着改,都在ucl2.xml里用到了
这些变量是默认的参数,如果VBS里另有指定,则使用VBS里的参数,这就像是linux下的makefile,他环境变量里有,但是如果带参启动,优先使用带的参数
VBS也懒得写了
随便截取了一个VBS的内容出来:
Set wshShell = CreateObject("WScript.shell")
wshShell.run "mfgtool2.exe -c ""linux"" -l ""SDCard"" -s ""board=sabresd"" -s ""mmc=1"" -s ""6uluboot=14x14evk"" -s ""6uldtb=14x14-evk"" -s ""6ulldtb=14x14-evk"""
Set wshShell = Nothing
这个就很明显是烧录SDCard 这个LIST里的内容,然后换了一些参数...对应ucl2.xml去看就能知道了
烧录过程中也可以通过debug口查看实时的烧录信息