SLAU723A October 2017 – October 2018 MSP432E401Y , MSP432E411Y
The exception types are:
Reset is invoked on power up or a warm reset. The exception model treats reset as a special form of exception. When reset is asserted, the operation of the processor stops, potentially at any point in an instruction. When reset is deasserted, execution restarts from the address provided by the reset entry in the vector table. Execution restarts as privileged execution in thread mode.
A non-maskable Interrupt (NMI) can be signaled using the NMI signal or triggered by software using the Interrupt Control and State (INTCTRL) register. This exception has the highest priority other than reset. NMI is permanently enabled and has a fixed priority of –2. NMIs cannot be masked or prevented from activation by any other exception or preempted by any exception other than reset.
A hard fault is an exception that occurs because of an error during exception processing, or because an exception cannot be managed by any other exception mechanism. Hard faults have a fixed priority of –1, meaning they have higher priority than any exception with configurable priority.
A memory management fault is an exception that occurs because of a memory protection related fault, including access violation and no match. The MPU or the fixed memory protection constraints determine this fault, for both instruction and data memory transactions. This fault is used to abort instruction accesses to Execute Never (XN) memory regions, even if the MPU is disabled.
A bus fault is an exception that occurs because of a memory-related fault for an instruction or data memory transaction such as a prefetch fault or a memory access fault. This fault can be enabled or disabled.
A usage fault is an exception that occurs because of a fault related to instruction execution, such as:
A supervisor call (SVC) is an exception that is triggered by the SVC instruction. In an OS environment, applications can use SVC instructions to access OS kernel functions and device drivers.
This exception is caused by the debug monitor (when not halting). This exception is active only when enabled. This exception does not activate if it is a lower priority than the current activation.
PendSV is a pendable, interrupt-driven request for system-level service. In an OS environment, use PendSV for context switching when no other exception is active. PendSV is triggered using the Interrupt Control and State (INTCTRL) register.
A SysTick exception is an exception that the system timer generates when it reaches zero when it is enabled to generate an interrupt. Software can also generate a SysTick exception using the Interrupt Control and State (INTCTRL) register. In an OS environment, the processor can use this exception as system tick.
An interrupt, or IRQ, is an exception signaled by a peripheral or generated by a software request and fed through the NVIC (prioritized). All interrupts are asynchronous to instruction execution. In the system, peripherals use interrupts to communicate with the processor.
For a list of the device-specific interrupts, see the data sheet.
For an asynchronous exception, other than reset, the processor can execute another instruction between when the exception is triggered and when the processor enters the exception handler.
Privileged software can disable the exceptions that Table 1-19 shows as having configurable priority (see the SYSHNDCTRL register in Section 2.5.11 and the DIS0 register in Section 2.4.2).
For more information about hard faults, memory management faults, bus faults, and usage faults, see Section 1.7.
Exception Type | Vector Number | Priority(1) | Vector Address or Offset(2) | Activation |
---|---|---|---|---|
– | 0 | – | 0x0000.0000 | Stack top is loaded from the first entry of the vector table on reset. |
Reset | 1 | –3 (highest) | 0x0000.0004 | Asynchronous |
Nonmaskable Interrupt (NMI) | 2 | –2 | 0x0000.0008 | Asynchronous |
Hard Fault | 3 | –1 | 0x0000.000C | |
Memory Management | 4 | Programmable(3) | 0x0000.0010 | Synchronous |
Bus Fault | 5 | Programmable (3) | 0x0000.0014 | Synchronous when precise and asynchronous when imprecise |
Usage Fault | 6 | Programmable (3) | 0x0000.0018 | Synchronous |
– | 7-10 | – | – | Reserved |
SVCall | 11 | Programmable (3) | 0x0000.002C | Synchronous |
Debug Monitor | 12 | Programmable (3) | 0x0000.0030 | Synchronous |
– | 13 | – | – | Reserved |
PendSV | 14 | Programmable (3) | 0x0000.0038 | Asynchronous |
SysTick | 15 | Programmable (3) | 0x0000.003C | Asynchronous |
Interrupts | 16 and above | Programmable(4) | 0x0000.0040 and above | Asynchronous |