4.3.11. HardFault Status Register

The HFSR gives information about events that activate the HardFault handler. See the register summary in Table 4.12 for its attributes.

This register is read, write to clear. This means that bits in the register read normally, but writing 1 to any bit clears that bit to 0. The bit assignments are:

To view this graphic, your browser must support the SVG format. Either install a browser with native support, or install an appropriate plugin such as Adobe SVG Viewer.

Table 4.29. HFSR bit assignments

[31]DEBUGEVTReserved for Debug use. When writing to the register you must write 1 to this bit, otherwise behavior is unpredictable.

Indicates a forced hard fault, generated by escalation of a fault with configurable priority that cannot be handled, either because of priority or because it is disabled:


No forced HardFault.


Forced HardFault.

When this bit is set to 1, the HardFault handler must read the other fault status registers to find the cause of the fault.


Indicates a BusFault on a vector table read during exception processing:


No BusFault on vector table read.


BusFault on vector table read.

This error is always handled by the hard fault handler.

When this bit is set to 1, the PC value stacked for the exception return points to the instruction that was preempted by the exception.



The HFSR bits are sticky. This means as one or more fault occurs, the associated bits are set to 1. A bit that is set to 1 is cleared to 0 only by writing 1 to that bit, or by a reset.

Copyright © 2015, 2018 Arm. All rights reserved.ARM DUI 0646C