Types of exception in ARMv6 and earlier, ARMv7-A and ARMv7-R profiles

The following table 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 13. 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 the FIQ remains enabled when handling a Data Abort. When the FIQ has been handled, control returns to the Data Abort Handler. This means that data transfer errors do not escape detection as they would if the FIQ was handled first.

Show/hideSee also

Copyright © 2010-2012 ARM. All rights reserved.ARM DUI 0471G
Non-ConfidentialID021412