The Cortex-M4 Processor
ARM DUI 0553A
Copyright © 2010 ARM. All rights reserved.
2-29
ID121610
Non-Confidential
2.4
Fault handling
Faults are a subset of the exceptions, see
. Faults are generated by:
•
a bus error on:
—
an instruction fetch or vector table load
—
a data access.
•
an internally-detected error such as an undefined instruction
•
attempting to execute an instruction from a memory region marked as
Execute-never
(XN).
•
If your device contains an MPU, a privilege violation or an attempt to access an
unmanaged region causing an MPU fault.
2.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
for more information about the fault status registers.
Table 2-18 Faults
Fault
Handler
Bit name
Fault status register
Bus error on a vector read
HardFault
VECTTBL
Fault escalated to a hard fault
FORCED
MPU or default memory map mismatch:
MemManage
-
-
on instruction access
IACCVIOL
a
MemManage Fault Address
Register
on data access
DACCVIOL
during exception stacking
MSTKERR
during exception unstacking
MUNSKERR
during lazy floating-point state preservation
MLSPERR
Bus error:
BusFault
-
-
during exception stacking
STKERR
during exception unstacking
UNSTKERR
during instruction prefetch
IBUSERR
during lazy floating-point state preservation
LSPERR
Precise data bus error
PRECISERR
Imprecise data bus error
IMPRECISERR