1 /* Author: Domen Puncer <domen@cba.si>. License: WTFPL, see file LICENSE */
5 /* lets have weak aliases to dummy handler */
6 void nmi_handler() __alias(dummy_handler
);
7 void hardfault_handler() __alias(dummy_handler
);
8 void memmanage_handler() __alias(dummy_handler
);
9 void busfault_handler() __alias(dummy_handler
);
10 void usagefault_handler() __alias(dummy_handler
);
11 void svc_handler() __alias(dummy_handler
);
12 void debugmon_handler() __alias(dummy_handler
);
13 void pendsv_handler() __alias(dummy_handler
);
14 void systick_handler() __alias(dummy_handler
);
16 void wwdg_irqhandler() __alias(dummy_handler
);
17 void pvd_irqhandler() __alias(dummy_handler
);
18 void tamper_irqhandler() __alias(dummy_handler
);
19 void rtc_irqhandler() __alias(dummy_handler
);
20 void flash_irqhandler() __alias(dummy_handler
);
21 void rcc_irqhandler() __alias(dummy_handler
);
22 void exti0_irqhandler() __alias(dummy_handler
);
23 void exti1_irqhandler() __alias(dummy_handler
);
24 void exti2_irqhandler() __alias(dummy_handler
);
25 void exti3_irqhandler() __alias(dummy_handler
);
26 void exti4_irqhandler() __alias(dummy_handler
);
27 void dma1_ch1_irqhandler() __alias(dummy_handler
);
28 void dma1_ch2_irqhandler() __alias(dummy_handler
);
29 void dma1_ch3_irqhandler() __alias(dummy_handler
);
30 void dma1_ch4_irqhandler() __alias(dummy_handler
);
31 void dma1_ch5_irqhandler() __alias(dummy_handler
);
32 void dma1_ch6_irqhandler() __alias(dummy_handler
);
33 void dma1_ch7_irqhandler() __alias(dummy_handler
);
34 void adc1_2_irqhandler() __alias(dummy_handler
);
35 void usb_hp_can1_tx_irqhandler() __alias(dummy_handler
);
36 void usb_lp_can1_rx0_irqhandler() __alias(dummy_handler
);
37 void can1_rx1_irqhandler() __alias(dummy_handler
);
38 void can1_sce_irqhandler() __alias(dummy_handler
);
39 void exti9_5_irqhandler() __alias(dummy_handler
);
40 void tim1_brk_irqhandler() __alias(dummy_handler
);
41 void tim1_up_irqhandler() __alias(dummy_handler
);
42 void tim1_trg_com_irqhandler() __alias(dummy_handler
);
43 void tim1_cc_irqhandler() __alias(dummy_handler
);
44 void tim2_irqhandler() __alias(dummy_handler
);
45 void tim3_irqhandler() __alias(dummy_handler
);
46 void tim4_irqhandler() __alias(dummy_handler
);
47 void i2c1_ev_irqhandler() __alias(dummy_handler
);
48 void i2c1_er_irqhandler() __alias(dummy_handler
);
49 void i2c2_ev_irqhandler() __alias(dummy_handler
);
50 void i2c2_er_irqhandler() __alias(dummy_handler
);
51 void spi1_irqhandler() __alias(dummy_handler
);
52 void spi2_irqhandler() __alias(dummy_handler
);
53 void usart1_irqhandler() __alias(dummy_handler
);
54 void usart2_irqhandler() __alias(dummy_handler
);
55 void usart3_irqhandler() __alias(dummy_handler
);
56 void exti15_10_irqhandler() __alias(dummy_handler
);
57 void rtc_alarm_irqhandler() __alias(dummy_handler
);
58 void usb_wkup_irqhandler() __alias(dummy_handler
);
59 void tim8_brk_irqhandler() __alias(dummy_handler
);
60 void tim8_up_irqhandler() __alias(dummy_handler
);
61 void tim8_trg_com_irqhandler() __alias(dummy_handler
);
62 void tim8_cc_irqhandler() __alias(dummy_handler
);
63 void adc3_irqhandler() __alias(dummy_handler
);
64 void fsmc_irqhandler() __alias(dummy_handler
);
65 void sdio_irqhandler() __alias(dummy_handler
);
66 void tim5_irqhandler() __alias(dummy_handler
);
67 void spi3_irqhandler() __alias(dummy_handler
);
68 void uart4_irqhandler() __alias(dummy_handler
);
69 void uart5_irqhandler() __alias(dummy_handler
);
70 void tim6_irqhandler() __alias(dummy_handler
);
71 void tim7_irqhandler() __alias(dummy_handler
);
72 void dma2_ch1_irqhandler() __alias(dummy_handler
);
73 void dma2_ch2_irqhandler() __alias(dummy_handler
);
74 void dma2_ch3_irqhandler() __alias(dummy_handler
);
75 void dma2_ch4_5_irqhandler() __alias(dummy_handler
);
78 void __naked
dummy_handler()
80 asm volatile ( "b generic_exception_handler\n\t");
83 __attribute__ ((section(".vectors"))) void (* const _vectors
[])() =
85 /* exceptions, arch specific */
86 &_ram_end
, /* stack */
90 memmanage_handler
, /* 4, 0x10 */
98 debugmon_handler
, /* 12, 0x30 */
103 /* interrupts, mach specific */
104 wwdg_irqhandler
, /* 16, 0x40 */
112 exti2_irqhandler
, /* 24, 0x60 */
120 dma1_ch6_irqhandler
, /* 32, 0x80 */
123 usb_hp_can1_tx_irqhandler
,
124 usb_lp_can1_rx0_irqhandler
,
128 tim1_brk_irqhandler
, /* 40, 0xa0 */
130 tim1_trg_com_irqhandler
,
136 i2c1_er_irqhandler
, /* 48, 0xc0 */
144 exti15_10_irqhandler
, /* 56, 0xe0 */
145 rtc_alarm_irqhandler
,
149 tim8_trg_com_irqhandler
,
152 fsmc_irqhandler
, /* 64, 0x100 */
160 dma2_ch1_irqhandler
, /* 72, 0x120 */
163 dma2_ch4_5_irqhandler
,