19. Nested vectored interrupt controller (NVIC)

19.1 NVIC features

The NVIC includes the following features:

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 PM0253 programming manual for Cortex®-M7.

19.1.1 SysTick calibration value register

The SysTick calibration value (SYST_CALIB) is fixed to 0x3E8. It provides a reference timebase of 1 ms based when the SysTick clock frequency is 1 MHz. To match the 1 ms timebase whatever the application frequency, the SysTick reload value must be programmed as follows in the SYST_RVR register:

\[ \text{reload value} = (F_{\text{HCLK}} \times \text{SYST\_CALIB}) - 1 \]

\[ \text{reload value} = ((F_{\text{HCLK}}/8) \times \text{SYST\_CALIB}) - 1 \]

where \( F_{\text{HCLK}} \) refers to the AHB frequency expressed in MHz.

For example, to achieve a timebase of 1 ms when the SysTick clock source is the 100 MHz HCLK:

\[ \text{reload value} = (100 \times \text{SYST\_CALIB}) - 1 = 0x1869F \]

19.1.2 Interrupt and exception vectors

The exception vectors connected to the NVIC are the following: reset, NMI, HardFault, MemManage, Bus Fault, UsageFault, SVCall, DebugMonitor, PendSV, SysTick.

Table 140. NVIC (1)

