Datasheet
71
11011B–ATARM–21-Feb-12
SAM3N
• 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).
10.7.1 Fault types
Table 10-11 shows the types of fault, the handler used for the fault, the corresponding fault sta-
tus register, and the register bit that indicates that the fault has occurred. See “Configurable
Fault Status Register” on page 181 for more information about the fault status registers.
10.7.2 Fault escalation and hard faults
All faults exceptions except for hard fault have configurable exception priority, see “System Han-
dler Priority Registers” on page 176. Software can disable execution of the handlers for these
faults, see “System Handler Control and State Register” on page 179.
Usually, the exception priority, together with the values of the exception mask registers, deter-
mines whether the processor enters the fault handler, and whether a fault handler can preempt
another fault handler. as described in “Exception model” on page 63.
In some situations, a fault with configurable priority is treated as a hard fault. This is called prior-
ity escalation, and the fault is described as escalated to hard fault. Escalation to hard fault
occurs when:
• A fault handler causes the same kind of fault as the one it is servicing. This escalation to hard
fault occurs because a fault handler cannot preempt itself because it must have the same
priority as the current priority level.
Table 10-11. Faults
Fault Handler Bit name Fault status register
Bus error on a vector read
Hard fault
VECTTBL
“Hard Fault Status
Register” on page 187
Fault escalated to a hard fault FORCED
Bus error:
Bus fault
--
during exception stacking STKERR
“Bus Fault Status Register”
on page 183
during exception unstacking UNSTKERR
during instruction prefetch IBUSERR
Precise data bus error PRECISERR
Imprecise data bus error
IMPRECISER
R
Attempt to access a coprocessor
Usage
fault
NOCP
“Usage Fault Status
Register” on page 185
Undefined instruction UNDEFINSTR
Attempt to enter an invalid instruction
set state
(1)
1. Attempting to use an instruction set other than the Thumb instruction set.
INVSTATE
Invalid EXC_RETURN value INVPC
Illegal unaligned load or store UNALIGNED
Divide By 0 DIVBYZERO