SPRACA7A 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
The HWBIST includes some error injection features to help validate the system error handling code. These errors can be invoked by running the following function:
void STL_HWBIST_injectError(const STL_HWBIST_Error errorType);
Table 2-1 lists the injected error types, values, and expected behaviors.
STL_HWBIST_ERROR Type | Value | Description and Behavior |
---|---|---|
STL_HWBIST_NO_ERROR | 0x00000000 | Clears the error injection feature for future operation. The HWBIST passes under normal operation, if no faults present. |
STL_HWBIST_TIMEOUT | 0x0000000A | Invokes a time-out error This is related to the timer in the HWBIST controller. If the HWBIST controller times out during a micro-run, then the micro-run has lost control. This generates a time-out failure flag and an NMI to the CPU or to both CPUs in a dual-core device. |
STL_HWBIST_FINAL_COMPARE | 0x000000A0 | Corrupts the MISR compare The HWBIST executes as normal, but compares to a corrupted MISR upon completion. This does not cause a failing condition, but it does allow the CPU to check the MISR for circuit issues. No NMI is generated, and no fail status is generated. |
STL_HWBIST_NMI_TRAP | 0x00000A00 | Forces an NMI to the HWBIST controller to invoke a shut down and
returns control to the CPU. The micro-run is stopped before beginning the HWBIST micro-run execution and an NMI is generated to the CPU under test. Note: Although an NMI
is triggered, no NMI flags are set. |
STL_HWBIST_LOGIC_FAULT | 0x00002000 | Injects a logic error into the circuitry under test to see if it
is caught by the HWBIST This results in the appropriate HWBIST fail status bits being set, and generates an NMI to the CPU or to both CPUs if a dual CPU device. Note: Valid logic error
injection values are from 0x00001000 to 0xFFFFF000. The
Diagnostic Library only supplies one value (0x00002000).
However, you may wish to modify the source code to allow for
writing other or multiple logic error injection values to the
CSTCTEST register. See the source code in stl_hwbist.h of the
Software Diagnostic Library. |
If the code is lost during debugging error management, the most likely cause is that the NMI execution is not appropriately initialized. For more information, see Section 2.1.3.