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 包括一些错误注入功能,以帮助验证系统错误处理代码。可以通过运行以下函数来调用这些错误:
void STL_HWBIST_injectError(const STL_HWBIST_Error errorType);
表 2-1 列出了注入的错误类型、值和预期行为。
STL_HWBIST_ERROR 类型 | 值 | 描述和行为 |
---|---|---|
STL_HWBIST_NO_ERROR | 0x00000000 | 为将来的操作清除错误注入特性。 如果不存在故障,HWBIST 在正常操作下获得通过。 |
STL_HWBIST_TIMEOUT | 0x0000000A | 调用超时错误 这与 HWBIST 控制器中的计时器相关。如果 HWBIST 控制器在微运行期间超时,则微运行已失去控制。 这将生成一个超时故障标志,并向该 CPU(如果是双核器件,则向这两个 CPU)生成 NMI。 |
STL_HWBIST_FINAL_COMPARE | 0x000000A0 | 损坏 MISR 比较 HWBIST 正常执行,但在完成时与损坏的 MISR 进行比较。这不会导致故障状况,但它确实允许 CPU 检查 MISR 是否存在电路问题。 不会生成 NMI,也不会生成故障状态。 |
STL_HWBIST_NMI_TRAP | 0x00000A00 | 强制向 HWBIST 控制器生成一个 NMI 以调用关断,并将控制权返回给 CPU。 在开始 HWBIST 微运行执行之前停止微运行,并向待测 CPU 生成 NMI。 注: 尽管触发了 NMI,但没有设置 NMI 标志。 |
STL_HWBIST_LOGIC_FAULT | 0x00002000 | 将逻辑错误注入待测电路,以查看 HWBIST 是否捕获到该错误 这会导致设置相应的 HWBIST 故障状态位,并向该 CPU(如果是双 CPU 器件,则向这两个 CPU)生成 NMI。 注: 有效的逻辑错误注入值为 0x00001000 到 0xFFFFF000。诊断库仅提供一个值 (0x00002000)。但是,您可能希望修改源代码,以允许将其他或多个逻辑错误注入值写入 CSTCTEST 寄存器。请参阅软件诊断库的 stl_hwbist.h 中的源代码。 |
如果在调试错误管理过程中代码丢失,极可能的原因是 NMI 执行未适当地进行初始化。有关详细信息,请参阅Topic Link Label2.1.3。