Various types of exceptions exist in the processor. A fault is an exception that results from an error condition. Faults can be reported synchronously or asynchronously with respect to the instruction that caused them. In general, faults are reported synchronously. Faults caused by writes over the external AHB bus are asynchronous faults. A synchronous fault is always reported with the instruction that caused the fault. An asynchronous fault does not guarantee how it is reported with respect to the instruction that caused the fault.
For more information on exceptions, see the ARMv6-M Architecture Reference Manual.
Table 4.1 shows
the exception type, position, and priority. Position refers to the
word offset of the exception vectors from the start of the vector
table, which is always at address
0x0. The lower
numbers shown in the Priority column of the table are higher priority.
How the types are activated, synchronously or asynchronously, is
also shown. The exact meaning and use of priorities is explained
in Exception priority.
|-||-||-||Stack top is loaded from first entry of vector table on reset.||-|
|1||Reset||–3 (highest)||Invoked on power up and warm reset. On first instruction, drops to lowest priority, Thread mode.||Asynchronous|
This exception type cannot be:
|3||Hard Fault||–1||All classes of Fault.||Synchronous or asynchronous|
|11||SVC||Configurable||System service call using the ||Synchronous|
|14||PendSV||Configurable||Pendable request for system service. This is only pended by software.||Asynchronous|
|15||SysTick||Configurable||System tick timer has fired.||Asynchronous|
|16-47||External Interrupt||Configurable||Asserted from outside the processor or pended by software.||Asynchronous|