6.2.1. Types of exception

Table 6.1 shows the different types of exception recognized by ARMv6 and earlier, the ARMv7-A and ARMv7-R profiles. When exceptions occur simultaneously, they are handled in a fixed order of priority. Each exception is handled in turn before returning to the original application. It is not possible for all exceptions to occur concurrently. For example, the Undefined instruction (Undef) and supervisor call (SVC) exceptions are mutually exclusive because they are both triggered by executing an instruction.

On entry to an exception:

Table 6.1. Exception types in priority order

Priority (1=high, 6=low)Exception typeException modeDescription
1ResetSupervisorOccurs when the processor reset pin is asserted. This exception is only expected to occur for signaling power-up, or for resetting if the processor is already powered up. A soft reset can be done by branching to the reset vector.
2Data AbortAbortOccurs when a data transfer instruction attempts to load or store data at an illegal address[a].
3FIQFIQOccurs when the processor external fast interrupt request pin is asserted (LOW) and the F bit in the CPSR is clear.
4IRQIRQOccurs when the processor external interrupt request pin is asserted (LOW) and the I bit in the CPSR is clear.
5Prefetch AbortAbortOccurs when the processor attempts to execute an instruction that was not fetched, because the address was illegal[a].
6SVCSupervisorThis is a user-defined synchronous interrupt instruction. It enables a program running in User mode, for example, to request privileged operations that run in Supervisor mode, such as an RTOS function.
6Undefined InstructionUndefOccurs if neither the processor, nor any attached coprocessor, recognizes the currently executing instruction.

[a] An illegal virtual address is one that does not currently correspond to an address in physical memory, or one that the memory management subsystem has determined is inaccessible to the processor in its current mode.


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 because FIQ remain enabled when handling a Data Abort. 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-2010 ARM. All rights reserved.ARM DUI 0203J
Non-ConfidentialID101213