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参考资料

错误聚合

C29x CPU 有 4 条总线:CPU DR1(数据读取总线 1)、DR2(数据读取总线 2)、DW(数据写入总线)和 PR(程序获取/读取总线)。为了找出错误源,会分别检测并捕获/记录每个总线产生的错误并将其记录到相应的 EAM 错误标志寄存器中。

除了错误聚合之外,错误事件还被分成低优先级错误和高优先级错误。在此示例中,根据错误的严重性,所有四条总线中的错误事件首先分为两类:优先级和高优先级错误,然后进行聚合。聚合输出,即低优先级和高优先级错误事件随后传输到 ESM。根据严重性在器件中预定义了错误优先级,请参阅 F29x 技术参考手册 中的错误聚合器一章,深入了解有关 EAM 中捕获的所有错误的错误优先级。

每个错误都分配了错误类型值和固定的预定义优先级,如下面的 CPU PR 总线示例表所示。

表 4-1 中展示的示例针对 CPU PR 总线。单比特(可纠正错误)和 WARNPSP 错误归类为低优先级错误,所有其他错误归类为高优先级错误。CPU PR EAM 中的所有高优先级错误类型都有单个聚合输出,类似地,对于 CPU PR EAM 中的所有低优先级错误,也有一个聚合输出。

表 4-1 EAM CPU PR 错误类型优先级
错误类型值 CPUx PR 错误 RAM、ROM、FRI – PR 错误 优先级
0x01

指令获取安全违例。指令包跨过 LINK、STACK、ZONE 边界。

线性代码跨过 LINK、STACK、ZONE 边界。

常规分支和调用跨过 STACK、ZONE 边界。

保留
0x02 安全进入错误 保留
0x04 安全退出错误 保留
0x08 MAX PSP 错误 保留
0x10 访问超时错误 保留
0x20 访问 ACK 错误 访问 ACK 错误
0x40 不可纠正的错误 不可纠正的错误
0x80 可纠正错误 保留
0x100 WARN PSP 错误 保留
0x200 软件断点错误 保留
0x400 非法指令错误 保留
0x800 指令超时错误 保留

来自所有 CPU 总线的所有高优先级错误(CPU PR、DR1、DR2 和 DW)也会合并为 CPU HPERR(高优先级错误)并发送到 ESM。同样,来自 CPU PR、DR1、DR2 和 DW 的所有低优先级错误合并为 CPU LPERR(低优先级错误)并发送到 ESM。图 4-1 展示了这种情况。

聚合的优势在于,将传输到 ESM 的错误事件数量以及 ESM 中针对这些错误事件的相应错误响应配置(在上表详述获)在所有 CPU 总线上减少到两个错误事件(高优先级和低优先级)。尤其当器件中存在多个此类错误事件时,单独配置每个 CPU 总线产生的每个错误是没有必要的。因此,所有 CPU 总线上的错误被聚合在一起并提供给 ESM。除了聚合错误之外,分类也很重要,因为通过分类,用户可以将 ESM 配置为针对低优先级错误和高优先级错误分别生成适当的操作。

 CPU1 EAM 模块错误聚合图 4-1 CPU1 EAM 模块错误聚合
注: 不要将 EAM 错误类型优先级与 ESM 输出优先级相混淆。要了解有关 ESM 输出优先级的更多信息,请参阅 F29x 技术参考手册 中的 ESM 一章。