ZHCAG08 November   2025 MSPM0G3507 , MSPM0L1306

 

  1.   1
  2.   摘要
  3.   商标
  4. 简介
    1. 1.1 术语
  5. NONMAIN 架构
    1. 2.1 MSPM0 系列概述
    2. 2.2 NONMAIN 配置概述
    3. 2.3 NONMAIN 存储器
  6. NONMAIN 配置
    1. 3.1 BCR 配置
      1. 3.1.1 BCR 配置 ID
      2. 3.1.2 串行线调试 (SWD) 策略
        1. 3.1.2.1 访问策略
        2. 3.1.2.2 调试策略
          1. 3.1.2.2.1 明文密码示例
          2. 3.1.2.2.2 SHA2-256 密码示例
        3. 3.1.2.3 批量擦除和恢复出厂设置策略
        4. 3.1.2.4 TI 故障分析
      3. 3.1.3 闪存静态写保护
        1. 3.1.3.1 MAIN 闪存静态写保护
        2. 3.1.3.2 NONMAIN 闪存静态写保护
      4. 3.1.4 客户安全代码 (CSC)
        1. 3.1.4.1 CSC 策略
        2. 3.1.4.2 闪存存储体交换策略
        3. 3.1.4.3 调试保持
      5. 3.1.5 快速引导模式
      6. 3.1.6 应用程序摘要校验
        1. 3.1.6.1 CRC32 摘要校验示例
        2. 3.1.6.2 SHA2-256 摘要校验示例
      7. 3.1.7 BSL 策略
      8. 3.1.8 BCR 校验和
        1. 3.1.8.1 CRC 校验失败处理
    2. 3.2 BSL 配置
      1. 3.2.1 BSL 配置 ID
      2. 3.2.2 调用引脚配置
      3. 3.2.3 基于 ROM 的通信接口
        1. 3.2.3.1 UART 接口
        2. 3.2.3.2 I2C 接口
        3. 3.2.3.3 USB 接口
      4. 3.2.4 闪存插件接口
      5. 3.2.5 备用 BSL 接口
      6. 3.2.6 BSL 安全配置
        1. 3.2.6.1 访问密码
        2. 3.2.6.2 读出功能
        3. 3.2.6.3 警报功能
        4. 3.2.6.4 应用程序完整性校验
      7. 3.2.7 BSL 校验和
        1. 3.2.7.1 CRC 校验失败处理
  7. 使用 SysConfig 进行 NONMAIN 配置
    1. 4.1 SysConfig 介绍
    2. 4.2 使用 SysConfig 进行 BCR 配置
      1. 4.2.1 密码配置
      2. 4.2.2 闪存静态写保护
      3. 4.2.3 其他 BCR 配置
    3. 4.3 使用 SysConfig 进行 BSL 配置
      1. 4.3.1 BSL 访问密码
      2. 4.3.2 BSL 调用引脚配置
      3. 4.3.3 BSL 通信接口
      4. 4.3.4 闪存插件接口
      5. 4.3.5 备用 BSL 接口
      6. 4.3.6 其他 BCR 配置
  8. 在应用程序代码中进行 NONMAIN 配置
  9. 使用 IDE 工具进行 NONMAIN 操作
    1. 6.1 NONMAIN 配置文件
    2. 6.2 项目擦除属性
    3. 6.3 密码保护调试
  10. 使用编程工具进行 NONMAIN 操作
    1. 7.1 使用 UniFlash 进行 NONMAIN 操作
    2. 7.2 使用 J-Flash 进行 NONMAIN 操作
    3. 7.3 使用 C-GANG 进行 NONMAIN 操作
    4. 7.4 使用 MSP-GANG 进行 NONMAIN 操作
  11. 常见问题解答 (FAQ)
    1. 8.1 MCU 锁定状态分析
      1. 8.1.1 硬件问题分析
        1. 8.1.1.1 硬件电路设计
        2. 8.1.1.2 调试器连接
        3. 8.1.1.3 外部复位信号
      2. 8.1.2 软件问题分析
        1. 8.1.2.1 CPU 进入故障状态
        2. 8.1.2.2 BCR 配置
        3. 8.1.2.3 低功耗模式(STOP 或 STANDBY)
        4. 8.1.2.4 SHUTDOWN IO 状态
        5. 8.1.2.5 SWD IO 功能
        6. 8.1.2.6 WDT 或 IWDT 复位
        7. 8.1.2.7 软件 POR 或 BOOTRST
    2. 8.2 解锁 MSPM0 器件
      1. 8.2.1 强制 MCU 进入 BSL 模式
      2. 8.2.2 发送 BSL 命令
      3. 8.2.3 执行 DSSM 命令
    3. 8.3 调试错误概述
      1. 8.3.1 无错误代码:DAP 连接错误
      2. 8.3.2 无错误代码:连接到 MSPM0 内核失败
      3. 8.3.3 错误 - 6305:PRSC 模块无法写入例程寄存器
      4. 8.3.4 错误 - 260:尝试连接到 XDS110 失败
      5. 8.3.5 错误 - 261:来自 XDS110 的无效响应
      6. 8.3.6 错误 - 615:目标无法识别格式正确的 SWD 标头
      7. 8.3.7 错误 - 1001:此器件不支持请求的操作
      8. 8.3.8 错误 - 2131:无法访问器件寄存器
    4. 8.4 MSPM0 引导诊断
  12. 总结
  13. 10参考资料

