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

常见问题解答:

  1. 用户是否设置和配置 NMI ISR?

    解答 – 是的,建议用户在器件初始化期间设置 NMI ISR,这样,当发生高优先级错误(例如 Group0 错误事件)并触发相应 CPU 的 NMI 时,就可以按照 F29x TRM 中的指导和 ESM 多核 F29 SDK 示例,慢慢清除 EAM 和 ESM 中的错误标志。如果未能清除 ESM 原始状态标志,会导致 NMIWD 超时并触发 XRSn(器件复位)。用户可以检查 RESC(复位原因)寄存器中的 NMIWD 位以确认这一点。

  2. 如果没有应用程序进行的 NMI ISR 设置并且没有基于组 0 ESM 错误事件的默认设置由错误事件导致的 NMI,会怎样?

    解答 — 如果没有用户/应用程序 NMI ISR 设置,则 CPU 转至 BootROM 中的默认 NMI 处理程序,这时, CPU 清除并将错误状态和标志保存在 M0 RAM 地址中以进行调试。有关更多信息,请参阅 BootROM TRM 一章。

  3. 如果配置了 NMI ISR 但未清除错误标志,会怎样?

    解案 – ESM NMIWD 超时发生并导相应 CPU 产生高优先级看门狗中断输出。ESM CPU1 高优先级看门狗中断输出连接以导致 XRSn,而 ESM CPU2/CPU3 产生相应的 CPURSn,如 ESM 子系统集成视图中所示。

  4. 如果没有将 ESM 配置为针对高优先级 CPU EAM 错误(作为组 0 错误事件传输给 ESM)产生相应 CPU 的 NMI,会怎样?

    解答 – 当 ESM Group0 错误事件处于活动状态并传输通过 EAM 模块,但未配置为产生 NMI 时,CPU 进入故障状态。处于活动状态的 CPU EAM 模块高优先级错误应配置为始终触发相应 CPU 的 NMI。

  5. ESM/EAM 标志在 XRSn(设备重置)或 CPURSn(CPU 重置)之后是否清除?

    解答 – 不是,错误类型寄存器(本文档中称为 EAM 错误标志)和 ESM 原始状态寄存器 (RAW_j)(称为 ESM 错误标志)仅由 PORESETn 复位。即使在 XRSn 和 CPURSn 之后,这些标志也会保留值,因为应用程序需要这类错误标志信息,才能在由 ESM 触发复位并作为对应用程序软件未处理的错误事件响应的情况下进行调试。

  6. 为什么即使在清除 ESM 原始状态寄存器后,对于导致 NMI 的所有事件,CPU 仍继续进入 NMI ISR?

    解答 – 在清除 ESM 原始状态寄存器 (RAW_j) 标志后,确保也使用相应的错误 ESM 中断输出适当键写入 EOI 寄存器。此写入 EOI 的步骤基本上是用户确认 ESM 中断输出,并将 ESM 输出置为无效。如果未对 EOI 寄存器进行写入,即使 ESM 错误事件标志被清除,ESM 中断输出也会保持有效。

  7. 根据发生的特定错误事件,是否仅可以产生 CPU1 的 NMI 而不是 CPU3 的 NMI 并且反之亦然?

    解答 – 是的,ESM 是高度可配置的,并且由于每个 CPU 都有单独的专用 ESM 逻辑块,因此可以在初始化期间设置配置,以便从各自的 ESM CPU 逻辑块产生任一 CPU 的 NMI 或任何其他错误响应,同时禁用另一个 ESM CPU 逻辑块针对特定错误事件产生错误响应或配置不同的错误响应。