ZHCAFQ7 September 2025 F29H850TU , F29H859TU-Q1
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 中的所有低优先级错误,也有一个聚合输出。
| 错误类型值 | 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 配置为针对低优先级错误和高优先级错误分别生成适当的操作。