MYS-6ULX 系列板卡提供两种系统更新的方法:

  • MfgTool 更新
  • SD 卡更新

  本文主要介绍使用 MfgTool 工具更新 MYS-6ULX-IOT 的方法。MfgTool 是 Freescale 官方推荐的一个使用 OTG 来烧录、升级系统镜像的软件工具。MfgTool 工具功能强大、可塑性高,简单来说,有如下特点:

  • 可以用来升级 Linux,也可以升级 Android;
  • 允许单独刷写某一系统分区,如 Android 的 boot.img;
  • 支持独立刷写 SPI NOR、Nand、eMMC 等;
  • 支持多通道刷写,可作为量产工具;

  MfgTool 工具的亮点是它的可拓展性和可塑性,下面我们来看一下这些特性是怎么体现的,以及该如何使用 MfgTools。

  先来看看 MfgTool 的目录结构,下载并解压 03-Tools/ManufactoryTool/MYS-6ULX-mfgtools-20170919.zip,进入 MfgTool 主目录,我们会看到很多文件和子目录,其中较为重要的一些文件结构如下图所示。

  其中,MfgTool2.exe 是可执行文件,双击它即可打开烧写工具,但我们这里并不直接运行它,而是通过运行 vbs 脚本文件来启动;cfg.ini、UICfg.ini、ucl2.xml 都是配置文件,后面会详细介绍;Profile里面定义了几层目录,分别存放镜像文件及配置文件。

  需要注意的是,Profile 里面的镜像文件分为两种:第一种是作为媒介用途的镜像,在 Yocto 下包括 “uboot”、“dtb”、“zImage”;第二种是真正烧录到 eMMC、Nand Flash 或者 sdCard 的镜像文件。对于我们这个项目,媒介镜像存放于 firmware 目录,实际烧写的镜像存放于 files 目录。之所以需要两种镜像,是因为 MfgTool 的烧写原理是先烧录媒介镜像到 DDR,然后启动该媒介系统,接着通过该系统把目标镜像固化到 eMMC、Nand Flash 或者 sdCard 里面。

  可以把烧录过程分为两部分:第一部分是烧录前的准备工作;第二部分是 MfgTool 开始烧录到结束烧录的过程。整个烧录过程如下图所示。值得一提的是,第二部分的烧录过程是严格根据 ucl2.xml 文件来进行的。

  接下来我们分析一下 MfgTool 的配置文件:

(1)UICfg.ini文件

[UICfg]
PortMgrDlg=1        // 表示同时支持升级的最大设备数,可按需调整

(2)cfg.ini文件

[profiles]
chip = Linux        // 目标平台,对应 Profile/Linux 目录,可根据自己的需求定义 profile[platform]
board = SabreSD     // 预留,暂时没什么实际的作用[LIST]
name = SDCard       // Profiles/Linux/OS Firmware/ucl2.xml 里面目标操作列表的名字[variable]          // ucl2.xml 中对应 name 的 list 会引用到的环境变量
board = sabresd     // 引用模式是 %board%,要和平台的名字一样,否则可能会出错
mmc = 0             // 引用模式是 %mmc%
sxuboot=sabresd
sxdtb=sdb
7duboot=sabresd
7ddtb=sdb
6uluboot=14x14ddr3arm2
6uldtb=14x14-ddr3-arm2
6ulldtb=14x14-ddr3-arm2
ldo=
plus=
lite=l
initramfs=fsl-image-mfgtool-initramfs-imx_mfgtools.cpio.gz.u-boot
seek = 1
sxnor=qspi2
7dnor=qspi1
6ulnor=qspi1
nor_part=0

(3)ucl2.xml文件

  ucl2.xml 是系统升级时的操作文件,MfgTool 会根据文件里面 list 的内容进行相应的升级。文件以如下一行为界线,可以分为上阶段和下阶段。

<CMD state="BootStrap" type="jump" > Jumping to OS image. </CMD>

  上阶段是把“媒介镜像”烧录到DDR里面并启动,下阶段是烧录“file”目录里面的文件到emmc上。我们以 Nand Flash 为例,抽取以下第二阶段内容,需要注意其中的注释:

