6.1.4. Exception priorities

When several exceptions occur simultaneously, they are serviced in a fixed order of priority. Each exception is handled in turn before execution of the user program continues. It is not possible for all exceptions to occur concurrently. For example, the Undefined Instruction and SVC exceptions are mutually exclusive because they are both triggered by executing an instruction.

Table 6.2 shows the exceptions, their corresponding processor modes and their handling priorities.

Table 6.2. Exception priorities

Vector addressException typeException modePriority (1=high, 6=low)
0x0ResetSupervisor (SVC)1
0x4Undefined InstructionUndef6
0x8Supervisor Call (SVC)Supervisor (SVC)6
0xCPrefetch AbortAbort5
0x10Data AbortAbort2
0x14ReservedNot applicableNot applicable
0x18Interrupt (IRQ)Interrupt (IRQ)4
0x1CFast Interrupt (FIQ)Fast Interrupt (FIQ)3

Because the Data Abort exception has a higher priority than the FIQ exception, the Data Abort is actually registered before the FIQ is handled. The Data Abort handler is entered, but control is then passed immediately to the FIQ handler. When the FIQ has been handled, control returns to the Data Abort handler. This means that the data transfer error does not escape detection as it would if the FIQ were handled first.

Copyright © 2002-2006 ARM Limited. All rights reserved.ARM DUI 0203G
Non-Confidential