ZHDA311 September   2026 MSPM33C321A

 

  1.   1
  2.   摘要
  3.   商标
  4. 1 简介
    1. 1.1 术语
  5. 2 NONMAIN 架构
    1. 2.1 MSPM33 系列概述
    2. 2.2 NONMAIN 配置概述
    3. 2.3 NONMAIN 存储器
  6. 3 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 SHA2-256 密码示例
        3. 3.1.2.3 批量擦除和恢复出厂设置策略
      3. 3.1.3 闪存安全配置
        1. 3.1.3.1 MAIN 闪存安全配置
        2. 3.1.3.2 DATA 闪存安全配置
        3. 3.1.3.3 NONMAIN 闪存静态写保护
      4. 3.1.4 引导期间的 SYSPLL 配置
      5. 3.1.5 客户安全代码 (CSC)
        1. 3.1.5.1 CSC 策略
        2. 3.1.5.2 闪存存储体交换策略
        3. 3.1.5.3 调试保持
      6. 3.1.6 快速引导模式
      7. 3.1.7 应用程序摘要校验
        1. 3.1.7.1 CRC32 摘要校验示例
        2. 3.1.7.2 SHA2-256 摘要校验示例
      8. 3.1.8 BSL 策略
      9. 3.1.9 BCR 校验和
        1. 3.1.9.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 CAN 接口
      4. 3.2.4 BSL 安全配置
        1. 3.2.4.1 访问密码
        2. 3.2.4.2 读出功能
        3. 3.2.4.3 警报功能
        4. 3.2.4.4 应用程序完整性校验
      5. 3.2.5 BSL 校验和
        1. 3.2.5.1 CRC 校验失败处理
  7. 4 使用 SysConfig 进行 NONMAIN 配置
    1. 4.1 SysConfig 介绍
    2. 4.2 使用 SysConfig 进行 BCR 配置
      1. 4.2.1 密码配置
      2. 4.2.2 SYSPLL 配置
      3. 4.2.3 闪存安全配置
      4. 4.2.4 应用程序摘要校验
      5. 4.2.5 其他 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 其他 BCR 配置
  8. 5 在应用程序代码中进行 NONMAIN 配置
  9. 6 使用 IDE 工具进行 NONMAIN 操作
    1. 6.1 NONMAIN 配置文件
    2. 6.2 项目擦除属性
    3. 6.3 密码保护调试
  10. 7 使用编程工具进行 NONMAIN 操作
    1. 7.1 使用 UniFlash 进行 NONMAIN 操作
    2. 7.2 使用 J-Flash 进行 NONMAIN 操作
  11. 8 常见问题解答 (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 解锁 MSPM33 器件
      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 无错误代码:连接到 MSPM33 内核失败
      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 MSPM33 引导诊断
  12. 9 总结
  13. 10参考资料

闪存存储体交换策略

在多存储体器件中,存储体交换默认处于禁用状态。

用户通过 BOOTCFG2.FLASHBANKSWAPPOLICY 字段启用存储体交换。引导代码读取此配置并将适当的 KEY (0xCA) 写入 SYSCTL.SECCFG.FLBANKSWPPOLICY。在硬件默认设置中,可交换配置为启用状态,且下存储体用作逻辑存储体 0。BOOTCFG2.FLASHBANKSWAPPOLICY 字段的默认值会禁用存储体交换策略。

存储体交换行为发生在 CSC 阶段,并在器件发出 INITDONE 后生效。CSC 使用适当的 KEY (0x58) 写入 SYSCTL.SECCFG.FLBANKSWP,以确定哪个存储体为逻辑存储体 0。

  1. 如果下部存储体作为逻辑存储体 0,则下部存储体和上部存储体的地址不会改变。
  2. 如果上部存储体作为逻辑存储体 0,则下部存储体和上部存储体的地址将交换。

这种机制强制执行的策略是发出 INITDOWN 后,通常执行存储体是逻辑存储体 0(低位地址),固件更新的保存位置是逻辑存储体 1(高位地址)。

备注: 当发生存储体交换以使上部存储体成为逻辑存储体 0 时,仅交换地址。不会传输下部存储体和上部存储体中的数据。
备注: 无论是否启用存储体交换,多个存储体都具有相同的属性(写入,读取和执行),具有不同的存储器地址。

有关存储体交换功能的更多详细信息,请参阅 评估 MSPM33 MCU 上的客户安全代码。