<!--burn the uboot to NAND: -->
<CMD state="Updater" type="push" body="send" file="files/u-boot-imx6ul%lite%%6uluboot%_%nand%.imx" ifdev="MX6ULL">Sending u-boot.bin</CMD><!--burn the kernel to NAND: -->
<CMD state="Updater" type="push" body="send" file="files/zImage-imx6ul%lite%" ifdev="MX6ULL">Sending kernel zImage</CMD>
<CMD state="Updater" type="push" body="send" file="files/zImage-imx6ul%lite%-%6uldtb%-%nanddtb%.dtb" ifdev="MX6ULL">Sending Device Tree file</CMD><!--burn the rootfs to NAND: -->
<CMD state="Updater" type="push" body="pipe tar -jxv -C /mnt/mtd%part_rootfs%" file="files/core-image-base-mys6ull14x14.rootfs.tar.bz2" ifdev="MX6ULL">Sending and writting rootfs</CMD>

  注释下的内容严格规定了MFG Tools的烧录过程,即:“分区 –> 烧写uboot –> 烧写zImage –> 烧写dtb –> 烧写rootfs”。

  顺便分析下 VB Script 脚本的内容吧,对应 Nand Flash 的是 mfgtool2-yocto-mx-evk-nand.vbs,内容如下:

Set wshShell = CreateObject("WScript.shell")
wshShell.run "mfgtool2.exe -c ""linux"" -l ""NAND Flash""  -s ""board=sabreauto"" -s ""lite=l"" -s ""6uluboot=14x14evk"" -s ""nand=nand"" -s ""6uldtb=14x14-evk"" -s ""nanddtb=gpmi-weim"" -s ""part_uboot=0"" -s ""part_kernel=1"" -s ""part_dtb=2"" -s ""part_rootfs=3""   "
Set wshShell = Nothing

  显然,该脚本的作用就是启动 mfgtool2.exe,并且传入一些变量,这些变量会覆盖 cfg.ini 文件中的变量,从而达到执行不同脚本更新不同板卡的目的。
  好啦,赶紧在 MYS-6ULX-IOT 上实际操作下吧~

  事先提醒一下:请勿将 DV 5V 电源适配器和 Micro USB 接口同时供电!

  使用 MfgTool 更新系统的流程如下:

  (1)设置拨码开关(SW1)的第3位为 ON,第4位为 OFF;

  (2)使用 USB 转接线(Type-A 转 Micro-B)连接 PC 机 USB 端口与开发板(J7);

  (3)进入 MfgTool 目录,双击执行 mfgtool2-yocto-mx-evk-nand.vbs 脚本(因为 MYS-6ULX-IOT 默认焊接的是 Nand Flash);

  (4)一切正常的话,在设备管理器或 MfgTool 界面可以看到已识别开发板;

  (5)点击 MfgTool 界面上的 Start 按钮,MfgTool 就开始自动更新系统至板载存储设备;

  (6)更新成功后底部的总进度条显示为绿色,若失败则为红色,MfgTool.log 文件会记录错误提示信息。

  更新完毕,断开 USB 电源,将拨码开关(SW1)的第3位拨回 OFF,第4位拨回 ON,重新上电即可进入新系统。


  再啰嗦几句~

  媒介镜像主要关注的是 zImage,因为“媒介uboot”在编译 yocto 的时候已经打包好了,具体是“build/tmp/deploy/images/$MACHINE/u-boot-$MACHINE.imx”文件,直接拿来使用就好。dtb 文件也使用编译好的就可以了,没什么特殊要求。zImage 有所要求,但 Freescale 也帮我们铺好路了。看到“arch/arm/configs/ imx_v7_mfg_defconfig”配置文件,使用此配置文件编译出来的 zImage 就是“媒介zImage”。然后把这些媒介的 image 放到 MfgTool 的目录下 Profiles/Linux/OS Firmware/firmware 目录里面即可,不同版本的 MfgTool 路径可能有区别。

  对于 imx_v7_mfg_defconfig 与其他 config 文件不一样的地方就是 CONFIG_FSL_UTP。对应的内核源码在“drivers/usb/gadget/f_mas_stotage.c”里面,具体的作用也就是接收并处理来自 OTG 的 image、script 和 command。

