ZHCABY5D December 2022 – September 2025 MSPM0C1105 , MSPM0C1106 , MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G3105 , MSPM0G3106 , MSPM0G3107 , MSPM0G3505 , MSPM0G3506 , MSPM0G3507 , MSPM0L1105 , MSPM0L1106 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2227 , MSPM0L2227-Q1 , MSPM0L2228 , MSPM0L2228-Q1
对于从 0 地址开始的辅助 BSL,每次上电或复位时,MCU 都会进入辅助 BSL 中。在辅助 BSL 中,使用自定义检查判断方式来决定是保持在 BSL 中进行固件更新还是进入应用程序。此设计的优势在于,客户可以使用不限于 GPIO、空白器件检测的特殊判断方式。例如,在跳转到应用程序代码之前需要检查应用程序的 CRC,以确保应用程序代码的完整性。另一个用例是对于某些不带 ROM BSL 的 MSPM0 器件,例如 MSPM0C,我们在 SDK 中提供了与此相关的演示代码。跳转到应用程序时,可以将 PC 设置为应用程序的起始地址。
若要使用这种 BSL,需要创建两个工程:一个用于辅助 BSL,另一个用于应用程序。闪存区域需要分离。每个工程都有两个中断表。BSL 需要配置矢量表偏移寄存器 (SCB->VTOR),以便在从 BSL 跳转到应用程序代码时激活当前中断表(应用程序跳转到 BSL 可执行复位,进而将自动复位矢量表偏移寄存器)。
还有一个辅助 BSL 演示代码可支持实时固件更新。该演示意味着辅助 BSL 固件更新正在进行,而不会停止应用程序代码。有关更多信息,请参阅 MSPM0 实时固件更新 (LFU) 引导加载程序实现。