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 内核已声明信标并已执行一次性初始化后执行 HWBIST 的一次微运行,必须调用以下函数:

STL_HWBIST_runMicro();

此函数执行待测 CPU 的 HWBIST 微运行,并返回微运行的状态。此函数设计用作定期自检 (PEST)。

图 2-1 展示了一个流程图,该图详细介绍了 STL_HWBIST_runMicro() 函数的设计。 《诊断库用户指南》中也提供了此信息。

GUID-FFA145A8-D979-40E4-8EFF-7AD1BCEFE691-low.gif图 2-1 STL_HWBIST_runMicro() 流程图

要使用 STL_HWBIST_runMicro() 函数针对小于或等于 95% 的覆盖率级别执行完整的 HWBIST,必须执行以下函数序列:

  1. 如果在多核器件上,请声明 HWBIST 信标。
    STL_HWBIST_claimSemaphore();
  2. 根据器件上可用的选项,将 HWBIST 初始化为 95% 或更低的覆盖率。
    STL_HWBIST_init(STL_HWBIST_95_LOS);
  3. 执行 HWBIST 微运行。
    STL_HWBIST_runMicro();
  4. 重复步骤 3,直到完成或观察到错误。执行 STL_HWBIST_runMicro(),直到它完成且没有错误,或者直到通过返回值观察到错误、设置全局错误标志或触发 NMI。跟踪调用 STL_HWBIST_runMicro() 的次数。如果对于覆盖率级别达到预期的微运行次数之后,返回值仍然不指示 HWBIST 已完成,则认为这是一个超时错误。微运行次数在代码中定义为 stl_hwbist.h 中的 STL_HWBIST_MICRO_LIMIT_<coverage>。例如,在 F28002x 上,STL_HWBIST_MICRO_LIMIT_90 设置为 750,这意味着要达到 90% 的诊断覆盖率,应用程序需要调用 STL_HWBIST_runMicro() 750 次。
  5. 如果在多核器件上,请释放 HWBIST 信标。
    STL_HWBIST_releaseSemaphore();

要使用 STL_HWBIST_runMicro() 函数执行覆盖率为 99% 的完整 HWBIST(仅在 F2837x、F2807x 和 F2838x 器件上受支持),您通常按照上述步骤以达到 95%,重新初始化 HWBIST 以达到 99% 的覆盖率,然后重复调用 STL_HWBIST_runMicro(),直到它完成或发现错误。这些步骤因器件不同而稍有差异。有关更多详细信息,请参阅器件特定的《SDL 用户指南》。

图 2-2 展示了单个时间分片的微运行的设置和执行流程图。

GUID-EB806A17-732B-4814-9C1D-FEB815F389C0-low.gif图 2-2 时间分片微运行执行的流程图