MYS-6ULX-IOT 开发板测评——使用MfgTool更新系统相关推荐

  1. 华为认证物联网开发利器:小熊派IoT开发板

    今年8月份我和小伙伴们协同研发的基于NB-IoT的智慧路灯监控系统有幸入选华为开发者大赛IoT赛道决赛,决赛期间留意到70%以上的个人/学生开发者团队都使用到华为认证(匹配HCIP:华为认证ICT高级 ...

  2. 小熊派IoT开发板系列教程正式发布——免费学习

    小熊派介绍 小熊派IoT开发板一款由南京厚德物联网有限公司联合华为技术有限公司基于STM32L431RCT6设计的高性能物联网开发板.开发板充分考虑物联网感知层设备的多样性,具有强大的可扩展性,用于提 ...

  3. 2021物联网开发学习——基于小熊派IoT开发板Bear-Pi-IOT、E53_IA1_智慧农业拓展板与小熊派-鸿蒙·季Bear-Pi-HM Nano并接入Hi-Link

    2021物联网开发学习--基于小熊派IoT开发板Bear-Pi-IOT.E53_IA1_智慧农业拓展板与小熊派-鸿蒙·季Bear-Pi-HM Nano并接入Hi-Link 目录 作者介绍 目的 用到的 ...

  4. 鸿蒙IOT开发板 小熊派上手体验

    鸿蒙IOT开发板 小熊派上手体验 一.简介 二. 上手搭建开发环境 1. 准备开发工具 2. 使用VMWare 创建虚拟机 4. 设置磁盘映射 5. 在ubuntu里获取源码 6. 编译代码 三.连接 ...

  5. 【致敬未来的攻城狮计划】--RA2E1 开发板测评(2)LED闪烁

    前言 (1)首先感谢 李肯前辈的活动,从而申请到了RA2L1开发板的测评. (2)注意,学习本文之前要学习 瑞萨Renesas RA2L1 开发板测评(1)--keil环境配置: (3)我们拿到开发板 ...

  6. 海图SD3403开发板测评

    今天给大家带来一款高性价比的嵌入式开发板测评--海图HT-SD3403.这是一款基于SD3403芯片设计的嵌入式开发板,最近使用的人很多啊,笔者这里也是买了一块,我们来看一下,他的具体的情况. 首先, ...

  7. UDI Tegra K1 SOC安卓游戏开发板测评

    UDI Tegra K1 SOC安卓游戏开发板测评 据我所知,优地科技的这款开发板是业内首款基于NVIDIA 的Tegra K1主芯片的安卓嵌入式高性能计算开发板,它的强大之处,可能只有亲自体验才能真 ...

  8. AB32开发板测评:GPIO控制RGB彩灯

    文章目录 [AB32VG1]开发板测评:RGB彩灯 一.初始准备 1.硬件平台 2.软件平台 二.操作步骤 1.RTT环境生成 2.RTT程序编写 3.程序下载,观察现象 三.心得 [AB32VG1] ...

  9. 【致敬未来的攻城狮计划】--RA2E1 开发板测评(4)UART通讯

    前言 (1)首先感谢 李肯前辈的活动,从而申请到了RA2L1开发板的测评. (2)学习本文之前要具备的知识: [致敬未来的攻城狮计划]--RA2E1 开发板测评(1)keil环境配置: [致敬未来的攻 ...

  10. 乐鑫esp8266模块MicroPython开发板MQTT物联网人工智能最小系统

    简 介: ※对于购买自网络的基于ESP8266的实验模块进行了初步的测试,它其中的一些示例进行了练习.特别是对于基于ESP8266的特殊的一些外设的测试. 关键词: ESP8266,MicroPyth ...

最新文章

  1. 还不错的Table样式和form表单样式
  2. 贝塞尔曲线(B′ezier)基础
  3. Keil4 几例异常解决办法
  4. Android BufferQueue生产消费原理(八)
  5. Deep Learning 和 Knowledge Graph howto
  6. poj3254:基础状压dp
  7. win10安装Visual Stdio2010教程及问题解决办法
  8. LVDS接口分类,时序,输出格式
  9. js 大地坐标转经纬度
  10. android qq音乐歌词怎么实现,Android自定义View,高仿QQ音乐歌词滚动控件!
  11. iOS应用内部浮窗实现
  12. 算法笔记.胡凡 第四章 算法初步
  13. 华为重回Android,被谷歌移除的华为Mate 20 Pro重回Android Q名单
  14. iVMS-4200 Vs区别_【欧国联:德国 VS 瑞士】体育足球赛事专业紅單推荐
  15. TFBGA240+25封装尺寸图
  16. Selective Search 学习笔记
  17. excel数据透视表总结
  18. oracle固定资产结帐,如何控制必须先固定资产模块结帐,才可以总账模块结账。...
  19. IE可以上网谷歌和QQ无法上网
  20. java电商项目_Java电商项目总结(二)

热门文章

  1. 电池充电电路(TP4059)详解
  2. 京版国八条终于出来了——京十五条
  3. 毕业季--写给未来的自己
  4. 如何给grldr.mbr和grldr改名
  5. Leetcode 50. Pow(x, n)碰到的一些问题
  6. 何为血缘分析?血缘分析能给我们带来什么影响?
  7. Flink统计日志图片信息并降序排序
  8. html b5纸尺寸,A5纸的尺寸多大(各种标准纸张大小A1,A2,A3,A4纸的尺寸)
  9. 个人博客如何选择图床
  10. 出国留学成绩要求主要看点在雅思