12. Nested vectored interrupt controller (NVIC)
12.1 Main features
- • 32 maskable interrupt channels (not including the sixteen Cortex®-M0+ system exceptions)
- • 4 programmable priority levels (2 bits of interrupt priority are used)
- • Low-latency exception and interrupt handling
- • Power management control
- • Implementation of system control registers
The NVIC and the processor core interface are closely coupled, which enables low-latency interrupt processing and efficient processing of late arriving interrupts.
All interrupts including the core exceptions are managed by the NVIC. For more information on exceptions and NVIC programming, refer to the programming manual PM0223.
12.2 SysTick calibration value register
The SysTick calibration value is set to 1000, which gives a reference time base of 1 ms with the SysTick clock set to 1 MHz.
12.3 Interrupt and exception vectors
Table 61 is the vector table. Information pertaining to a peripheral only applies to devices containing that peripheral.
Table 61. Vector table (1)
| Position | Priority | Type of priority | Acronym | Description | Address |
|---|---|---|---|---|---|
| - | - | - | - | Reserved | 0x0000_0000 |
| - | -3 | fixed | Reset | Reset | 0x0000_0004 |
| - | -2 | fixed | NMI_Handler | Non maskable interrupt. The SRAM parity err., flash memory ECC double err., HSE CSS and LSE CSS are linked to the NMI vector. | 0x0000_0008 |
| - | -1 | fixed | HardFault_Handler | All class of fault | 0x0000_000C |
| - | - | - | - | Reserved | 0x0000_0010 0x0000_0014 0x0000_0018 0x0000_001C 0x0000_0020 0x0000_0024 0x0000_0028 |
| - | 3 | settable | SVC_Handler | System service call via SVC instruction | 0x0000_002C |
| Position | Priority | Type of priority | Acronym | Description | Address |
|---|---|---|---|---|---|
| - | - | - | - | Reserved | 0x0000_0030 0x0000_0034 |
| - | 5 | settable | PendSV_Handler | Pendable request for system service | 0x0000_0038 |
| - | 6 | settable | SysTick_Handler | System tick timer | 0x0000_003C |
| 0 | 7 | settable | WWDG | Window watchdog interrupt | 0x0000_0040 |
| 1 | 8 | settable | PVD / PVM | Power voltage detector interrupt (EXTI line 16) and VDDIO2 power voltage monitor interrupt (EXTI line 34) | 0x0000_0044 |
| 2 | 9 | settable | RTC / TAMP | RTC and TAMP interrupts (combined EXTI lines 19 and 21) | 0x0000_0048 |
| 3 | 10 | settable | FLASH | Flash memory global interrupt | 0x0000_004C |
| 4 | 11 | settable | RCC / CRS | RCC and CRS global interrupt | 0x0000_0050 |
| 5 | 12 | settable | EXTI0_1 | EXTI line 0 and 1 interrupt | 0x0000_0054 |
| 6 | 13 | settable | EXTI2_3 | EXTI line 2 and 3 interrupt | 0x0000_0058 |
| 7 | 14 | settable | EXTI4_15 | EXTI line 4 to 15 interrupt | 0x0000_005C |
| 8 | 15 | settable | UCPD1 / UCPD2 / USB | UCPD and USB global interrupt (combined with EXTI lines 32, 33, and 36) | 0x0000_0060 |
| 9 | 16 | settable | DMA1_Channel1 | DMA1 channel 1 interrupt | 0x0000_0064 |
| 10 | 17 | settable | DMA1_Channel2_3 | DMA1 channel 2 and 3 interrupts | 0x0000_0068 |
| 11 | 18 | settable | DMA1_Channel4_5_6_7 / DMAMUX / DMA2_Channel1_2_3_4_5 | DMA1 channel 4, 5, 6, 7, DMAMUX, DMA2 channel 1, 2, 3, 4, 5 interrupts | 0x0000_006C |
| 12 | 19 | settable | ADC / COMP | ADC and COMP interrupts (ADC combined with EXTI 17 and 18) | 0x0000_0070 |
| 13 | 20 | settable | TIM1_BRK_UP_TRG_COM | TIM1 break, update, trigger and commutation interrupts | 0x0000_0074 |
| 14 | 21 | settable | TIM1_CC | TIM1 Capture Compare interrupt | 0x0000_0078 |
| 15 | 22 | settable | TIM2 | TIM2 global interrupt | 0x0000_007C |
| 16 | 23 | settable | TIM3 / TIM4 | TIM3 global interrupt | 0x0000_0080 |
| 17 | 24 | settable | TIM6 / DAC / LPTIM1 | TIM6, LPTIM1 and DAC global interrupt | 0x0000_0084 |
| 18 | 25 | settable | TIM7 / LPTIM2 | TIM7 and LPTIM2 global interrupt | 0x0000_0088 |
| 19 | 26 | settable | TIM14 | TIM14 global interrupt | 0x0000_008C |
| 20 | 27 | settable | TIM15 | TIM15 global interrupt | 0x0000_0090 |
| 21 | 28 | settable | TIM16 / FDCAN_IT0 | TIM16 and FDCAN_IT0 global interrupt | 0x0000_0094 |
| Position | Priority | Type of priority | Acronym | Description | Address |
|---|---|---|---|---|---|
| 22 | 29 | settable | TIM17 / FDCAN_IT1 | TIM17 and FDCAN_IT1 global interrupt | 0x0000_0098 |
| 23 | 30 | settable | I2C1 | I2C1 global interrupt (combined with EXTI 23) | 0x0000_009C |
| 24 | 31 | settable | I2C2 / I2C3 | I2C2 and I2C3 global interrupt | 0x0000_00A0 |
| 25 | 32 | settable | SPI1 | SPI1 global interrupt | 0x0000_00A4 |
| 26 | 33 | settable | SPI2 / SPI3 | SPI2 global interrupt | 0x0000_00A8 |
| 27 | 34 | settable | USART1 | USART1 global interrupt (combined with EXTI 25) | 0x0000_00AC |
| 28 | 35 | settable | USART2 / LPUART2 | USART2 and LPUART2 global interrupt (combined with EXTI 26) | 0x0000_00B0 |
| 29 | 36 | settable | USART3 / USART4 / USART5 / USART6 / LPUART1 | USART3/4/5/6 and LPUART1 global interrupt (combined with EXTI 28) | 0x0000_00B4 |
| 30 | 37 | settable | CEC | CEC global interrupt (combined with EXTI 27) | 0x0000_00B8 |
| 31 | 38 | settable | AES / RNG | AES and RNG global interrupts | 0x0000_00BC |
1. The grayed cells correspond to the Cortex ® -M0+ system exceptions.