Cortex-M3 Processor (Reference Material)
UG0331 User Guide Revision 15.0
116
The UFSR 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.14 HardFault Status Register
The HFSR gives information about events that activate the HardFault handler. See the register summary
in
page 102 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:
Figure 45 •
HFSR Bit Assignments
[8]
UNALIGNED
Unaligned access UsageFault:
0: no unaligned access fault, or unaligned access trapping not enabled
1: the processor has made an unaligned memory access.
Enable trapping of unaligned accesses by setting the UNALIGN_TRP bit in the CCR to
1, see
Configuration and Control Register,
Unaligned LDM, STM, LDRD, and STRD instructions always fault irrespective of the
setting of UNALIGN_TRP.
[7:4]
Reserved.
[3]
NOCP
No coprocessor UsageFault. The processor does not support coprocessor
instructions:
0: no UsageFault caused by attempting to access a coprocessor
1: the processor has attempted to access a coprocessor.
[2]
INVPC
Invalid PC load UsageFault, caused by an invalid PC load by EXC_RETURN:
0: no invalid PC load UsageFault
1: the processor has attempted an illegal load of EXC_RETURN to the PC, as a result
of an invalid context, or an invalid EXC_RETURN value.
When this bit is set to 1, the PC value stacked for the exception return points to the
instruction that tried to perform the illegal load of the PC.
[1]
INVSTATE
Invalid state UsageFault:
0: no invalid state UsageFault
1: the processor has attempted to execute an instruction that makes illegal use of the
EPSR.
When this bit is set to 1, the PC value stacked for the exception return points to the
instruction that attempted the illegal use of the EPSR.
This bit is not set to 1 if an undefined instruction uses the EPSR.
[0]
UNDEFINSTR
Undefined instruction UsageFault:
0: no undefined instruction UsageFault
1: the processor has attempted to execute an undefined instruction.
When this bit is set to 1, the PC value stacked for the exception return points to the
undefined instruction.
An undefined instruction is an instruction that the processor cannot decode.
Table 66 •
UFSR Bit Assignments
(continued)
Bits
Name
Function
31 30
2 1 0
Reserved
29
DEBUGEVT
FORCED
VECTTBL
Reserved