ZHCAES8 September   2024 MSPM0C1103 , MSPM0C1103-Q1 , MSPM0C1104 , MSPM0C1104-Q1 , MSPM0C1105 , MSPM0C1106 , MSPM0C1106-Q1 , MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G1518 , MSPM0G1519 , MSPM0G3105 , MSPM0G3105-Q1 , MSPM0G3106 , MSPM0G3106-Q1 , MSPM0G3107 , MSPM0G3107-Q1 , MSPM0G3505 , MSPM0G3505-Q1 , MSPM0G3506 , MSPM0G3506-Q1 , MSPM0G3507 , MSPM0G3507-Q1 , MSPM0G3518 , MSPM0G3518-Q1 , MSPM0G3519 , MSPM0G3519-Q1 , MSPM0H3216 , MSPM0H3216-Q1 , MSPM0L1105

 

  1.   1
  2.   摘要
  3.   商标
  4. 1调试子系统和 MSPM0 简介
    1. 1.1 访问 MSPM0 的端口
      1. 1.1.1 高级高性能总线访问端口
      2. 1.1.2 配置访问端口
      3. 1.1.3 安全访问端口
      4. 1.1.4 EnergyTrace 访问端口
      5. 1.1.5 电源访问端口
    2. 1.2 处于空白/低功耗状态的 MSPM0 的行为
  5. 2正确的 SWD 初始化序列
  6. 3PWR-AP
    1. 3.1 使用 MSPM0 启用低功耗模式调试
    2. 3.2 修改 MSPM0 的复位行为
      1. 3.2.1 等待调试
      2. 3.2.2 复位时停止
      3. 3.2.3 INRST 行为
    3. 3.3 寄存器视图
  7. 4SEC-AP
    1. 4.1 DSSM 命令
      1. 4.1.1 恢复出厂设置
      2. 4.1.2 批量擦除
      3. 4.1.3 密码身份验证
      4. 4.1.4 数据交换
      5. 4.1.5 等待调试
      6. 4.1.6 自定义 DSSM 命令
    2. 4.2 DSSM 流程
    3. 4.3 寄存器视图
  8. 5了解 MSPM0 中的闪存
    1. 5.1 保护 MSPM0 上的闪存存储器
    2. 5.2 清除 STATCMD 寄存器
    3. 5.3 MSPM0 的理想编程流程
  9. 6MSPM0 的复位
  10. 7总结
  11. 8参考资料

清除 STATCMD 寄存器

随着 MSPM0 器件系列通过更新的 SOC 进行扩展,添加闪存支持时的最佳实践也在不断发展。对于 MSPM0 的所有型号,最好在执行任何闪存操作之前清除 STATCMD 寄存器。通过将清除状态命令 (0x00000005h) 写入 CMDTYPE 寄存器并执行,可清除寄存器。执行命令时,将清除 STATCMD 寄存器中的所有既有内容。需要注意的是,清除 STATCMD 寄存器也会复位之前讨论的 CMDWEPROTx 寄存器。

在尝试执行扇区擦除时清除 STATCMD 寄存器的示例可参见以下步骤:

  1. 向 CMDTYPE 寄存器写入清除状态 (0x00000005h) 命令。
  2. 通过将执行密钥 (0x00000001h) 写入 CMDEXEC 寄存器来执行命令。
  3. 通过检查 STATCMD 寄存器来轮询完成情况。
    1. 完成时,STATCMD 将清空。
  4. 通过将 CMDWEPROTx 中所需的位设置为零来取消对存储器扇区的保护。
  5. 设置 CMDTYPE 寄存器执行大小为一个扇区的擦除 (0x00000042h)。
  6. 将 CMDADDR 寄存器设置为等于所需的操作地址。
  7. 通过将执行密钥 (0x00000001h) 写入 CMDEXEC 寄存器来执行命令。
  8. 通过检查 STATCMD 寄存器来轮询完成情况。