ZHCABS9A October 2017 – September 2022 TMS320F28075 , TMS320F28075-Q1 , TMS320F28374D , TMS320F28374S , TMS320F28375D , TMS320F28375S , TMS320F28375S-Q1 , TMS320F28376D , TMS320F28376S , TMS320F28377D , TMS320F28377D-EP , TMS320F28377D-Q1 , TMS320F28377S , TMS320F28377S-Q1 , TMS320F28379D , TMS320F28379D-Q1 , TMS320F28379S
HWBIST 执行过程中出现故障是一种严重的情况。如果发生这种情况,则无法确保发生故障的 CPU 的行为。必须包含采取适当措施以正常关闭系统的代码。这可以通过解码 STL_HWBIST_runFull() 或 STL_HWBIST_runMicro() 的返回值来实现。
可通过 NMI 的陷阱管理代码。这是一种管理 HWBIST 故障的更快方法,尤其是在双 CPU 器件的情况下,因为 NMI 同时发送到两个 CPU。要利用 NMI 陷阱,系统代码必须执行以下操作:
SysCtl_clearNMIStatus(STL_HWBIST_NMI_CPU1_HWBISTERR);
SysCtl_clearNMIStatus(STL_HWBIST_NMI_CPU2_HWBISTERR);
Interrupt_register(INT_NMI, STL_HWBIST_errorNMIISR);
Interrupt_enablePIE();
PIECTRL 寄存器的 ENPIE 位在 HWBIST 软件正在测试的 CPU 上设置,但也必须在另一个 CPU(在双 CPU 器件中)上设置该位以响应故障。
有关 NMIFLG 寄存器及其包含的 HWBIST 标志的更多详细信息,请参阅特定于器件的《技术参考手册》。