
DR
AFT
DR
AFT
DRAFT
DR
D
RAFT
DRAFT
DRA
FT DRAF
D
RAFT DRAFT DRAFT DRAFT DRAFT D
DRAFT
D
RAFT DRA
FT DRAFT DRAFT DRAFT DRA
UM10360_0
© NXP B.V. 2009. All rights reserved.
User manual
Rev. 00.06 — 5 June 2009
723 of 808
NXP Semiconductors
UM10360
Chapter 34: Appendix: Cortex-M3 User Guide
3.4 Fault handling
Faults are a subset of the exceptions, see
. The following generate a fault:
•
a bus error on:
–
an instruction fetch or vector table load
–
a data access
•
an internally-detected error such as an undefined instruction or an attempt to change
state with a
BX
instruction
•
attempting to execute an instruction from a memory region marked as
Non-Executable
(XN)
•
an MPU fault because of a privilege violation or an attempt to access an unmanaged
region
3.4.1 Fault types
shows the types of fault, the handler used for the fault, the corresponding
fault status register, and the register bit that indicates that the fault has occurred. See
Section 37–1.3.11 “Configurable Fault Status Register”
for more information about the
fault status registers.
[1]
Occurs on an access to an XN region even if the MPU is disabled.
[2]
Attempting to use an instruction set other than the Thumb instruction set.
Table 613. Faults
Fault
Handler
Bit name
Fault status register
Bus error on a vector read
Hard fault
VECTTBL
Section 37–1.3.12 “Hard Fault
Status Register”
Fault escalated to a hard fault
FORCED
MPU mismatch:
Memory
management
fault
-
-
on instruction access
IACCVIOL
Section 37–1.3.13 “Memory
Management Fault Address
Register”
on data access
DACCVIOL
during exception stacking
MSTKERR
during exception unstacking
MUNSKERR
Bus error:
Bus fault
-
-
during exception stacking
STKERR
Section 37–1.3.14 “Bus Fault
Address Register”
during exception unstacking
UNSTKERR
during instruction prefetch
IBUSERR
Precise data bus error
PRECISERR
Imprecise data bus error
IMPRECISERR
Attempt to access a coprocessor
Usage fault
NOCP
Section 37–1.3.11.3 “Usage Fault
Status Register”
Undefined instruction
UNDEFINSTR
Attempt to enter an invalid instruction set state
INVSTATE
Invalid EXC_RETURN value
INVPC
Illegal unaligned load or store
UNALIGNED
Divide By 0
DIVBYZERO