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

 

  1.   C2000™ 硬件内置自检
  2.   商标
  3. 1引言
    1. 1.1 HWBIST 概述
      1. 1.1.1 HWBIST 系统内运行
    2. 1.2 HWBIST 故障响应
    3. 1.3 使用系统内 HWBIST 的优点
  4. 2使用系统内 HWBIST
    1. 2.1 基本 HWBIST 操作
      1. 2.1.1 初始化 HWBIST 控制器
      2. 2.1.2 执行 HWBIST
        1. 2.1.2.1 执行 HWBIST 微运行
        2. 2.1.2.2 执行 HWBIST 完全运行
      3. 2.1.3 错误管理
    2. 2.2 管理双核器件上的 HWBIST
      1. 2.2.1 信标管理
      2. 2.2.2 处理器间通信
    3. 2.3 使用 HWBIST 时的系统注意事项
      1. 2.3.1 中断延迟
      2. 2.3.2 电源注意事项
      3. 2.3.3 HWBIST 存储器要求
      4. 2.3.4 注入错误
    4. 2.4 调试系统内 HWBIST
  5. 3参考文献
  6. 4Revision History

注入错误

HWBIST 包括一些错误注入功能,以帮助验证系统错误处理代码。可以通过运行以下函数来调用这些错误:

void STL_HWBIST_injectError(const STL_HWBIST_Error errorType);

表 2-1 列出了注入的错误类型、值和预期行为。

表 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