11. Nested vectored interrupt controller (NVIC)
11.1 Main features
- • Up to 39 maskable interrupt channels (see Table 49 ). These do not include the 16 interrupt lines of Cortex ® -M0+.
- • 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 STM32L0 Series Cortex ® -M0+ programming manual (PM0223).
For code example, refer to A.7.1: NVIC initialization example .
11.2 SysTick calibration value register
The SysTick calibration value is fixed to 4000, which gives a reference time base of 1 ms with the SysTick clock set to 4 MHz (max HCLK/8).
11.3 Interrupt and exception vectors
Table 49 is the vector table for STM32L010xx devices.
Table 49. List of vectors (1)(2)
| 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 RCC Clock Security System (CSS) is linked to the NMI vector. | 0x0000_0008 | |
| -1 | fixed | HardFault_Handler | All class of fault | 0x0000_000C | |
| - | - | - | Reserved | 0x0000_0010 - 0x0000_002B | |
| 3 | settable | SVC_Handler | System service call via SWI instruction | 0x0000_002C | |
| - | - | - | Reserved | 0x0000_0030 - 0x0000_0037 | |
| 5 | settable | PendSV_Handler | Pendable request for system service | 0x0000_0038 | |
| 6 | settable | SysTick_Handler | System tick timer | 0x0000_003C |
| Position | Priority | Type of priority | Acronym | Description | Address |
|---|---|---|---|---|---|
| 0 | 7 | settable | WWDG | Window Watchdog interrupt | 0x0000_0040 |
| 1 | 8 | settable | - | Reserved | 0x0000_0044 |
| 2 | 9 | settable | RTC | RTC global interrupt through EXTI17/19/20 line and LSE CSS interrupt through EXTI 19 line | 0x0000_0048 |
| 3 | 10 | settable | FLASH | Flash memory and data EEPROM global interrupt | 0x0000_004C |
| 4 | 11 | settable | RCC_CRS | RCC global interrupt | 0x0000_0050 |
| 5 | 12 | settable | EXTI[1:0] | EXTI Line0 and 1 interrupts | 0x0000_0054 |
| 6 | 13 | settable | EXTI[3:2] | EXTI Line2 and 3 interrupts | 0x0000_0058 |
| 7 | 14 | settable | EXTI[15:4] | EXTI Line4 to 15 interrupts | 0x0000_005C |
| 8 | 15 | settable | - | Reserved | 0x0000_0060 |
| 9 | 16 | settable | DMA1_Channel1 | DMA1 Channel1 global interrupt | 0x0000_0064 |
| 10 | 17 | settable | DMA1_Channel[3:2] | DMA1 Channel2 and 3 interrupts | 0x0000_0068 |
| 11 | 18 | settable | DMA1_Channel[7:4] | DMA1 Channel4 to 7 interrupts | 0x0000_006C |
| 12 | 19 | settable | ADC | ADC interrupt through EXTI21 | 0x0000_0070 |
| 13 | 20 | settable | LPTIM1 | LPTIMER1 interrupt through EXTI29 | 0x0000_0074 |
| 14 | 21 | settable | - | Reserved | 0x0000_0078 |
| 15 | 22 | settable | TIM2 | TIMER2 global interrupt | 0x0000_007C |
| 16 | 23 | settable | - | Reserved | 0x0000_0080 |
| 17 | 24 | settable | - | Reserved | 0x0000_0084 |
| 18 | 25 | settable | - | Reserved | 0x0000_0088 |
| 19 | 26 | settable | - | reserved | 0x0000_008C |
| 20 | 27 | settable | TIM21 | TIMER21 global interrupt | 0x0000_0090 |
| 21 | 28 | settable | - | Reserved | 0x0000_0094 |
| 22 | 29 | settable | TIM22 | TIMER22 global interrupt | 0x0000_0098 |
| 23 | 30 | settable | I2C1 | I2C1 global interrupt through EXTI23 | 0x0000_009C |
| 24 | 31 | settable | - | Reserved | 0x0000_00A0 |
| 25 | 32 | settable | SPI1 | SPI1 global interrupt | 0x0000_00A4 |
| 26 | 33 | settable | - | Reserved | 0x0000_00A8 |
| 27 | 34 | settable | - | Reserved | 0x0000_00AC |
| 28 | 35 | settable | USART2 | USART2 global interrupt through EXTI26 | 0x0000_00B0 |
| 29 | 36 | settable | LPUART1 | LPUART1 global interrupt through EXTI28 | 0x0000_00B4 |
1. The grayed cells correspond to the Cortex ® -M0+ interrupts.
- 2. Refer to Table 1: STM32L010 memory density , to Table 2: Overview of features per category and to the device datasheets for the GPIO ports and peripherals available on your device. The memory area corresponding to unavailable GPIO ports or peripherals are reserved.