Cortex-M4 Peripherals
ARM DUI 0553A
Copyright © 2010 ARM. All rights reserved.
4-28
ID121610
Non-Confidential
UsageFault Status Register
The UFSR indicates the cause of a UsageFault. The bit assignments are:
NOCP
INVPC
INVSTATE
UNDEFINSTR
DIVBYZERO
UNALIGNED
15
10 9 8 7
4 3 2 1 0
Reserved
Reserved
Table 4-27 UFSR bit assignments
Bits
Name
Function
[15:10]
-
Reserved.
[9]
DIVBYZERO
Divide by zero UsageFault:
0 = no divide by zero fault, or divide by zero trapping not enabled
1 = the processor has executed an
SDIV
or
UDIV
instruction with a divisor of 0.
When the processor sets this bit to 1, the PC value stacked for the exception return points to the instruction
that performed the divide by zero.
Enable trapping of divide by zero by setting the DIV_0_TRP bit in the CCR to 1, see
[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.