痞子衡嵌入式:MCUBootUtility v3.3釋出,可配合SBL專案使用

痞子衡發表於2021-05-21

--
  痞子衡維護的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)功能已經非常完備,你還是可以在此基礎上再新增自己想要的功能。如此神器,還不快快去下載試用?

歡迎訂閱

文章會同時釋出到我的 部落格園主頁CSDN主頁知乎主頁微信公眾號 平臺上。

微信搜尋"痞子衡嵌入式"或者掃描下面二維碼,就可以在手機上第一時間看了哦。

相關文章