2.5.4.1 Fault Types
The following table 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. For more information about the fault status registers, see 2.7.2.10 Configurable Fault Status Register.
Fault | Handler | Bit name | Fault status register |
---|---|---|---|
Bus error on a vector read | HardFault | VECTTBL | HardFault Status Register |
Fault escalated to a HardFault | FORCED | ||
MPU or default memory map mismatch: | MemManage | — | |
on instruction access | IACCVIOL1 | MemManage Fault Status Register | |
on data access | DACCVIOL | ||
during exception stacking | MSTKERR | ||
during exception unstacking | MUNSKERR | ||
Bus error: | BusFault | — | |
during exception stacking | — | STKERR | BusFault Status Register |
during exception unstacking | — | UNSTKERR | |
during instruction prefetch | — | IBUSERR | |
Precise data bus error | — | PRECISERR | |
Imprecise data bus error | — | IMPRECISERR | |
Attempt to access a coprocessor | UsageFault | NOCP | UsageFault Status Register |
Undefined instruction | UNDEFINSTR | ||
Attempt to enter an invalid instruction set state2 | INVSTATE | ||
Invalid EXC_RETURN value | UsageFault | INVPC | UsageFault Status Register |
Illegal unaligned load or store | UNALIGNED | ||
Divide By 0 | DIVBYZERO |
Note:
- Occurs on an access to an XN region even if the processor does not include an MPU or the MPU is disabled.
- Attempting to use an instruction set other than the Thumb instruction set or returns to a non load/store-multiple instruction with ICI continuation.