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

 

  1.   C2000™ Hardware Built-In Self-Test
  2.   Trademarks
  3. 1Introduction
    1. 1.1 HWBIST Overview
      1. 1.1.1 HWBIST Working In-System
    2. 1.2 HWBIST Failure Response
    3. 1.3 Advantages of Using HWBIST In-System
  4. 2Using HWBIST In-System
    1. 2.1 Fundamental HWBIST Operation
      1. 2.1.1 Initializing the HWBIST Controller
      2. 2.1.2 Executing HWBIST
        1. 2.1.2.1 Executing HWBIST Micro-Run
        2. 2.1.2.2 Executing HWBIST Full-Run
      3. 2.1.3 Error Management
    2. 2.2 Managing HWBIST on Dual-Core Device
      1. 2.2.1 Semaphore Management
      2. 2.2.2 Interprocessor Communications
    3. 2.3 System Considerations When Using HWBIST
      1. 2.3.1 Interrupt Latency
      2. 2.3.2 Power Considerations
      3. 2.3.3 HWBIST Memory Requirements
      4. 2.3.4 Injecting Errors
    4. 2.4 Debugging HWBIST In-System
  5. 3References
  6. 4Revision History

Semaphore Management

Semaphore management is handled using the following function calls:

bool STL_HWBIST_claimSemaphore(const STL_HWBIST_Core core); 
void STL_HWBIST_releaseSemaphore(void);  
  • After system reset, the HWBIST semaphore = 0.
    • CPU1 can access the HWBIST resources and change the semaphore.
    • CPU2 can change the semaphore.
  • When CPU1 decides to execute HWBIST, it sets the semaphore = 2.
    • Grants CPU1 access of the HWBIST resources
    • Blocks CPU2 access of the HWBIST resources and blocks a change of the semaphore
  • When CPU1 completes the HWBIST test, it sets the semaphore = 3, which grants access to the semaphore by either CPU.
  • When CPU2 decides to execute HWBIST, it sets the semaphore = 1.
    • Grants CPU2 access of the HWBIST resources.
    • Blocks CPU1 access to the HWBIST resources and blocks a change of the semaphore.
  • When CPU2 completes the HWBIST test, it sets the semaphore = 3, which grants access to the semaphore by either CPU.