linux系统烧写

291 阅读1分钟

一、简介

当我们制作uboot,linux kernle,rootfs时,都是通过网络测试的,在实际产品中需要将这些文件烧写到板子上的EMMC、NAND等存储设备上。这里介绍以下NXP官方提供的MfgTool工具通过USB OTG口来烧写系统。

1.官方mfgtool烧写原理

第一阶段:mfgtool通过USB OTG将uboot,zImage,xx.dtb下载到开发板DDR中;第二阶段:等linux系统启动后再向EMMC中烧写完整的系统,包括上述文件和rootfs.tar.bz2。

2.官网文件解析(msgtools-with-rootfs/mfgtools/)

(1)/Profiles/Linux/OS Firmware/firmware

内部文件就是要加载到DDR中的那些文件。

(2)/Profiles/Linux/OS Firmware/files

内部文件就是第二阶段的文件。

(3) mfgtool2-yocto-mx-evk-emmc.vbs

烧录脚本,使用VBScript语言编写。

Set wshShell = CreateObject("WScript.shell")  #创建shell类型对象
wshShell.run "mfgtool2.exe -c ""linux"" -l ""eMMC"" -s ""board=sabresd"" -s ""mmc=1"" -s ""6uluboot=14x14evk"" -s ""6uldtb=14x14-evk""" #shell命令指定相关参数
Set wshShell = Nothing
(4) /Profiles/Linux/OS Firmware/ucl2.xml
#判断I.MX系列哪个芯片烧写系统,通过读取芯片的VID和PID
<UCL>
  <CFG>
    <STATE name="BootStrap" dev="MX6SL" vid="15A2" pid="0063"/>
    <STATE name="BootStrap" dev="MX6D" vid="15A2" pid="0061"/>
    <STATE name="BootStrap" dev="MX6Q" vid="15A2" pid="0054"/>
    <STATE name="BootStrap" dev="MX6SX" vid="15A2" pid="0071"/>
    <STATE name="BootStrap" dev="MX6UL" vid="15A2" pid="007D"/>
    <STATE name="BootStrap" dev="MX7D" vid="15A2" pid="0076"/>
    <STATE name="BootStrap" dev="MX6ULL" vid="15A2" pid="0080"/>
    <STATE name="Updater"   dev="MSC" vid="066F" pid="37FF"/>
  </CFG>
  #EMMC烧写过程
  </LIST>
  <LIST name="eMMC" desc="Choose eMMC as media">
    <CMD...>...</CMD>
  </LIST>