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

 

  1.   1
  2.   摘要
  3.   商标
  4. 1简介
    1. 1.1 引导加载程序概念
    2. 1.2 MSPM0 引导加载程序结构
      1. 1.2.1 基于 ROM 的 BSL
      2. 1.2.2 带有基于闪存的插件接口的基于 ROM 的 BSL
      3. 1.2.3 基于闪存的辅助 BSL
    3. 1.3 MSPM0 BSL 功能和演示摘要
  5. 2BSL 主机实现摘要
  6. 3非主闪存中的 BSL 配置(配置 NVM)
    1. 3.1 非主闪存简介
    2. 3.2 示例 – 使用 Sysconfig 禁用 PA18 BSL 调用引脚
  7. 4引导加载程序主机
    1. 4.1 MCU 主机代码简介
      1. 4.1.1 硬件连接
      2. 4.1.2 TXT 到头文件的转换
      3. 4.1.3 使用演示的分步操作
    2. 4.2 PC 主机示例
      1. 4.2.1 准备映像文件和密码文件
      2. 4.2.2 使用 GUI 的步骤
  8. 5引导加载程序目标
    1. 5.1 基于 ROM 的默认 BSL
      1. 5.1.1 UART 接口
      2. 5.1.2 I2C 接口
    2. 5.2 基于闪存的插件接口演示
      1. 5.2.1 UART 接口
        1. 5.2.1.1 使用演示的分步操作
        2. 5.2.1.2 如何调试插件接口代码
      2. 5.2.2 I2C 接口
      3. 5.2.3 SPI 接口
      4. 5.2.4 CAN 接口
    3. 5.3 辅助 BSL 演示
      1. 5.3.1 基于闪存的辅助 BSL 从 0x1000 开始
      2. 5.3.2 基于闪存的辅助 BSL 从 0x0000 开始
        1. 5.3.2.1 MSPM0C 基于闪存的 0x0 地址 BSL 演示
        2. 5.3.2.2 实时固件更新
  9. 6常见问题
    1. 6.1 链接器文件修改
    2. 6.2 由 CCS 恢复出厂设置以恢复器件
  10. 7参考资料
  11. 8修订历史记录

辅助 BSL 演示

如果需要专用协议,则无法再使用基于 ROM 的 BSL 内核或不带 ROM BSL 的 MSPM0C,可以参考辅助 BSL 演示。SDK 中提供了完全开放源码的辅助 BSL 演示,您可以使用它轻松修改协议。辅助 BSL 演示的默认协议与基于 ROM 的 BSL 相同。图 1-6 中提到了几种辅助 BSL 演示。

表 5-1 MSPM0 辅助 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 演示。