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 内核,可以参考辅助 BSL 演示。SDK 中提供了完全开放源码的辅助 BSL 演示,您可以使用它轻松修改协议。辅助 BSL 演示的默认协议与基于 ROM 的 BSL 相同。

 基于闪存的辅助 BSL 结构 图 1-5 基于闪存的辅助 BSL 结构

还提到了两种辅助 BSL 演示,如图 1-6 中所示。以 MSPM0G3507 为例:

 辅助 BSL 设计 图 1-6 辅助 BSL 设计
  • 对于从 0x1000 开始的辅助 BSL,您可以将此项放在闪存中除 0x0 之外的任何位置。因为应用程序代码必须从 0x0 地址开始。在这种情况下,器件上电或复位时,器件会检查引导代码中的 BSL 调用条件,以决定运行应用程序代码还是 BSL 代码。此演示重复使用了基于 ROM 的 BSL 的触发资源。(硬件、软件和空白器件检测,如需更多信息,请参阅 MSPM0 引导加载程序用户指南 的第 3.2 节。)图 1-7 展示了辅助 BSL 演示执行流程。
     辅助 BSL 执行流程图 1-7 辅助 BSL 执行流程
  • 对于从 0 地址开始的辅助 BSL,每次上电或复位时,MCU 都会进入辅助 BSL 中。在辅助 BSL 中,使用自定义检查判断方式来决定是保持在 BSL 中进行固件更新还是进入应用程序。此设计的优势在于,客户可以使用不限于 GPIO、空白器件检测的特殊判断方式。例如,在跳转到应用程序代码之前需要检查应用程序的 CRC,以确保应用程序代码的完整性。另一个用例是对于某些不带 ROM BSL 的 MSPM0 器件,例如 MSPM0C,我们在 SDK 中提供了与此相关的演示代码。在此演示中,检查调用条件后,如果需要跳转到应用程序,可以将 PC 设置为应用程序的起始地址。如需更多信息,请参阅节 5.3.2。还有一个演示在辅助 BSL 中使用 FreeRTOS,可实现实时固件更新。该演示意味着辅助 BSL 固件更新正在进行,而不会停止应用程序代码。有关更多信息,请参阅 MSPM0 实时固件更新 (LFU) 引导加载程序实现