hardFaultHandler

Overview

The hardFaultHandler module provides a Cortex-M4 hard fault handler that saves a register dump to a no-init RAM region. The dump survives a software reset, allowing post-mortem analysis of the fault cause after reboot.

The following data is saved to the dump:

  • CPU registers of the faulting context (R0-R12, SP, LR, PC, xPSR)

  • LR and PSR at the entry of the exception handler

  • stack contents (as much as possible)

  • checksum of the dump

The handler is written in assembly to guarantee correct stack frame extraction from either MSP or PSP, depending on which stack was active at the time of the fault.

Integration

The board integration must branch the HardFault vector to customHardFaultHandler and provide HardFault_Handler_Final. The dump region must be reserved by the board linker script.