痞子衡維護的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升級以及App切換管理;SFW負責遠程更新(也包含U盤和SD卡方式升級),這個項目近期將會在恩智浦官方github上以源碼形式開源,敬請關注。

 

 

工具為了支持這個大項目,在菜單欄Tools/Run Mode里新增了“SBL OTA”選項,切換到這個選項后,工具就可以配合SBL里的ISP功能(可以理解為二級L2 bootloader,其usb id固定為0x15A2, 0x0073)進行應用程序下載了,注意下載操作主要在通用編程器界面里完成。

 

 

至此,這次更新的主要特性便介紹完了。MCUBootUtility項目地址如下。雖然當前版本(v3.3.0)功能已經非常完備,你還是可以在此基礎上再添加自己想要的功能。如此神器,還不快快去下載試用?

 

  • 地址1:https://github.com/JayHeng/NXP-MCUBootUtility地址2:https://gitee.com/jayheng/NXP-MCUBootUtility