The exception types follow:
- Reset: 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.
- NMI: A nonmaskable 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. NMI in the CC32xx is reserved for the internal system, and is not available for application usage.
- Hard Fault: 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.
- Memory Management Fault: 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.
- Bus Fault: 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.
- Usage Fault: A usage fault is an exception that occurs because of a fault related to instruction execution, such as:
- An undefined instruction
- An illegal unaligned access
- Invalid state on instruction execution
- An error on exception return. An unaligned address on a word or halfword memory access or division by zero can cause a usage fault when the core is properly configured.
- SVCall: 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.
- Debug Monitor: 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: 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 INTCTRL register.
- SysTick: A SysTick exception is an exception that the system timer generates when it reaches zero when enabled to generate an interrupt. Software can also generate a SysTick exception using the INTCTRL register. In an OS environment, the processor can use this exception as system tick.
- Interrupt (IRQ): 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. Table 2-7 lists the interrupts on the CC32xx application processor
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 2-6 lists as having configurable priority (see the SYSHNDCTRL register and the DIS0 register).
For more information about hard faults, memory management faults, bus faults, and usage faults, see Section 2.2.5.
Table 2-6 Exception Types| 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 |
| - | 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 |
(1) 0 is the default priority for all the programmable priorities.
(4) See PRIn registers.
Table 2-7 CC32xx Application Processor Interrupts| Interrupt Number (Bit in Interrupt Registers) | Vector Address or Offset | Description | Type |
|---|
| 0 | 0x0000.0040 | GPIO Port 0 (GPIO 0-7) | |
| 1 | 0x0000.0044 | GPIO Port A1 (GPIO 8-15) | |
| 2 | 0x0000.0048 | GPIO Port A2 (GPIO 16-23) | |
| 3 | 0x0000.004C | GPIO Port A3 (GPIO 24-31) | |
| 4 | 0x0000.0050 | GPIO port A4 (GPIO 32) | |
| 5 | 0x0000.0054 | UART0 | |
| 6 | 0x0000.0058 | UART1 | |
| 8 | 0x0000.0060 | I2C | |
| 14 | 0x0000.0078 | ADC Channel-0 | |
| 15 | 0x0000.007C | ADC Channel-1 | |
| 16 | 0x0000.0080 | ADC Channel-2 | |
| 17 | 0x0000.0084 | ADC Channel-3 | |
| 18 | 0x0000.0088 | WDT | |
| 19 | 0x0000.008C | 16- or 32-Bit Timer A0A | |
| 20 | 0x0000.0090 | 16- or 32-Bit Timer A0B | |
| 21 | 0x0000.0094 | 16- or 32-Bit Timer A1A | |
| 22 | 0x0000.0098 | 16- or 32-Bit Timer A1B | |
| 23 | 0x0000.009C | 16- or 32-Bit Timer A2A | |
| 24 | 0x0000.00A0 | 16- or 32-Bit Timer A2B | |
| 35 | 0x0000.00CC | 16- or 32-Bit Timer A3A | |
| 36 | 0x0000.00D0 | 16- or 32-Bit Timer A3B | |
| 46 | 0x0000.00F8 | uDMA Software Intr | |
| 47 | 0x0000.00FC | uDMA Error Intr | |
| 161 | 0x0000.02C4 | I2S | |
| 163 | 0x0000.02CC | Camera | |
| 168 | 0x0000.02E0 | RAM WR Error | |
| 171 | 0x0000.02EC | Network Intr | |
| 175 | 0x0000.02FC | Shared SPI interrupt (for SFLASH) | |
| 176 | 0x0000.0300 | SPI | |
| 177 | 0x0000.0304 | Link SPI (APPS to NWP) | |