错误信令模块 (ESM) 将对整个器件中错误事件的响应系统地整合到一个位置,这对于一些安全关键应用至关重要。
ESM 子系统包含以下模块:
- ESM CPU1 - 输出到 CPU1 的专用 ESM 模块
- ESM CPU2 - 输出到 CPU2 的专用 ESM 模块
- ESM CPU3 - 输出到 CPU3 的专用 ESM 模块
- 系统 ESM - 用于系统级输出的专用 ESM 模块(主要是 ERRORSTS 引脚输出、器件复位以及集成使用 XBAR 事件输出的其他模块)
图 5-1 详细介绍了 ESM 子系统如何在器件级集成,有关更多信息,请参阅 F29x TRM 中的 ESM 一章。
ESM 提供了一些功能将错误按照严重性分类并提供可编程错误响应。错误信令模块提供了一种方法,根据所遇到的错误的严重性,向 CPU 指示错误引脚响应、可选的中断优先级响应或不可屏蔽中断 (NMI)。用户负责确定要为每个错误事件采取的错误响应,以便与系统安全概念保持一致。
- 特定 CPU 中断:
- 中断(从 PIPE 到 CPU 的 INT 或 RTINT)(ESM 的低优先级中断输出)— 通常选择用于器件中遇到的可纠正或低严重性错误,或者可以实施以用于 CPU 外部的诊断。中断允许 CPU 外部的事件生成一个程序序列上下文,然后传输给中断处理程序,在那里软件有机会管理该故障。
- 不可屏蔽中断 (NMI)(ESM 的高优先级中断输出)— 通常选择用于器件中遇到的不可纠正或严重错误,在这类情况下,需要进行错误响应以将上下文传输到 NMI ISR,并且软件有机会管理故障并安全地中止操作。
- 错误信令引脚:
- PMIC(电源管理集成电路)等外部监测器的错误引脚 (ERRORSTS) 操作,用于在所需响应为生成外部错误响应的情况下执行操作。
- 复位
- 相应的 CPU 复位 (CPURSn):ESM 能够为单个 CPU 生成复位,以便在检测到 MCU 中存在错误时使系统进入安全状态。
- 器件复位 (XRSn):检测到错误时,触发器件复位 (XRSn) 以使 MCU 进入安全状态。
下一节简要概述了适用于 ESM 子系统中上述输出的 ESM CPU 和系统 ESM 模块的配置。有关更多详细信息,请参阅 F29x 技术参考手册 中的 ESM 一章和器件集成。
ESM 中错误事件的概述和须知要点:
- 错误事件对所有 ESM 模块(ESM CPU1/2/3 和系统 ESM)通用
- 每个 ESM 模块都有单独的配置和状态寄存器,因此所有 ESM 模块都可以彼此独立工作,从而针对不同的用例提供灵活性。例如,错误事件在发生时可配置为从 ESM CPU1 输出 CPU1 中断,而不配置为从 ESM CPU3 模块输出 CPU3 中断。
- 错误事件进一步分成 32 组。F29x 器件总共有 256 个错误事件,因此总共有 8 个组。
注: 默认情况下,所有 Group0 错误事件都映射到触发器 NMI。Group0 错误事件是来自 EAM(错误聚合器模块)的高优先级聚合 CPU 错误输出。