5.13. Activation levels

When no exceptions are active, the processor is in Thread mode. When an ISR or fault handler is active, the processor enters Handler mode. Table 5.13 lists the privilege and stacks of the activation levels.

Table 5.13. Privilege and stack of different activation levels

Active exceptionActivation levelPrivilegeStack
NoneThread modePrivileged or userMain or process
ISR activeAsynchronous pre-emption levelPrivilegedMain
Fault handler activeSynchronous pre-emption levelPrivilegedMain
ResetThread modePrivilegedMain

Table 5.14 summarizes the transition rules for all exception types and how they relate to the access rules and stack model.

Table 5.14. Exception transitions

Active ExceptionTriggering eventTransition typePrivilege Stack
ResetReset signal ThreadPrivileged or userMain or process
ISR[1] or NMI[2]Set-pending software instruction or hardware signalAsynchronous pre-emptionPrivilegedMain
Fault: Synchronous pre-emptionPrivilegedMain
 

Hard fault

Bus fault

No CP[3] fault

Undefined instruction fault

Escalation

Memory access error

Absent CP access

Undefined instruction

Debug monitorDebug event when halting not enabledSynchronousPrivilegedMain
SVC[4] SVC instruction   
External interrupt     

[1] Interrupt service routine.

[2] Nonmaskable interrupt.

[3] Coprocessor.

[4] Software interrupt.

Table 5.15 shows exception subtype transitions.

Table 5.15. Exception subtype transitions

Intended activation subtypeTriggering eventActivationPriority effect
ThreadReset signalAsynchronous Immediate, thread is lowest
ISR/NMIHW signal or set-pendAsynchronous Pre-empt or tail-chain according to priority
MonitorDebug event[1]SynchronousIf priority less than or equal to current, hard fault
SVCallSVC instructionSynchronousIf priority less than or equal to current, hard fault
PendSVSoftware pend requestChainPre-empt or tail-chain according to priority
UsageFaultUndefined instructionSynchronousIf priority greater than or equal to current, hard fault
NoCpFaultAccess to absent CPSynchronousIf priority greater than or equal to current, hard fault
BusFaultMemory access errorSynchronousIf priority greater than or equal to current, hard fault
MemManageMPU mismatchSynchronousIf priority greater than or equal to current, hard fault
HardFaultEscalationSynchronousHigher than all except NMI
FaultEscalate Escalate request from Configurable fault handlerChainBoosts priority of local handler to same as hard fault so it can return and chain to Configurable Fault handler

[1] While halting not enabled.

Copyright © 2005, 2006 ARM Limited. All rights reserved.ARM DDI 0337E
Non-Confidential