痞子衡嵌入式:MCUBootUtility v3.3发布,可配合SBL项目使用

--
  痞子衡维护的NXP-MCUBootUtility工具距离上一个大版本(v3.0.0)发布过去4个多月了,期间痞子衡其实断断续续做个几个小版本更新,这一次痞子衡为大家带来了稳定版本v3.3.0,顺便将之前的所有新增功能改动一并介绍。其实这次更新主要是跟恩智浦SE团队近期主推的一个神秘大项目SBL有关。

一、v3.1 - v3.3更新记录

-- v3.3.0
Features:
    1. 支持对源image文件进行部分签名
    2. 支持SBL设备的ISP下载
    3. 通用编程器模式下增加支持带格式源image文件(hex/s19)
Improvements:
    1. 启动头IVT中entry参数既支持设为复位函数也支持中断向量表

-- v3.2.0
Features:
    1. 支持i.MXRT116x
    2. 支持RT500/600下SB文件生成
Bugfixes:
    1. 修复RT1170下SB文件无法正常生成问题

-- v3.1.1
Bufixes:
    1. 修复RT1170下UART口无法正常下载问题

-- v3.1.0
Features:
    1. 支持i.MXRT1024 SIP
    2. 支持Kinetis K32L系列

二、关于新型号MCU的支持

  从v3.0到v3.3,工具一共增加了三款MCU型号的支持:Kinetis K32L、i.MXRT1024、i.MXRT1160。

  Kinetis K32L是以前老的Kinetis KL43系列的改良版。i.MXRT1024是i.MXRT1020的SIP版(就是内部绑了一个4MB串行NOR Flash)。i.MXRT1160是i.MXRT1170的低配版,官网还没上线,痞子衡给大家放个型号表尝尝鲜。

三、不可忽视的重要改进

3.1 自动生成的IVT头entry参数增加中断向量表选项

  在菜单栏Tools里新增了IVT Entry Type选项,这个选项的具体作用,详见痞子衡写过的一篇文章 《IVT里的不同entry设置可能会造成i.MXRT1xxx系列启动App后发生异常跑飞》,原先版本默认都是用Reset Handler做IVT.entry,但是有时候一些源可执行文件里Reset Handler值可能不正确,所以这里增加中断向量表的选项。

3.2 通用编程器下新增.s19/.hex格式支持

  原先工具通用编程器界面下仅支持.bin格式下载,现在新增支持经典的.s19和.hex文件格式,这样下载时就不用再手动填写起始下载地址了。

3.3 可以仅签名程序部分区域

  原先工具对于i.MXRT签名启动模式的支持,均是默认签名全部程序区域。但实际应用中,客户会有仅签名程序一部分区域的需求,因此v3.3里新增了部分区域签名的功能,最大支持3个区域。注意:第一个区域最好包含程序中断向量表(这是HAB的限制)。

四、配合恩智浦全新大项目SBL

  恩智浦MCU SE团队近期一直在加班加点赶一个大项目,这个项目是为客户产品OTA需求而生的。我们知道在线升级是每个智能产品都不可绕开的话题,恩智浦SE团队为了方便客户在基于i.MXRT/LPC的产品上做在线升级,特别推出OTA参考设计,下面是功能架构简图:项目分为SBL + SFW两部分,SBL负责ISP本地更新(UART/USB)以及App切换管理;SFW是一个示例App,其除了客户项目业务功能外,也集成了远程更新功能(WiFi、以太、U盘、SD卡四种升级方式)。这个项目近期将会在恩智浦官方github上以源码形式开源,敬请关注。

  工具为了支持这个大项目,在菜单栏Tools/Run Mode里新增了“SBL OTA”选项,切换到这个选项后,工具就可以配合SBL里的ISP功能(可以理解为二级L2 bootloader,其usb id固定为0x15A2, 0x0073)进行应用程序下载了,注意下载操作主要在通用编程器界面里完成。

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

欢迎订阅

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

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

posted @ 2021-05-21 19:36  痞子衡  阅读(700)  评论(2编辑  收藏  举报