工具/软件:
您好!
我正在使用 F29x 系列、并使用 EAM 和 ESM 配置 ECC 错误处理、如 TI 的 SDAA104 应用手册中所述。
我知道所有高优先级错误 (HPERR)(包括 ECC 错误)都通过 ESM 进行聚合和发出信号、通常会触发 NMI ISR?
我的问题:
NMI ISR 如何可靠地确定 HPERR 是由 ECC 错误(单位或双位)引起、而不是由另一个高优先级错误源(例如非法指令)引起?
到目前为止、我发现的内容:
- EAM 错误类型寄存器会记录每个错误源的特定值。
- 对于 ECC 错误、错误类型值
0x40适用于不可纠正的(双位,高优先级)和0x80可纠正的(一位,低优先级)。 - 其他 HPERR 具有不同的错误类型值(请参阅 SDAA104 中的表 4-1)。
读取 ISR 中 EAM 错误类型寄存器并与这些值匹配的推荐方法是否与这些值相匹配?
如果是、访问这些寄存器和处理同一 ISR 中的多个错误源是否有最佳实践?
希望提供有关 ISR 中稳健错误源识别的任何代码示例或说明!
