Types of exception in ARMv6 and earlier, ARMv7-A and ARMv7-R profiles
Exceptions are handled in turn before returning to the original application. When exceptions occur simultaneously, they are handled in a fixed order of priority, depending on their type.
The following table shows the different types of exception recognized by ARMv6 and earlier, the ARMv7-A and ARMv7-R profiles. 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:
interrupt requests (IRQs) are disabled for all exceptions
fast interrupt requests (FIQs) are disabled for FIQ and Reset exceptions.
Table 5-1 Exception types in priority order for ARMv6 and earlier, ARMv7-A and ARMv7-R profiles
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.