痞子衡嵌入式:MCUBootFlasher v3.0发布,为真实的产线操作场景而生


  痞子衡维护的NXP-MCUBootFlasher工具(以前叫RT-Flash)距离上一个版本(v2.0.0)发布过去一年半以上了,这一次痞子衡为大家带来了全新版本v3.0.0,从这个版本开始,NXP-MCUBootFlasher将不再局限于i.MXRT系列,也要开始支持经典的LPC,Kinetis系列。但是扩展MCU型号支持并不是这个版本最重要的更新,这次主要做了8路板卡异步自动下载功能(特别适合产线操作场景),痞子衡是怎么做到的?且往下看。

一、v3.0更新记录

二、关于新系列MCU的支持

  NXP-MCUBootFlasher v3.0之前的版本主要支持i.MXRT系列。从v3.0开始,MCUBootUtility加入了LPC5500、Kinetis的支持。这三大系列MCU虽然差异不小,但有一个共同特点,那就是支持恩智浦独创的一种程序文件格式(.sb)。这种SB格式文件除了包含可执行文件所有信息外,还同时包含配套的Flash操作步骤信息以及加密相关操作信息,这样就非常方便量产使用。下图便是最早期的.sb格式文件组成:

  Kinetis和i.MXRT1xxx系列是基于SB 1.x版本设计的,SB 1.x中程序既可以是不加密的也可以加密;i.MXRTxxx和LPC5500系列是基于SB 2.x版本设计的,SB 2.x规定了程序必须要加密。

三、适用真实的产线操作场景

  NXP-MCUBootFlasher v3.0之前的版本烧写多块板卡的设计逻辑是:一位工人将n块板卡先全部连上PC的插槽,等工具将板卡全部识别出来,这时候工人点击工具【Start】按钮,工具会按序完成这n块板卡的下载工作,然后工人再换下一批板卡,重复上述过程,其本质上是串行的。这种设计其实并不符合产线上实际操作流程。

  NXP-MCUBootFlasher v3.0版本实现了真正的异步烧写多块板卡的设计逻辑:n块板卡不需要同时被连上PC插槽,每个插槽均由一名工人负责,工人将板卡连上插槽,工具会自动完成该板卡的下载工作(不需要点击任何按钮),并给出最终下载状态结果,下载完成工人即可更换下一块板卡,重复此过程。n路插槽的n个工人可以根据自己工作节奏来做,不需要严格同步,其本质上是并行的,这种设计才是产线上的真实操作流程。

  基于并行的带宽考量,v3.0暂时支持最多8路插槽,当然想扩展到更多路,改一下代码也很容易做到。

Note: v3.0版本在使用上有一个小限制,8路插槽需要被分别单独下载一次(此时其他7路不能连接板卡),完成此流程后8路插槽便可以一起工作了。

  至此,这次更新的主要特性便介绍完了。MCUBootFlasher项目地址为 //github.com/JayHeng/NXP-MCUBootFlasher , 虽然当前版本(v3.0.0)功能已经非常完备,你还是可以在此基础上再添加自己想要的功能。如此神器,还不快快去下载试用?

欢迎订阅

文章会同时发布到我的 博客园主页CSDN主页知乎主页微信公众号 平台上。

微信搜索”痞子衡嵌入式“或者扫描下面二维码,就可以在手机上第一时间看了哦。