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
如果需要专用协议,则无法再使用基于 ROM 的 BSL 内核或不带 ROM BSL 的 MSPM0C,可以参考辅助 BSL 演示。SDK 中提供了完全开放源码的辅助 BSL 演示,您可以使用它轻松修改协议。辅助 BSL 演示的默认协议与基于 ROM 的 BSL 相同。图 1-6 中提到了几种辅助 BSL 演示。
| 演示 | SDK 中的工程 | 用例 |
|---|---|---|
| 从 0x1000 开始的辅助 BSL | <...\mspm0_sdk_xx\examples\nortos\LP_MSPM0L1306(或 LP_MSPM0G3507)\bsl\secondary_bsl_uart/i2c/spi/can> | 只能用于在引导代码中进行 BSL 调用检测的器件(通常是带有 ROM BSL 的器件)并且需要专用协议。 |
| 适用于 MSPM0C 且从 0x0 开始的基于闪存的 BSL | <...\mspm0_sdk_xx\examples\nortos\LP_MSPM0C1104\bsl\flash_bsl> | MSPM0 没有基于 ROM 的 BSL,或者需要在跳转到应用程序之前更改判断条件,例如每次上电或复位时执行应用程序的区域 CRC。 |
| 实时固件更新 BSL | 不适用 | 需要实时固件更新 |
传统的基于闪存的 BSL 设计与适用于 MSPM0C 且从 0x0 开始的基于闪存的 BSL 演示更为相似。对于此类设计,可以直接跳转到应用程序代码中,以便将 PC 设置为应用程序代码的起始地址。但在某些意外情况下,这可能会导致栈冲突问题。对于辅助 BSL 从 0x1000 开始的设计,可使用复位来跳转到应用程序代码,在进入可能更加稳定的应用程序代码之前复位所有寄存器或 SRAM。如果具有基于 ROM 的 BSL 的 MSPM0 器件且还需要专用协议,强烈建议使用从 0x1000 开始的辅助 BSL 演示。