--- hide: - toc --- # IRQ Usage of TX16S | IRQn | IRQ handler acronym | Used for | Priority | Prio Addr | Description | Address | | ---- | ------------------------------------------------------------------ | --------------------- | -------- | ---------- | ------------------------------------------- | ---------- | | 0 | WWDG_IRQHandler | - | - | 0xE000E400 | Window WatchDog | 0x00000040 | | 1 | PVD_IRQHandler | - | - | 0xE000E401 | PVD through EXTI Line detection | 0x00000044 | | 2 | TAMP_STAMP_IRQHandler | - | - | 0xE000E402 | Tamper and TimeStamps through the EXTI line | 0x00000048 | | 3 | RTC_WKUP_IRQHandler | - | - | 0xE000E403 | RTC Wakeup through the EXTI line | 0x0000004C | | 4 | FLASH_IRQHandler | - | - | 0xE000E404 | FLASH | 0x00000050 | | 5 | RCC_IRQHandler | - | - | 0xE000E405 | RCC | 0x00000054 | | 6 | EXTI0_IRQHandler | - | - | 0xE000E406 | EXTI Line0 | 0x00000058 | | 7 | EXTI1_IRQHandler | - | - | 0xE000E407 | EXTI Line1 | 0x0000005C | | 8 | **EXTI2_IRQHandler** | TOUCH_INT_EXTI | 9 | 0xE000E408 | EXTI Line2 | 0x00000060 | | 9 | EXTI3_IRQHandler | - | - | 0xE000E409 | EXTI Line3 | 0x00000064 | | 10 | EXTI4_IRQHandler | - | - | 0xE000E40A | EXTI Line4 | 0x00000068 | | 11 | DMA1_Stream0_IRQHandler | - | - | 0xE000E40B | DMA1 Stream 0 | 0x0000006C | | 12 | **DMA1_Stream1_IRQHandler
(only HARDWARE_EXTERNAL_ACCESS_MOD)** | EXTMODULE_TIMER_DMA | 7 | 0xE000E40C | DMA1 Stream 1 | 0x00000070 | | 13 | DMA1_Stream2_IRQHandler | - | - | 0xE000E40D | DMA1 Stream 2 | 0x00000074 | | 14 | DMA1_Stream3_IRQHandler | - | - | 0xE000E40E | DMA1 Stream 3 | 0x00000078 | | 15 | **DMA1_Stream4_IRQHandler** | FLYSKY_HALL_TX_DMA | 7 | 0xE000E40F | DMA1 Stream 4 | 0x0000007C | | 16 | **DMA1_Stream5_IRQHandler** | AUDIO_DMA | 7 | 0xE000E410 | DMA1 Stream 5 | 0x00000080 | | 17 | **DMA1_Stream6_IRQHandler** | TELEMETRY_DMA_TX | 1 | 0xE000E411 | DMA1 Stream 6 | 0x00000084 | | 18 | ADC_IRQHandler | - | - | 0xE000E412 | ADC1, ADC2 and ADC3s | 0x00000088 | | 19 | CAN1_TX_IRQHandler | - | - | 0xE000E413 | CAN1 TX | 0x0000008C | | 20 | CAN1_RX0_IRQHandler | - | - | 0xE000E414 | CAN1 RX0 | 0x00000090 | | 21 | CAN1_RX1_IRQHandler | - | - | 0xE000E415 | CAN1 RX1 | 0x00000094 | | 22 | CAN1_SCE_IRQHandler | - | - | 0xE000E416 | CAN1 SCE | 0x00000098 | | 23 | **EXTI9_5_IRQHandler** | TELEMETRY_EXTI | 0 | 0xE000E417 | External Line[9:5]s | 0x0000009C | | 24 | TIM1_BRK_TIM9_IRQHandler | - | - | 0xE000E418 | TIM1 Break and TIM9 | 0x000000A0 | | 25 | TIM1_UP_TIM10_IRQHandler | - | - | 0xE000E419 | TIM1 Update and TIM10 | 0x000000A4 | | 26 | **TIM1_TRG_COM_TIM11_IRQHandler** | TELEMETRY_TIMER | 0 | 0xE000E41A | TIM1 Trigger and Commutation and TIM11 | 0x000000A8 | | 27 | **TIM1_CC_IRQHandler** | EXTMODULE_TIMER | 7 | 0xE000E41B | TIM1 Capture Compare | 0x000000AC | | 28 | **TIM2_IRQHandler
(only HARDWARE_EXTERNAL_ACCESS_MOD)** | EXTMODULE_TIMER | 7 | 0xE000E41C | TIM2 | 0x000000B0 | | 29 | **TIM3_IRQHandler** | TRAINER_TIMER | 7 | 0xE000E41D | TIM3 | 0x000000B4 | | 30 | **TIM4_IRQHandler** | ROTARY_ENCODER_TIMER | 7 | 0xE000E41E | TIM4 | 0x000000B8 | | 31 | I2C1_EV_IRQHandler | - | - | 0xE000E41F | I2C1 Event | 0x000000BC | | 32 | I2C1_ER_IRQHandler | - | - | 0xE000E420 | I2C1 Error | 0x000000C0 | | 33 | I2C2_EV_IRQHandler | - | - | 0xE000E421 | I2C2 Event | 0x000000C4 | | 34 | I2C2_ER_IRQHandler | - | - | 0xE000E422 | I2C2 Error | 0x000000C8 | | 35 | SPI1_IRQHandler | - | - | 0xE000E423 | SPI1 | 0x000000CC | | 36 | SPI2_IRQHandler | - | - | 0xE000E424 | SPI2 | 0x000000D0 | | 37 | **USART1_IRQHandler** | INTMODULE_USART | 6 | 0xE000E425 | USART1 | 0x000000D4 | | 38 | **USART2_IRQHandler** | TELEMETRY_USART | 6 | 0xE000E426 | USART2 | 0x000000D8 | | 39 | **USART3_IRQHandler** | AUX_SERIAL_USART
(EXTMODULE_USART with HARDWARE_EXTERNAL_ACCESS_MOD) | 7
(6 with HARDWARE_EXTERNAL_ACCESS_MOD) | 0xE000E427 | USART3 | 0x000000DC | | 40 | **EXTI15_10_IRQHandler** | ROTARY_ENCODER_EXTI and INTMODULE_HEARTBEAT | rotaryEncoderInit() sets to 8, but is overridden by init_intmodule_heartbeat() to 5 | 0xE000E428 | External Line[15:10]s | 0x000000E0 | | 41 | RTC_Alarm_IRQHandler | - | - | 0xE000E429 | RTC Alarm (A and B) through EXTI Line | 0x000000E4 | | 42 | OTG_FS_WKUP_IRQHandler | - | - | 0xE000E42A | USB OTG FS Wakeup through EXTI line | 0x000000E8 | | 43 | TIM8_BRK_TIM12_IRQHandler | - | - | 0xE000E42B | TIM8 Break and TIM12 | 0x000000EC | | 44 | **TIM8_UP_TIM13_IRQHandler** | MIXER_SCHEDULER_TIMER | 5 | 0xE000E42C | TIM8 Update and TIM13 | 0x000000F0 | | 45 | **TIM8_TRG_COM_TIM14_IRQHandler** | INTERRUPT_xMS | 4
(bootloader uses 0) | 0xE000E42D | TIM8 Trigger and Commutation and TIM14 | 0x000000F4 | | 46 | TIM8_CC_IRQHandler | - | - | 0xE000E42E | TIM8 Capture Compare | 0x000000F8 | | 47 | DMA1_Stream7_IRQHandler | - | - | 0xE000E42F | DMA1 Stream7 | 0x000000FC | | 48 | FSMC_IRQHandler | - | - | 0xE000E430 | FSMC | 0x00000100 | | 49 | **SDIO_IRQHandler** | SDIO | 0 | 0xE000E431 | SDIO | 0x00000104 | | 50 | TIM5_IRQHandler | - | - | 0xE000E432 | TIM5 | 0x00000108 | | 51 | SPI3_IRQHandler | - | - | 0xE000E433 | SPI3 | 0x0000010C | | 52 | UART4_IRQHandler | - | - | 0xE000E434 | UART4 | 0x00000110 | | 53 | UART5_IRQHandler | - | - | 0xE000E435 | UART5 | 0x00000114 | | 54 | **TIM6_DAC_IRQHandler** | AUDIO_TIM | 7 | 0xE000E436 | TIM6 and DAC1&2 underrun errors | 0x00000118 | | 55 | TIM7_IRQHandler | - | - | 0xE000E437 | TIM7 | 0x0000011C | | 56 | DMA2_Stream0_IRQHandler | - | - | 0xE000E438 | DMA2 Stream 0 | 0x00000120 | | 57 | DMA2_Stream1_IRQHandler | - | - | 0xE000E439 | DMA2 Stream 1 | 0x00000124 | | 58 | DMA2_Stream2_IRQHandler | - | - | 0xE000E43A | DMA2 Stream 2 | 0x00000128 | | 59 | **DMA2_Stream3_IRQHandler** | SD_SDIO_DMA | 1 | 0xE000E43B | DMA2 Stream 3 | 0x0000012C | | 60 | DMA2_Stream4_IRQHandler | - | - | 0xE000E43C | DMA2 Stream 4 | 0x00000130 | | 61 | ETH_IRQHandler | - | - | 0xE000E43D | Ethernet | 0x00000134 | | 62 | ETH_WKUP_IRQHandler | - | - | 0xE000E43E | Ethernet Wakeup through EXTI line | 0x00000138 | | 63 | CAN2_TX_IRQHandler | - | - | 0xE000E43F | CAN2 TX | 0x0000013C | | 64 | CAN2_RX0_IRQHandler | - | - | 0xE000E440 | CAN2 RX0 | 0x00000140 | | 65 | CAN2_RX1_IRQHandler | - | - | 0xE000E441 | CAN2 RX1 | 0x00000144 | | 66 | CAN2_SCE_IRQHandler | - | - | 0xE000E442 | CAN2 SCE | 0x00000148 | | 67 | **OTG_FS_IRQHandler** | OTG_FS (USB) | 11 | 0xE000E443 | USB OTG FS | 0x0000014C | | 68 | **DMA2_Stream5_IRQHandler** | EXTMODULE_TIMER_DMA | 7 | 0xE000E444 | DMA2 Stream 5 | 0x00000150 | | 69 | DMA2_Stream6_IRQHandler | - | - | 0xE000E445 | DMA2 Stream 6 | 0x00000154 | | 70 | **DMA2_Stream7_IRQHandler** | INTMODULE_DMA | 7 | 0xE000E446 | DMA2 Stream 7 | 0x00000158 | | 71 | **USART6_IRQHandler** | AUX2_SERIAL_USART
(optional GPS_USART and BT_USART) | 7
(GPS 9, BT 6) | 0xE000E447 | USART6 | 0x0000015C | | 72 | I2C3_EV_IRQHandler | - | - | 0xE000E448 | I2C3 event | 0x00000160 | | 73 | I2C3_ER_IRQHandler | - | - | 0xE000E449 | I2C3 error | 0x00000164 | | 74 | OTG_HS_EP1_OUT_IRQHandler | - | - | 0xE000E44A | USB OTG HS End Point 1 Out | 0x00000168 | | 75 | OTG_HS_EP1_IN_IRQHandler | - | - | 0xE000E44B | USB OTG HS End Point 1 In | 0x0000016C | | 76 | OTG_HS_WKUP_IRQHandler | - | - | 0xE000E44C | USB OTG HS Wakeup through EXTI | 0x00000170 | | 77 | OTG_HS_IRQHandler | - | - | 0xE000E44D | USB OTG HS | 0x00000174 | | 78 | DCMI_IRQHandler | - | - | 0xE000E44E | DCMI | 0x00000178 | | 79 | CRYP_IRQHandler | - | - | 0xE000E44F | CRYP crypto | 0x0000017C | | 80 | HASH_RNG_IRQHandler | - | - | 0xE000E450 | Hash and Rng | 0x00000180 | | 81 | FPU_IRQHandler | - | - | 0xE000E451 | FPU | 0x00000184 | | 82 | UART7_IRQHandler | - | - | 0xE000E452 | UART7 | 0x00000188 | | 83 | UART8_IRQHandler | - | - | 0xE000E453 | UART8 | 0x0000018C | | 84 | SPI4_IRQHandler | - | - | 0xE000E454 | SPI4 | 0x00000190 | | 85 | SPI5_IRQHandler | - | - | 0xE000E455 | SPI5 | 0x00000194 | | 86 | SPI6_IRQHandler | - | - | 0xE000E456 | SPI6 | 0x00000198 | | 87 | SAI1_IRQHandler | - | - | 0xE000E457 | SAI1 | 0x0000019C | | 88 | **LTDC_IRQHandler** | LTDC | 4
(LCD_Init sets first to 7) | 0xE000E458 | LTDC | 0x000001A0 | | 89 | LTDC_ER_IRQHandler | - | - | 0xE000E459 | LTDC error | 0x000001A4 | | 90 | DMA2D_IRQHandler | - | - | 0xE000E45A | DMA2D | 0x000001A8 | All interrupt priorities higher than [configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY](https://github.com/EdgeTX/edgetx/blob/c5c142d38d2c3b5150180f43731182240a9ccbb2/radio/src/FreeRTOSConfig.h#L98-L102) must not call any FreeRTOS functions! Note that on Cortex ARM architectures higher priorities have lower value. With an in-circuit-debugger, the read out on a TX16S with only internal module configured resulted in the following NVIC register readouts (all values as hex values): Interrupt enable state (NVIC_ISER) from 0xE000E100: ``` 00 01 03 60 E0 31 42 08 80 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ``` Interrupt priority (NVIC_IPR) from 0xE000E400: ``` 00 00 00 00 00 00 00 00 90 00 00 00 00 00 00 00 70 10 00 00 00 00 00 00 00 00 00 00 00 70 70 00 00 00 00 00 00 60 60 70 50 00 00 00 50 40 00 00 00 00 00 00 00 00 70 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ```