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 执行过程中出现故障是一种严重的情况。如果发生这种情况,则无法确保发生故障的 CPU 的行为。必须包含采取适当措施以正常关闭系统的代码。这可以通过解码 STL_HWBIST_runFull() 或 STL_HWBIST_runMicro() 的返回值来实现。

可通过 NMI 的陷阱管理代码。这是一种管理 HWBIST 故障的更快方法,尤其是在双 CPU 器件的情况下,因为 NMI 同时发送到两个 CPU。要利用 NMI 陷阱,系统代码必须执行以下操作:

  1. 清除 NMI 标志寄存器的任何 NMI 陷阱残留:
    SysCtl_clearNMIStatus(STL_HWBIST_NMI_CPU1_HWBISTERR);
    SysCtl_clearNMIStatus(STL_HWBIST_NMI_CPU2_HWBISTERR);
  2. 将 NMI 矢量映射到处理 HWBIST 的中断服务例程:
    Interrupt_register(INT_NMI, STL_HWBIST_errorNMIISR);
  3. 启用 PIE 控制器:
    Interrupt_enablePIE();

    PIECTRL 寄存器的 ENPIE 位在 HWBIST 软件正在测试的 CPU 上设置,但也必须在另一个 CPU(在双 CPU 器件中)上设置该位以响应故障。

有关 NMIFLG 寄存器及其包含的 HWBIST 标志的更多详细信息,请参阅特定于器件的《技术参考手册》。