29 irq = __builtin_ffs(NVIC_IABR(0))-1;
30 }
else if (NVIC_IABR(1)) {
31 irq = __builtin_ffs(NVIC_IABR(1))+31;
32 }
else if (NVIC_IABR(2)) {
33 irq = __builtin_ffs(NVIC_IABR(2))+64;
38 if (irq >= NVIC_IRQ_COUNT) {
53 #pragma weak wwdg_isr = isr_handler 54 #pragma weak pvd_isr = isr_handler 55 #pragma weak tamper_isr = isr_handler 56 #pragma weak rtc_isr = isr_handler 57 #pragma weak flash_isr = isr_handler 58 #pragma weak rcc_isr = isr_handler 59 #pragma weak exti0_isr = isr_handler 60 #pragma weak exti1_isr = isr_handler 61 #pragma weak exti2_isr = isr_handler 62 #pragma weak exti3_isr = isr_handler 63 #pragma weak exti4_isr = isr_handler 64 #pragma weak dma1_channel1_isr = isr_handler 65 #pragma weak dma1_channel2_isr = isr_handler 66 #pragma weak dma1_channel3_isr = isr_handler 67 #pragma weak dma1_channel4_isr = isr_handler 68 #pragma weak dma1_channel5_isr = isr_handler 69 #pragma weak dma1_channel6_isr = isr_handler 70 #pragma weak dma1_channel7_isr = isr_handler 71 #pragma weak adc1_2_isr = isr_handler 72 #pragma weak usb_hp_can_tx_isr = isr_handler 73 #pragma weak usb_lp_can_rx0_isr = isr_handler 74 #pragma weak can_rx1_isr = isr_handler 75 #pragma weak can_sce_isr = isr_handler 76 #pragma weak exti9_5_isr = isr_handler 77 #pragma weak tim1_brk_isr = isr_handler 78 #pragma weak tim1_up_isr = isr_handler 79 #pragma weak tim1_trg_com_isr = isr_handler 80 #pragma weak tim1_cc_isr = isr_handler 81 #pragma weak tim2_isr = isr_handler 82 #pragma weak tim3_isr = isr_handler 83 #pragma weak tim4_isr = isr_handler 84 #pragma weak i2c1_ev_isr = isr_handler 85 #pragma weak i2c1_er_isr = isr_handler 86 #pragma weak i2c2_ev_isr = isr_handler 87 #pragma weak i2c2_er_isr = isr_handler 88 #pragma weak spi1_isr = isr_handler 89 #pragma weak spi2_isr = isr_handler 90 #pragma weak usart1_isr = isr_handler 91 #pragma weak usart2_isr = isr_handler 92 #pragma weak usart3_isr = isr_handler 93 #pragma weak exti15_10_isr = isr_handler 94 #pragma weak rtc_alarm_isr = isr_handler 95 #pragma weak usb_wakeup_isr = isr_handler 96 #pragma weak tim8_brk_isr = isr_handler 97 #pragma weak tim8_up_isr = isr_handler 98 #pragma weak tim8_trg_com_isr = isr_handler 99 #pragma weak tim8_cc_isr = isr_handler 100 #pragma weak adc3_isr = isr_handler 101 #pragma weak fsmc_isr = isr_handler 102 #pragma weak sdio_isr = isr_handler 103 #pragma weak tim5_isr = isr_handler 104 #pragma weak spi3_isr = isr_handler 105 #pragma weak uart4_isr = isr_handler 106 #pragma weak uart5_isr = isr_handler 107 #pragma weak tim6_isr = isr_handler 108 #pragma weak tim7_isr = isr_handler 109 #pragma weak dma2_channel1_isr = isr_handler 110 #pragma weak dma2_channel2_isr = isr_handler 111 #pragma weak dma2_channel3_isr = isr_handler 112 #pragma weak dma2_channel4_5_isr = isr_handler 113 #pragma weak dma2_channel5_isr = isr_handler 114 #pragma weak eth_isr = isr_handler 115 #pragma weak eth_wkup_isr = isr_handler 116 #pragma weak can2_tx_isr = isr_handler 117 #pragma weak can2_rx0_isr = isr_handler 118 #pragma weak can2_rx1_isr = isr_handler 119 #pragma weak can2_sce_isr = isr_handler 120 #pragma weak otg_fs_isr = isr_handler vector_table_entry_t interrupt_table[NVIC_IRQ_COUNT]
table of interrupts which can set to user functions
static void isr_handler(void)
handler intercepting interrupts and running the function provided in the table
BusVoodoo runtime interrupt table.