Cortex-M3 Processor (Reference Material)
UG0331 User Guide Revision 15.0
117
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.
3.7.2.15 MemManage Fault Address Register
The MMFAR contains the address of the location that generated a MemManage fault. See the register
summary in
page 102 for its attributes. The bit assignments are:
When an unaligned access faults, the address is the actual address that faulted. Because a single read
or write instruction can be split into multiple aligned accesses, the fault address can be any address in
the range of the requested access size.
Flags in the MMFSR indicate the cause of the fault, and whether the value in the MMFAR is valid. See
MemManage Fault Status Register,
3.7.2.16 BusFault Address Register
The BFAR contains the address of the location that generated a BusFault. See the register summary in
page 102 for its attributes. The bit assignments are:
When an unaligned access faults the address in the BFAR is the one requested by the instruction, even
if it is not the address of the fault.
Table 67 •
HFSR Bit Assignments
Bits
Name
Function
[31]
DEBUGEVT Reserved for Debug use. When writing to the register you must write 0 to this bit,
otherwise behavior is Unpredictable.
[30]
FORCED
Indicates a forced HardFault, generated by escalation of a fault with configurable priority
that cannot be handles, either because of priority or because it is disabled:
0: no forced HardFault
1: 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.
[29:2]
Reserved.
[1]
VECTTBL
Indicates a BusFault on a vector table read during exception processing:
0: no BusFault on vector table read
1: BusFault on vector table read.
This error is always handled by the HardFault 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.
[0]
Reserved.
Table 68 •
MMFAR Bit Assignments
Bits
Name
Function
[31:0]
ADDRESS When the MMARVALID bit of the MMFSR is set to 1, this field holds the
address of the location that generated the MemManage fault
Table 69 •
BFAR Bit Assignments
Bits
Name
Function
[31:0]
ADDRESS
When the BFARVALID bit of the BFSR is set to 1, this field holds the
address of the location that generated the BusFault