Signal(s)PriorityNVIC positionAcronymDescriptionAddress
----Reserved0x0000 0000
--3-ResetReset0x0000 0004
--2-NMINon maskable interrupt. The HSE clock security system (CSS) is linked to the NMI vector.0x0000 0008
--1-HardFaultAll class of fault0x0000 000C
-0-MemManageMemory management0x0000 0010
-1-BusFaultPrefetch fault, memory access fault0x0000 0014
-2-UsageFaultUndefined instruction or illegal state0x0000 0018
----Reserved0x0000 001C -
0x0000 002B
-3-SVCallSystem service call via SWI instruction0x0000 002C
-4-Debug MonitorDebug Monitor0x0000 0030
----Reserved0x0000 0034
-5-PendSVPendable request for system service0x0000 0038
-6-SysTickSystemTick timer0x0000 003C
wwdg1_it70WWDG1Window watchdog interrupt0x0000 0040
exti_pwr_pvd_wkup81PVD_PVMPVD detection interrupt through the EXTI line0x0000 0044
exti_tamp_rtc_wkup92RTC_TAMP_
STAMP_CSS_
LSE
RTC tamper and timestamp interrupts through the EXTI line0x0000 0048
lsecss_rcc_itLSE clock security system interrupt
exti_wkup_rtc_wkup103RTC_WKUPRTC Wakeup interrupt through the EXTI line0x0000 004C
flash_it114FLASHFlash memory interface0x0000 0050
rcc_it125RCCRCC global interrupt0x0000 0054
exti_exti0_wkup136EXTI0EXTI line 0 interrupt0x0000 0058
exti_exti1_wkup147EXTI1EXTI line 1 interrupt0x0000 005C
exti_exti2_wkup158EXTI2EXTI line 2 interrupt0x0000 0060
exti_exti3_wkup169EXTI3EXTI line 3 interrupt0x0000 0064
exti_exti4_wkup1710EXTI4EXTI line 4 interrupt0x0000 0068
Table 140. NVIC (1) (continued)
Signal(s)PriorityNVIC positionAcronymDescriptionAddress
dma1_it01811DMA1_STR0DMA1 stream0 global interrupt0x0000 006C
dma1_it11912DMA1_STR1DMA1 stream1 global interrupt0x0000 0070
dma1_it22013DMA1_STR2DMA1 stream2 global interrupt0x0000 0074
dma1_it32114DMA1_STR3DMA1 stream3 global interrupt0x0000 0078
dma1_it42215DMA1_STR4DMA1 stream4 global interrupt0x0000 007C
dma1_it52316DMA1_STR5DMA1 stream5 global interrupt0x0000 0080
dma1_it62417DMA1_STR6DMA1 stream6 global interrupt0x0000 0084
adc1_it2518ADC1_2ADC1 and ADC2 global interrupt0x0000 0088
adc2_it
ttfdcan_intr0_it2619FDCAN1_IT0FDCAN1 interrupt line 00x0000 008C
fdcan_intr0_it2720FDCAN2_IT0FDCAN2 interrupt line 00x0000 0090
ttfdcan_intr1_it2821FDCAN1_IT1FDCAN1 interrupt line 10x0000 0094
fdcan_intr1_it2922FDCAN2_IT1FDCAN2 interrupt line 10x0000 0098
exti_exti9_wkup3023EXTI9_5EXTI Line[9:5] interrupts0x0000 009C
exti_exti8_wkup
exti_exti7_wkup
exti_exti6_wkup
exti_exti5_wkup
tim1_brk_it3124TIM1_BRKTIM1 break interrupt0x0000 00A0
tim1_upd_it3225TIM1_UPTIM1 update interrupt0x0000 00A4
tim1_trg_it3326TIM1_TRG_COMTIM1 trigger and commutation interrupts0x0000 00A8
tim1_cc_it3427TIM1_CCTIM1 capture/compare interrupt0x0000 00AC
tim2_it3528TIM2TIM2 global interrupt0x0000 00B0
tim3_it3629TIM3TIM3 global interrupt0x0000 00B4
tim4_it3730TIM4TIM4 global interrupt0x0000 00B8
i2c1_ev_it3831I2C1_EVI2C1 event interrupt0x0000 00BC
exti_i2c1_ev_wkup
i2c1_err_it3932I2C1_ERI2C1 global error interrupt0x0000 00C0
i2c2_ev_it4033I2C2_EVI2C2 global event interrupt0x0000 00C4
exti_i2c2_ev_wkup
i2c2_err_it4134I2C2_ERI2C 2 global error interrupt0x0000 00C8
spi1_it4235SPI1SPI1 global interrupt0x0000 00CC
exti_spi1_it
Table 140. NVIC (1) (continued)
Signal(s)PriorityNVIC positionAcronymDescriptionAddress
spi2_it4336SPI2SPI2 global interrupt0x0000 00D0
exti_spi2_it
usart1_gbl_it4437USART1USART1 global interrupt0x0000 00D4
exti_usart1_wkup
usart2_gbl_it4538USART2USART2 global interrupt0x0000 00D8
exti_usart2_wkup
usart3_gbl_it4639USART3USART3 global interrupt0x0000 00DC
exti_usart3_wkup
exti_exti15_wkup4740EXTI15_10EXTI Line[15:10] interrupts0x0000 00E0
exti_exti14_wkup
exti_exti13_wkup
exti_exti12_wkup
exti_exti11_wkup
exti_exti10_wkup
exti_rtc_al4841RTC_ALARMRTC alarms (A and B) through EXTI lines0x0000 00E4
----Reserved0x0000 00E8
tim8_brk_it5043TIM8_BRK_TIM12TIM8 Break interrupt and TIM12 global interrupt0x0000 00EC
tim12_gbl_it
tim8_upd_it5144TIM8_UP_TIM13TIM8 Update interrupt and TIM13 global interrupt0x0000 00F0
tim13_gbl_it
tim8_trg_it5245TIM8_TRG_COM_TIM14TIMER8 trigger/commutation interrupt and TIM14 global interrupt0x0000 00F4
tim14_gbl_it
tim8_cc_it5346TIM8_CCTIM8 capture/compare interrupt0x0000 00F8
dma1_it75447DMA1_STR7DMA1 stream7 global interrupt0x0000 00FC
fmc_gbl_it5548FMCFMC global interrupt0x0000 0100
sdmmc_it5649SDMMC1SDMMC1 global interrupt0x0000 0104
tim5_gbl_it5750TIM5TIM5 global interrupt0x0000 0108
spi3_it5851SPI3SPI3 global interrupt0x0000 010C
exti_spi3_wkup
uart4_gbl_it5952UART4UART4 global interrupt0x0000 0110
exti_uart4_wkup
uart5_gbl_it6053UART5UART 5 global interrupt0x0000 0114
exti_uart5_wkup
Table 140. NVIC (1) (continued)
Signal(s)PriorityNVIC positionAcronymDescriptionAddress
tim6_gbl_it6154TIM6_DACTIM6 global interrupt, DAC1 and DAC2 interrupts0x0000 0118
dac_unr_it
tim7_gbl_it6255TIM7TIM7 global interrupt0x0000 011C
dma2_it06356DMA2_STR0DMA2 stream0 global interrupt0x0000 0120
dma2_it16457DMA2_STR1DMA2 stream1 global interrupt0x0000 0124
dma2_it26558DMA2_STR2DMA2 stream2 global interrupt0x0000 0128
dma2_it36659DMA2_STR3DMA2 stream3 global interrupt0x0000 012C
dma2_it46760DMA2_STR4DMA2 stream4 global interrupt0x0000 0130
eth_sbd_intr_it6861ETHEthernet interrupt0x0000 0134
exti_eth_wkup6962ETH_WKUPETHERNET wakeup interrupt through EXTI line0x0000 0138
fdcan_cal_it7063FDCAN_CALFDCAN calibration interrupt0x0000 013C
----Reserved0x0000 0140
----Reserved0x0000 0144
----Reserved0x0000 0148
----Reserved0x0000 014C
dma2_it57568DMA2_STR5DMA2 stream5 global interrupt0x0000 0150
dma2_it67669DMA2_STR6DMA2 stream6 global interrupt0x0000 0154
dma2_it77770DMA2_STR7DMA2 stream7 global interrupt0x0000 0158
usart6_gbl_it7871USART6USART6 global interrupt0x0000 015C
exti_usart6_wkup
i2c3_ev_it7972I2C3_EVI2C3 event interrupt0x0000 0160
exti_i2c3_ev_wkup
i2c3_err_it8073I2C3_ERI2C3 error interrupt0x0000 0164
usb1_out_it8174OTG_HS_EP1_OUTUSB OTG_HS OUT endpoint1 global interrupt0x0000 0168
usb1_in_it8275OTG_HS_EP1_INUSB OTG_HS IN endpoint1 global interrupt0x0000 016C
exti_usb1_wkup8376OTG_HS_WKUPUSB OTG_HS wakeup Interrupt through EXTI line0x0000 0170
usb1_gbl_it8477OTG_HSUSB OTG_HS global interrupt0x0000 0174
dcmi_pssi_it8578DCMI_PSSIDCMI/PSSI global interrupt0x0000 0178
cryp_it8679CRYPCRYP global interrupt0x0000 017C
hash_rng_it8780HASH_RNGHASH OR RNG interrupt0x0000 0180
cpu_fpu_it8881FPUCPU FPU global interrupt0x0000 0184
Table 140. NVIC (1) (continued)
Signal(s)PriorityNVIC positionAcronymDescriptionAddress
uart7_gbl_it8982UART7UART7 global interrupt0x0000 0188
exti_uart7_wkup
uart8_gbl_it9083UART8UART8 global interrupt0x0000 018C
exti_uart8_wkup
spi4_it9184SPI4SPI4 global interrupt0x0000 0190
exti_spi4_wkup
spi5_it9285SPI5SPI5 global interrupt0x0000 0194
exti_spi5_wkup
spi6_it9386SPI6SPI6 global interrupt0x0000 0198
exti_spi6_wkup
sai1_it9487SAI1SAI1 global interrupt0x0000 019C
ltdc_it9588LTDCLCD-TFT global interrupt0x0000 01A0
ltdc_err_it9689LTDC_ERRLCD-TFT global Error interrupt0x0000 01A4
dma2d_gbl_it9790DMA2DDMA2D global interrupt0x0000 01A8
----Reserved0x0000 01AC
octospi1_it9992OCTOSPI1OCTOSPI1 global interrupt0x0000 01B0
lptim1_it10093LPTIM1LPTIM1 global interrupt0x0000 01B4
exti_lptim1_wkup
cec_it10194CECHDMI-CEC global interrupt0x0000 01B8
exti_cec_wkup
i2c4_ev_it10295I2C4_EVI2C4 event interrupt0x0000 01BC
exti_i2c4_wkup
i2c4_errit10396I2C4_ERI2C4 error interrupt0x0000 01C0
spdifrx_it10497SPDIFSPDIFIRX global interrupt0x0000 01C4
----Reserved0x0000 01C8
----Reserved0x0000 01CC
----Reserved0x0000 01D0
----Reserved0x0000 01D4
dmamux1_ovr_it109102DMAMUX1_OVDMAMUX1 overrun interrupt0x0000 01D8
----Reserved0x0000 01DC
----Reserved0x0000 01E0
----Reserved0x0000 01E4
----Reserved0x0000 01E8
----Reserved0x0000 01EC
Table 140. NVIC (1) (continued)
Signal(s)PriorityNVIC positionAcronymDescriptionAddress
----Reserved0x0000 01F0
----Reserved0x0000 01F4
dfsdm1_it0117110DFSDM1_FLT0DFSDM1 filter 0 interrupt0x0000 01F8
dfsdm1_it1118111DFSDM1_FLT1DFSDM1 filter 1 interrupt0x0000 01FC
dfsdm1_it2119112DFSDM1_FLT2DFSDM1 filter 2 interrupt0x0000 0200
dfsdm1_it3120113DFSDM1_FLT3DFSDM1 filter 3 interrupt0x0000 0204
----Reserved0x0000 0208
swpmi_gbl_it122115SWPMI1SWPMI global interrupt OR Slave Resume asynchronous interrupt0x0000 020C
exti_swpmi_wkup
tim15_gbl_it123116TIM15TIM15 global interrupt0x0000 0210
tim16_gbl_it124117TIM16TIM16 global interrupt0x0000 0214
tim17_gbl_it125118TIM17TIM17 global interrupt0x0000 0218
exti_mdios_wkup126119MDIOS_WKUPMDIOS wakeup interrupt through EXTI line0x0000 021C
mdios_it127120MDIOSMDIO global interrupt0x0000 0220
----Reserved0x0000 0224
mdma_it129122MDMAMDMA global interrupt0x0000 0228
----Reserved0x0000 022C
sdmmc_it131124SDMMC2SDMMC2 global interrupt0x0000 0230
hsem1_it132125HSEM0HSEM global interrupt 10x0000 0234
----Reserved0x0000 0238
adc3_it134127ADC3ADC3 global interrupt0x0000 023C
dmamux2_ovr_it135128DMAMUX2_OVRDMAMUX2 overrun interrupt0x0000 0240
bdma_ch0_it136129BDMA_CH0BDMA channel 0 interrupt0x0000 0244
bdma_ch1_it137130BDMA_CH1BDMA channel 1 interrupt0x0000 0248
bdma_ch2_it138131BDMA_CH2BDMA channel 2 interrupt0x0000 024C
bdma_ch3_it139132BDMA_CH3BDMA channel 3 interrupt0x0000 0250
bdma_ch4_it140133BDMA_CH4BDMA channel 4 interrupt0x0000 0254
bdma_ch5_it141134BDMA_CH5BDMA channel 5 interrupt0x0000 0258
bdma_ch6_it142135BDMA_CH6BDMA channel 6 interrupt0x0000 025C
bdma_ch7_it143136BDMA_CH7BDMA channel 7 interrupt0x0000 0260
comp_gbl_it144137COMPCOMP1 and COMP2 global Interrupt0x0000 0264
exti_comp1_wkup
exti_comp2_wkup
Table 140. NVIC (1) (continued)
Signal(s)PriorityNVIC positionAcronymDescriptionAddress
lptim2_it145138LPTIM2LPTIM2 global interrupt0x0000 0268
exti_lptim2_wkup
lptim3_it146139LPTIM3LPTIM3 global interrupt0x0000 026C
exti_lptim3_wkup
lptim4_it147140LPTIM4LPTIM4 global interrupt0x0000 0270
exti_lptim4_wkup
lptim5_it148141LPTIM5LPTIM5 global interrupt0x0000 0274
exti_lptim5_wkup
lpuart_gbl_it149142LPUARTLPUART1 global interrupt0x0000 0278
exti_lpuart_rx_it
exti_lpuart_tx_it
----Reserved0x0000 027C
crs_it151144CRSClock recovery global interrupt0x0000 0280
ecc_it152145ECC_DIAG_ITECC diagnostic global interrupt0x0000 0284
sai4_it153146SAI4SAI4 global interrupt0x0000 0288
temp_it154147TEMP_ITTemperature sensor global interrupt0x0000 028C
exti_temp_wkup
----Reserved0x0000 0290
exti_wkup1_wkup156149WKUPInterrupt for 4 wakeup pins (1, 2, 4, 6) through EXTI line0x0000 0294
exti_wkup2_wkup
exti_wkup4_wkup
exti_wkup6_wkup
octospi2_it157150OCTOSPI2OCTOSPI2 global interrupt0x0000 0298
otfdec1_it158151OTFDEC1OTFDEC1 interrupt0x0000 029C
otfdec2_it159152OTFDEC2OTFDEC2 interrupt0x0000 02A0
fmac_it160153FMACFMAC interrupt0x0000 02A4
cordic_it161154CORDIC_ITCORDIC interrupt0x0000 02A8
exti_uart9_wkup162155UART9UART9 interrupt0x0000 02AC
usart10_gbl_it163156USART10USART10 interrupt0x0000 02B0
exti_usart10_wkup
i2c5_ev_it164157I2C5_EVI2C5 event interrupt0x0000 02B4
exti_i2c5_ev_wkup
i2c5_err_it165158I2C5_ERI2C5 error interrupt0x0000 02B8
ttfdcan_intr2_it166159FDCAN3_IT0FDCAN3 interrupt line 00x0000 02BC
Table 140. NVIC (1) (continued)
Signal(s)PriorityNVIC positionAcronymDescriptionAddress
fdcan_intr2_it167160FDCAN3_IT1FDCAN3 interrupt line 10x0000 02C0
tim23_it168161TIM23TIM23 global interrupt0x0000 02C4
tim24_it169162TIM24TIM24 global interrupt0x0000 02C8
  1. 1. When different signals are connected to the same NVIC interrupt line, they are ORed.