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 142. NVIC (1)

NVIC positionPriorityType of priorityAcronymDescriptionAddress offset
---Reserved0x0000 0000
--3fixedResetReset0x0000 0004
--2fixedNMINon maskable interrupt. The RCC Clock Security System (HSE CSS) is linked to the NMI vector.0x0000 0008
--1fixedHardFaultAll class of fault0x0000 000C
-0fixedMemManageMemory management0x0000 0010
-1settableBusFaultPre-fetch fault, memory access fault0x0000 0014
-2settableUsageFaultUndefined instruction or illegal state0x0000 0018
----Reserved0x0000 001C
-
0x0000 002B
-3settableSVCallSystem service call via SWI instruction0x0000 002C
-4settableDebug MonitorDebug Monitor0x0000 0030
----Reserved0x0000 0034
-5settablePendSVPendable request for system service0x0000 0038
-6settableSystickSystem tick timer0x0000 003C
07settablePVD_AVDPVD and AVD through the EXTI line0x0000 0040
----Reserved0x0000 0044
29settableDTSDTS global interrupt0x0000 0048
310settableIWDGIndependent watchdog interrupt0x0000 004C
411settableWWDGWindow watchdog interrupt0x0000 0050
512settableRCCRCC global interrupt0x0000 0054
613---0x0000 0058
714---0x0000 005C
815settableFLASHFlash memory interface0x0000 0060
Table 142. NVIC (1)
NVIC positionPriorityType of priorityAcronymDescriptionAddress offset
916settableECC_FPUECC/FPU/ All flag from exec0x0000 0064
1017settableFPUFPU safety Flag0x0000 0068
----Reserved0x0000 006C
----Reserved0x0000 0070
1320settableTAMPRTC tamper and timestamp interrupts through the EXTI line0x0000 0074
----Reserved (product secure)0x0000 0078
----Reserved (product secure)0x0000 007C
1623settableEXTI0EXTI Line 0 interrupt through the EXTI line0x0000 0080
1724settableEXTI1EXTI Line 1 interrupt through the EXTI line0x0000 0084
1825settableEXTI2EXTI Line 2 interrupt through the EXTI line0x0000 0088
1926settableEXTI3EXTI Line 3 interrupt through the EXTI line0x0000 008C
2027settableEXTI4EXTI Line 4 interrupt through the EXTI line0x0000 0090
2128settableEXTI5EXTI Line 5 interrupt through the EXTI line0x0000 0094
2229settableEXTI6EXTI Line 6 interrupt through the EXTI line0x0000 0098
2330settableEXTI7EXTI Line 7 interrupt through the EXTI line0x0000 009C
2431settableEXTI8EXTI Line 8 interrupt through the EXTI line0x0000 00A0
2532settableEXTI9EXTI Line 9 interrupt through the EXTI line0x0000 00A4
2633settableEXTI10EXTI Line 10 interrupt through the EXTI line0x0000 00A8
2734settableEXTI11EXTI Line 11 interrupt through the EXTI line0x0000 00AC
2835settableEXTI12EXTI Line 12 interrupt through the EXTI line0x0000 00B0
2936settableEXTI13EXTI Line 13 interrupt through the EXTI line0x0000 00B4
3037settableEXTI14EXTI Line 14 interrupt through the EXTI line0x0000 00B8
3138settableEXTI15EXTI Line 15 interrupt through the EXTI line0x0000 00BC
3239settableRTCRTC wake-up and Alarm interrupt through the EXTI line0x0000 00C0
3340settableSAESSAES global interrupt0x0000 00C4
3441settableAESAES global interrupt0x0000 00C8
3542settablePKAPKA global interrupt0x0000 00CC
Table 142. NVIC (1)
NVIC positionPriorityType of priorityAcronymDescriptionAddress offset
3643settableHASHHASH global interrupt0x0000 00D0
3744settableRNGRNG global interrupt0x0000 00D4
3845settableADC1_2ADC1/2 global interrupt0x0000 00D8
3946settableGPDMA1_CH0GPDMA1 channel 0 interrupt0x0000 00DC
4047settableGPDMA1_CH1GPDMA1 channel 1 interrupt0x0000 00E0
4148settableGPDMA1_CH2GPDMA1 channel 2 interrupt0x0000 00E4
4249settableGPDMA1_CH3GPDMA1 channel 3 interrupt0x0000 00E8
4350settableGPDMA1_CH4GPDMA1 channel 4 interrupt0x0000 00EC
4451settableGPDMA1_CH5GPDMA1 channel 5 interrupt0x0000 00F0
4552settableGPDMA1_CH6GPDMA1 channel 6 interrupt0x0000 00F4
4653settableGPDMA1_CH7GPDMA1 channel 7 interrupt0x0000 00F8
4754settableTIM1_BRKTIM1 Break interrupt (tim_brk_err_ierr_it)0x0000 00FC
4855settableTIM1_UPTIM1 Update interrupt (tim_upd_it)0x0000 0100
4956settableTIM1_TRG_COMTIM1 Trigger and Commutation interrupts (tim_trg_com_dir_idx_it)0x0000 0104
5057settableTIM1_CCTIM1 Capture Compare interrupt (tim_cc_it)0x0000 0108
5158settableTIM2TIM2 global interrupt0x0000 010C
5259settableTIM3TIM3 global interrupt0x0000 0110
5360settableTIM4TIM4 global interrupt0x0000 0114
5461settableTIM5TIM5 global interrupt0x0000 0118
5562settableTIM6TIM6 global interrupt0x0000 011C
5663settableTIM7TIM7 global interrupt0x0000 0120
5764settableTIM9TIM9 global interrupt0x0000 0124
5865settableSPI1SPI1 global interrupt0x0000 0128
5966settableSPI2SPI2 global interrupt0x0000 012C
6067settableSPI3SPI3 global interrupt0x0000 0130
6168settableSPI4SPI4 global interrupt0x0000 0134
6269settableSPI5SPI5 global interrupt0x0000 0138
6370settableSPI6SPI6 global interrupt0x0000 013C
Table 142. NVIC (1)
NVIC positionPriorityType of priorityAcronymDescriptionAddress offset
6471settableHPDMA1_CH0HPDMA1 channel 0 interrupt0x0000 0140
6572settableHPDMA1_CH1HPDMA1 channel 1 interrupt0x0000 0144
6673settableHPDMA1_CH2HPDMA1 channel 2 interrupt0x0000 0148
6774settableHPDMA1_CH3HPDMA1 channel 3 interrupt0x0000 014C
6875settableHPDMA1_CH4HPDMA1 channel 4 interrupt0x0000 0150
6976settableHPDMA1_CH5HPDMA1 channel 5 interrupt0x0000 0154
7077settableHPDMA1_CH6HPDMA1 channel 6 interrupt0x0000 0158
7178settableHPDMA1_CH7HPDMA1 channel 7 interrupt0x0000 015C
7279settableSAI1_ASAI1 global interrupt A0x0000 0160
7380settableSAI1_BSAI1 global interrupt B0x0000 0164
7481settableSAI2_ASAI2 global interrupt A0x0000 0168
7582settableSAI2_BSAI2 global interrupt B0x0000 016C
7683settableI2C1_EVI2C1 event interrupt0x0000 0170
7784settableI2C1_ERI2C1 error interrupt0x0000 0174
7885settableI2C2_EVI2C2 event interrupt0x0000 0178
7986settableI2C2_ERI2C2 error interrupt0x0000 017C
8087settableI2C3_EVI2C3 event interrupt0x0000 0180
8188settableI2C3_ERI2C3 error interrupt0x0000 0184
8289settableUSART1USART1 global interrupt0x0000 0188
8390settableUSART2USART2 global interrupt0x0000 018C
8491settableUSART3USART3 global interrupt0x0000 0190
8592settableUART4UART4 global interrupt0x0000 0194
8693settableUART5UART5 global interrupt0x0000 0198
8794settableUART7UART7 global interrupt0x0000 019C
8895settableUART8UART8 global interrupt0x0000 01A0
8996settableI3C1_EVI3C1 event interrupt0x0000 01A4
9097settableI3C1_ERI3C1 error interrupt0x0000 01A8
9198settableOTG_HSUSB OTG HS global interrupt0x0000 01AC
9299settableETHEthernet global interrupt0x0000 01B0
Table 142. NVIC (1)
NVIC positionPriorityType of priorityAcronymDescriptionAddress offset
93100settableCORDICCORDIC interrupt0x0000 01B4
94101settableGFXTIMGFXTIM global interrupt0x0000 01B8
95102settableDCMIPPDCMI global interrupt0x0000 01BC
96103settableLTDCLCD global interrupt0x0000 01C0
97104settableLTDC_ERLCD error interrupt0x0000 01C4
98105settableDMA2DDMA2D global interrupt0x0000 01C8
99106settableJPEGJPEG global interrupt0x0000 01CC
100107settableGFXTMMUGFXTMMU global interrupt0x0000 01D0
101108settableI3C1_WKUPI3C wake-up Interrupt through EXTI line0x0000 01D4
102109settableMCE1MCE1 global interrupt0x0000 01D8
103110settableMCE2MCE2 global interrupt0x0000 01DC
104111settableMCE3MCE3 global interrupt0x0000 01E0
105112settableOSPI1OSPI1 / HSPI1 global interrupt0x0000 01E4
106113settableOSPI2OSPI2 global interrupt0x0000 01E8
107114settableFMCFMC global interrupt0x0000 01EC
108115settableSDMMC1SDMMC1 global interrupt0x0000 01F0
109116settableSDMMC2SDMMC2 global interrupt0x0000 01F4
----Reserved0x0000 01F8
----Reserved0x0000 01FC
112119settableOTG_FSUSB OTG FS global interrupt0x0000 0200
113120settableTIM12TIM12 global interrupt0x0000 0204
114121settableTIM13TIM13 global interrupt0x0000 0208
115122settableTIM14TIM14 global interrupt0x0000 020C
116123settableTIM15TIM15 global interrupt0x0000 0210
117124settableTIM16TIM16 global interrupt0x0000 0214
118125settableTIM17TIM17 global interrupt0x0000 0218
119126settableLPTIM1LPTIM1 global interrupt0x0000 021C
120127settableLPTIM2LPTIM2 global interrupt0x0000 0220
121128settableLPTIM3LPTIM3 global interrupt0x0000 0224
Table 142. NVIC (1)
NVIC positionPriorityType of priorityAcronymDescriptionAddress offset
122129settableLPTIM4LPTIM4 global interrupt0x0000 0228
123130settableLPTIM5LPTIM5 global interrupt0x0000 022C
124131settableSPDIF_RXSPDIFRX global interrupt0x0000 0230
125132settableMDOISMDOIS global interrupt0x0000 0234
126133settableADF1_FLT0ADF1 filter 0 global interrupt0x0000 0238
127134settableCRSCRS global interrupt0x0000 023C
128135settableUCPD1UCPD global interrupt0x0000 0240
129136settableCECCEC global interrupt0x0000 0244
130137settablePSSIPSSI global interrupt0x0000 0248
131138settableLPUART1LPUART1 global interrupt0x0000 024C
132139settableWAKEUP_PINInterrupt for 4 wake-up pins (1, 2, 3, 4) through EXTI line0x0000 0250
133140settableGPDMA1_CH8GPDMA1 channel 8 interrupt0x0000 0254
134141settableGPDMA1_CH9GPDMA1 channel 9 interrupt0x0000 0258
135142settableGPDMA1_CH10GPDMA1 channel 10 interrupt0x0000 025C
136143settableGPDMA1_CH11GPDMA1 channel 11 interrupt0x0000 0260
137144settableGPDMA1_CH12GPDMA1 channel 12 interrupt0x0000 0264
138145settableGPDMA1_CH13GPDMA1 channel 13 interrupt0x0000 0268
139146settableGPDMA1_CH14GPDMA1 channel 14 interrupt0x0000 026C
140147settableGPDMA1_CH15GPDMA1 channel 15 interrupt0x0000 0270
141148settableHPDMA1_CH8HPDMA1 channel 8 interrupt0x0000 0274
142149settableHPDMA1_CH9HPDMA1 channel 9 interrupt0x0000 0278
143150settableHPDMA1_CH10HPDMA1 channel 10 interrupt0x0000 027C
144151settableHPDMA1_CH11HPDMA1 channel 11 interrupt0x0000 0280
145152settableHPDMA1_CH12HPDMA1 channel 12 interrupt0x0000 0284
146153settableHPDMA1_CH13HPDMA1 channel 13 interrupt0x0000 0288
147154settableHPDMA1_CH14HPDMA1 channel 14 interrupt0x0000 028C
148155settableHPDMA1_CH15HPDMA1 channel 15 interrupt0x0000 0290
149156settableGPU2DGPU2D global interrupt0x0000 0294
Table 142. NVIC (1)
NVIC positionPriorityType of priorityAcronymDescriptionAddress offset
150157settableGPU2D_ERGPU2D error interrupt0x0000 0298
151158settableTCACHEGPU cache interrupt0x0000 029C
152159settableFDCAN1_IT0FDCAN1 interrupt 00x0000 02A0
153160settableFDCAN1_IT1FDCAN1 interrupt 10x0000 02A4
154161settableFDCAN2_IT0FDCAN2 interrupt 00x0000 02A8
155162settableFDCAN2_IT1FDCAN2 interrupt 10x0000 02AC

1. When different signals are connected to the same NVIC interrupt line, they are OR-ed.