痞子衡維護的 NXP-MCUBootUtility 工具距離上一個版本(v2.4.0)發(fā)布過去 2 個半月了,這一次痞子衡為大家?guī)砹巳掳姹?v3.0.0,從這個版本開始,NXP-MCUBootUtility 將不再局限于 i.MXRT 系列,也要開始支持經(jīng)典的 LPC,Kinetis 系列。
一、v3.0 更新記錄
二、關(guān)于新系列 MCU 的支持
NXP-MCUBootUtility v3.0 之前的版本主要支持 i.MXRT 系列,該系列都是不含內(nèi)部 Flash 的,因此芯片本身比較復(fù)雜,對于嵌入式初學者來說,玩起來的難度較大。從 v3.0 開始,MCUBootUtility 加入了 LPC、Kinetis 的支持,這兩個系列 MCU 大多含有內(nèi)部 Flash,玩起來的難度較小。
2.1 第二代 Kinetis 系列
NXP-MCUBootUtility v3.0 目前并不是支持全部的 Kinetis 型號,其主要支持第二代 Kinetis,即 2014 年初及以后問世的 Kinetis 芯片(比如 MKL03、MKL27、MKL43、MKL80、MKE18F 等),第二代 Kinetis 芯片有一個明顯的特質(zhì)是內(nèi)部包含 BootROM。
NXP-MCUBootUtility 主要需要跟 Kinetis BootROM 做通信以完成其內(nèi)部 FTFx NOR Flash 的更新下載,這個 BootROM 有一個專門的官方主頁,主頁里標明了全部含 BootROM 的 Kinetis 型號:
MCUBOOT 主頁:https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools-/mcuboot-mcu-bootloader-for-nxp-microcontrollers:MCUBOOT
對于不含 BootROM 的 Kinetis 系列(比如 MK22、MK65、MKVxx、MKWxx 等),MCUBootUtility 將來的版本也會考慮進一步支持,因為 MCUBOOT 項目里有源碼版本 Bootloader 支持,需要你將 MCUBOOT 源碼通過調(diào)試器下載進 Flash 跑起來,然后 MCUBootUtility 工具就也可以去支持了。
2.2 LPC5500 系列
NXP-MCUBootUtility v3.0 當前也并不是支持全部的 LPC 型號,其主要支持全新的 LPC5500 系列,這是 LPC 主打 Cortex-M33 內(nèi)核的型號系列,除了 ARM 自帶的 TrustZone 特性外,恩智浦也為其賦予了一系列黑科技安全模塊(尋常 AES-256/SHA-2/RNG/UID 不在話下,SRAM PUF、PRINCE、PFR 才是特色)。
NXP-MCUBootUtility 是跟 LPC5500 BootROM 做通信以完成其內(nèi)部 C040HD NOR Flash 的更新下載(不包含 PFR 區(qū)域),該系列 Flash 有個重要特色,就是最后的 10 幾個 Page 是受特殊保護的,這個區(qū)域叫 PFR,存放了一些重要的原廠配置和安全相關(guān)數(shù)據(jù),訪問這個區(qū)域需要特殊的方式(工具后續(xù)會支持)。
LPC5500 系列主頁:https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/lpc5500-cortex-m33:LPC5500_SERIES
- Note 1: LPC5500 BootROM 支持的通信接口非常豐富,UAR/SPI/I2C/USB-HID,但 MCUBootUtility 僅支持 UART/ISB-HID。Note 2: LPC5500 系列支持非常豐富的安全啟動模式(簽名與各種加密方式),v3.0 版本 MCUBootUtility 目前還不支持其安全模式。
至此,這次更新的主要特性便介紹完了。MCUBootUtility 項目地址為 https://github.com/JayHeng/NXP-MCUBootUtility , 雖然當前版本(v3.0.0)功能已經(jīng)非常完備,你還是可以在此基礎(chǔ)上再添加自己想要的功能。如此神器,還不快快去下載試用?