ZHCAFQ7 September   2025 F29H850TU , F29H859TU-Q1

 

  1.   1
  2.   摘要
  3.   商标
  4. 1简介
  5. 2错误处理架构概述
  6. 3示例概述
  7. 4错误聚合器概述
    1. 4.1 错误聚合
    2. 4.2 错误记录
    3. 4.3 使用 EAM 模块进行错误调试
      1. 4.3.1 EAM 错误调试
      2. 4.3.2 解读错误地址和程序计数器值
  8. 5错误信令模块概述
    1. 5.1 ESM 错误事件输出配置和状态信息
      1. 5.1.1 Sysconfig ESM 配置
    2. 5.2 ESM 错误事件调试
    3. 5.3 ESM 的其他调试技巧
  9. 6BootROM EAM 和 ESM 错误状态
  10. 7常见问题解答:
  11. 8总结
  12. 9参考资料

解读错误地址和程序计数器值

如第 3.2 节所述,错误地址和程序计数器地址可用于调试错误源。本节以 F29 SDK 中的 ESM 多核 (esm_ex1_cpu1_cpu3) 为例,展示如何解读错误地址和程序计数器。

可以将程序计数器 (PC) 地址复制到 CCS 反汇编视图,以查找发生错误的源代码。在此示例中,在查看 EAM 捕获的 PC 地址 (0x10402C14) 的相应 PC 地址 CCS 反汇编视图(如图 4-7 中所示)时,指向位置 0x20000000 (M0 RAM) 的数据写入操作,该位置也记录在 EAM 的高优先级地址寄存器内。因此,借助 PC 地址和错误地址信息,用户可以将问题精确指向导致错误的特定 CPU3 源代码写入操作。

CPU3 DW(数据写入)总线上发生了错误,从代码角度来看,这也与预期行为相符,因为 CPU3 应用程序代码对 M0RAM 的 M0RAM_data 进行写入操作,这是 CPU3 代码不允许的。CPU3 仅具有 M0RAM 的读取数据权限,因此在这种情况下,写入操作导致了 CPU3 DW 总线上出现安全违例错误。

 程序计数器的反汇编视图图 4-7 程序计数器的反汇编视图
表 4-2 从 CPU3 访问 M0RAM
存储器 交错式 CPU1 CPU2 CPU3 HSM RTDMA1 RTDMA2
M0 RAM 0WS 数据(读写) 0WS 数据(只读) 3WS 数据(只读) - - -