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
要执行待测 CPU 的 HWBIST 的完整运行,请调用以下函数:
STL_HWBIST_runFull();
errorType 参数为枚举类型 STL_HWBIST_Error,它指定在执行 HWBIST 测试的完整运行之前要注入的错误类型。如果在多核器件上,此函数要求 CPU 先尝试运行完整的 HWBIST 以声明 HWBIST 信标,然后再调用该函数。此函数初始化 HWBIST 引擎,然后注入 errorType。它还将 STL_HWBIST_errorNMIISR() 函数注册为 NMI 处理程序。然后,该函数执行完整的 HWBIST 运行,从而实现器件支持的最大覆盖率。如果 HWBIST 中存在故障,则设置全局错误标志,而返回值指定故障。此外,如果在预期的微运行中没有实现覆盖率,则测试会因超限而失败。在返回之前,该函数恢复之前的 NMI 矢量。
如果 HWBIST 完整运行测试合格,在预期的微运行次数内没有出现错误,则此函数返回 HWBIST 的状态,该值将为值 STL_HWBIST_BIST_DONE 和 STL_HWBIST_MACRO_DONE 的按位或结果。如果测试失败,则 HWBIST 的状态和函数的返回值是以下各值的某种组合的按位或结果:STL_HWBIST_NMI、STL_HWBIST_BIST_FAIL、STL_HWBIST_INT_COMP_FAIL、STL_HWBIST_TO_FAIL 和 STL_HWBIST_OVERRUN_FAIL。
有关这些类型的错误的更多信息,请参阅《SDL 用户指南》。
图 2-3 展示了一个流程图,该图详细介绍了器件上支持 99% 覆盖率的 STL_HWBIST_runFull() 函数的设计。
要使用 STL_HWBIST_runFull() 函数执行覆盖率为 99% 的完整 HWBIST,请执行以下函数序列:
STL_HWBIST_claimSemaphore();
STL_HWBIST_runFull();
STL_HWBIST_releaseSemaphore();
该序列在单个时间片中执行完整的 HWBIST。图 2-4 展示了单个时间片中的完整 HWBIST 运行。