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 从 0x0000 开始

对于从 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) 引导加载程序实现