密码保护调试

当 SWD 调试策略设置为密码加密时,需在调试或下载新固件前执行用于 SWD 密码认证的 DSSM 命令。

TI 通过 XDS110 工具为 MSPM0 调试配置提供了.ccxml 文件。图 6-5 展示了为 DSSM 命令设置 128 位密码的步骤:

  1. targetConfigs 文件夹中,打开 .ccxml 文件。
  2. 选择 Advanced 以打开 XDS110 Target Configuration
  3. 选择 MSPM0 器件以打开 Device Properties 页。
  4. 在 SWD Password 框中输入 128 位密码。
MSPM0 使用 .ccxml 文件设置密码图 6-5 使用 .ccxml 文件设置密码
注: .ccxml 文件中设置的密码适用于所有 DSSM 操作密码,包括 SWD 访问、恢复出厂设置和批量擦除。

设置正确的密码后,运行 DSSM 脚本以解锁 SWD 接口。图 6-6 展示了使用 CCS v12 运行 DSSM 脚本的步骤:

  1. 在顶部菜单中的 View 下,选择 Target Configurations
  2. 选择目标项目的 .ccxml 文件。.ccxml 文件设置了密码。
  3. 选择 Launch the selected configuration
  4. 在调试窗口中,选择 XDS110 USB Debug Probe
  5. 在顶部菜单中,选择 Scripts
  6. 选择目标 MSPM0 器件以打开命令列表。
  7. 选择 DebugAccessPasswordAuthentication_Auto 以生成 DSSM 命令。CCS 会自动调用 DSSM 命令并发送 .ccxml 文件中的密码。
  8. 命令执行完成且器件解锁后,通过 Load Program or Load Symbol 执行进一步调试。
MSPM0 带 SWD 密码认证的 DSSM 命令图 6-6 带 SWD 密码认证的 DSSM 命令

如果用户在 CCS v20 中调试,则执行 DSSM 命令的过程略有不同。图 6-7 展示了该过程。

  1. 在项目中,找到 targetConfigs 并选择 .ccxml 文件。
  2. 右键单击 .ccxml 文件并选择 Start Project-less Debug
  3. 在顶部菜单中,选择 Scripts,然后选择 MSPM0 Device Commands
  4. 选择并执行 DSSM 命令。选择 DebugAccessPasswordAuthentication_Auto 以解锁 SWD 接口。
  5. 成功执行完命令后,找到顶部菜单。选择 Run,然后选择 Debug ProjectFlash Project
MSPM0 使用 CCS v20 的 DSSM 命令图 6-7 使用 CCS v20 的 DSSM 命令
注: 成功执行调试访问的密码认证序列后,器件将保持解锁状态直至下次 BOOTRST。