1#[cfg(feature = "rt")]
2extern "C" {
3 fn WWDG();
4 fn PVD();
5 fn TAMP_STAMP();
6 fn RTC_WKUP();
7 fn FLASH();
8 fn RCC();
9 fn EXTI0();
10 fn EXTI1();
11 fn EXTI2();
12 fn EXTI3();
13 fn EXTI4();
14 fn DMA1_Stream0();
15 fn DMA1_Stream1();
16 fn DMA1_Stream2();
17 fn DMA1_Stream3();
18 fn DMA1_Stream4();
19 fn DMA1_Stream5();
20 fn DMA1_Stream6();
21 fn ADC();
22 fn CAN1_TX();
23 fn CAN1_RX0();
24 fn CAN1_RX1();
25 fn CAN1_SCE();
26 fn EXTI9_5();
27 fn TIM1_BRK_TIM9();
28 fn TIM1_UP_TIM10();
29 fn TIM1_TRG_COM_TIM11();
30 fn TIM1_CC();
31 fn TIM2();
32 fn TIM3();
33 fn TIM4();
34 fn I2C1_EV();
35 fn I2C1_ER();
36 fn I2C2_EV();
37 fn I2C2_ER();
38 fn SPI1();
39 fn SPI2();
40 fn USART1();
41 fn USART2();
42 fn USART3();
43 fn EXTI15_10();
44 fn RTC_Alarm();
45 fn OTG_FS_WKUP();
46 fn TIM8_BRK_TIM12();
47 fn TIM8_UP_TIM13();
48 fn TIM8_TRG_COM_TIM14();
49 fn TIM8_CC();
50 fn DMA1_Stream7();
51 fn FMC();
52 fn SDIO();
53 fn TIM5();
54 fn SPI3();
55 fn UART4();
56 fn UART5();
57 fn TIM6_DAC();
58 fn TIM7();
59 fn DMA2_Stream0();
60 fn DMA2_Stream1();
61 fn DMA2_Stream2();
62 fn DMA2_Stream3();
63 fn DMA2_Stream4();
64 fn ETH();
65 fn ETH_WKUP();
66 fn CAN2_TX();
67 fn CAN2_RX0();
68 fn CAN2_RX1();
69 fn CAN2_SCE();
70 fn OTG_FS();
71 fn DMA2_Stream5();
72 fn DMA2_Stream6();
73 fn DMA2_Stream7();
74 fn USART6();
75 fn I2C3_EV();
76 fn I2C3_ER();
77 fn OTG_HS_EP1_OUT();
78 fn OTG_HS_EP1_IN();
79 fn OTG_HS_WKUP();
80 fn OTG_HS();
81 fn DCMI();
82 fn CRYP();
83 fn HASH_RNG();
84 fn FPU();
85 fn UART7();
86 fn UART8();
87 fn SPI4();
88 fn SPI5();
89 fn SPI6();
90 fn LCD_TFT();
91 fn LCD_TFT_1();
92}
93
94#[doc(hidden)]
95pub union Vector {
96 _handler: unsafe extern "C" fn(),
97 _reserved: u32,
98}
99
100#[cfg(feature = "rt")]
101#[doc(hidden)]
102#[link_section = ".vector_table.interrupts"]
103#[no_mangle]
104pub static __INTERRUPTS: [Vector; 90] = [
105 Vector { _handler: WWDG },
106 Vector { _handler: PVD },
107 Vector {
108 _handler: TAMP_STAMP,
109 },
110 Vector { _handler: RTC_WKUP },
111 Vector { _handler: FLASH },
112 Vector { _handler: RCC },
113 Vector { _handler: EXTI0 },
114 Vector { _handler: EXTI1 },
115 Vector { _handler: EXTI2 },
116 Vector { _handler: EXTI3 },
117 Vector { _handler: EXTI4 },
118 Vector {
119 _handler: DMA1_Stream0,
120 },
121 Vector {
122 _handler: DMA1_Stream1,
123 },
124 Vector {
125 _handler: DMA1_Stream2,
126 },
127 Vector {
128 _handler: DMA1_Stream3,
129 },
130 Vector {
131 _handler: DMA1_Stream4,
132 },
133 Vector {
134 _handler: DMA1_Stream5,
135 },
136 Vector {
137 _handler: DMA1_Stream6,
138 },
139 Vector { _handler: ADC },
140 Vector { _handler: CAN1_TX },
141 Vector { _handler: CAN1_RX0 },
142 Vector { _handler: CAN1_RX1 },
143 Vector { _handler: CAN1_SCE },
144 Vector { _handler: EXTI9_5 },
145 Vector {
146 _handler: TIM1_BRK_TIM9,
147 },
148 Vector {
149 _handler: TIM1_UP_TIM10,
150 },
151 Vector {
152 _handler: TIM1_TRG_COM_TIM11,
153 },
154 Vector { _handler: TIM1_CC },
155 Vector { _handler: TIM2 },
156 Vector { _handler: TIM3 },
157 Vector { _handler: TIM4 },
158 Vector { _handler: I2C1_EV },
159 Vector { _handler: I2C1_ER },
160 Vector { _handler: I2C2_EV },
161 Vector { _handler: I2C2_ER },
162 Vector { _handler: SPI1 },
163 Vector { _handler: SPI2 },
164 Vector { _handler: USART1 },
165 Vector { _handler: USART2 },
166 Vector { _handler: USART3 },
167 Vector {
168 _handler: EXTI15_10,
169 },
170 Vector {
171 _handler: RTC_Alarm,
172 },
173 Vector {
174 _handler: OTG_FS_WKUP,
175 },
176 Vector {
177 _handler: TIM8_BRK_TIM12,
178 },
179 Vector {
180 _handler: TIM8_UP_TIM13,
181 },
182 Vector {
183 _handler: TIM8_TRG_COM_TIM14,
184 },
185 Vector { _handler: TIM8_CC },
186 Vector {
187 _handler: DMA1_Stream7,
188 },
189 Vector { _handler: FMC },
190 Vector { _handler: SDIO },
191 Vector { _handler: TIM5 },
192 Vector { _handler: SPI3 },
193 Vector { _handler: UART4 },
194 Vector { _handler: UART5 },
195 Vector { _handler: TIM6_DAC },
196 Vector { _handler: TIM7 },
197 Vector {
198 _handler: DMA2_Stream0,
199 },
200 Vector {
201 _handler: DMA2_Stream1,
202 },
203 Vector {
204 _handler: DMA2_Stream2,
205 },
206 Vector {
207 _handler: DMA2_Stream3,
208 },
209 Vector {
210 _handler: DMA2_Stream4,
211 },
212 Vector { _handler: ETH },
213 Vector { _handler: ETH_WKUP },
214 Vector { _handler: CAN2_TX },
215 Vector { _handler: CAN2_RX0 },
216 Vector { _handler: CAN2_RX1 },
217 Vector { _handler: CAN2_SCE },
218 Vector { _handler: OTG_FS },
219 Vector {
220 _handler: DMA2_Stream5,
221 },
222 Vector {
223 _handler: DMA2_Stream6,
224 },
225 Vector {
226 _handler: DMA2_Stream7,
227 },
228 Vector { _handler: USART6 },
229 Vector { _handler: I2C3_EV },
230 Vector { _handler: I2C3_ER },
231 Vector {
232 _handler: OTG_HS_EP1_OUT,
233 },
234 Vector {
235 _handler: OTG_HS_EP1_IN,
236 },
237 Vector {
238 _handler: OTG_HS_WKUP,
239 },
240 Vector { _handler: OTG_HS },
241 Vector { _handler: DCMI },
242 Vector { _handler: CRYP },
243 Vector { _handler: HASH_RNG },
244 Vector { _handler: FPU },
245 Vector { _handler: UART7 },
246 Vector { _handler: UART8 },
247 Vector { _handler: SPI4 },
248 Vector { _handler: SPI5 },
249 Vector { _handler: SPI6 },
250 Vector { _reserved: 0 },
251 Vector { _handler: LCD_TFT },
252 Vector {
253 _handler: LCD_TFT_1,
254 },
255];
256
257#[repr(u16)]
259#[derive(Copy, Clone, Debug, PartialEq, Eq)]
260#[allow(non_camel_case_types)]
261pub enum Interrupt {
262 WWDG = 0,
264 PVD = 1,
266 TAMP_STAMP = 2,
268 RTC_WKUP = 3,
270 FLASH = 4,
272 RCC = 5,
274 EXTI0 = 6,
276 EXTI1 = 7,
278 EXTI2 = 8,
280 EXTI3 = 9,
282 EXTI4 = 10,
284 DMA1_Stream0 = 11,
286 DMA1_Stream1 = 12,
288 DMA1_Stream2 = 13,
290 DMA1_Stream3 = 14,
292 DMA1_Stream4 = 15,
294 DMA1_Stream5 = 16,
296 DMA1_Stream6 = 17,
298 ADC = 18,
300 CAN1_TX = 19,
302 CAN1_RX0 = 20,
304 CAN1_RX1 = 21,
306 CAN1_SCE = 22,
308 EXTI9_5 = 23,
310 TIM1_BRK_TIM9 = 24,
312 TIM1_UP_TIM10 = 25,
314 TIM1_TRG_COM_TIM11 = 26,
316 TIM1_CC = 27,
318 TIM2 = 28,
320 TIM3 = 29,
322 TIM4 = 30,
324 I2C1_EV = 31,
326 I2C1_ER = 32,
328 I2C2_EV = 33,
330 I2C2_ER = 34,
332 SPI1 = 35,
334 SPI2 = 36,
336 USART1 = 37,
338 USART2 = 38,
340 USART3 = 39,
342 EXTI15_10 = 40,
344 RTC_Alarm = 41,
346 OTG_FS_WKUP = 42,
348 TIM8_BRK_TIM12 = 43,
350 TIM8_UP_TIM13 = 44,
352 TIM8_TRG_COM_TIM14 = 45,
354 TIM8_CC = 46,
356 DMA1_Stream7 = 47,
358 FMC = 48,
360 SDIO = 49,
362 TIM5 = 50,
364 SPI3 = 51,
366 UART4 = 52,
368 UART5 = 53,
370 TIM6_DAC = 54,
372 TIM7 = 55,
374 DMA2_Stream0 = 56,
376 DMA2_Stream1 = 57,
378 DMA2_Stream2 = 58,
380 DMA2_Stream3 = 59,
382 DMA2_Stream4 = 60,
384 ETH = 61,
386 ETH_WKUP = 62,
388 CAN2_TX = 63,
390 CAN2_RX0 = 64,
392 CAN2_RX1 = 65,
394 CAN2_SCE = 66,
396 OTG_FS = 67,
398 DMA2_Stream5 = 68,
400 DMA2_Stream6 = 69,
402 DMA2_Stream7 = 70,
404 USART6 = 71,
406 I2C3_EV = 72,
408 I2C3_ER = 73,
410 OTG_HS_EP1_OUT = 74,
412 OTG_HS_EP1_IN = 75,
414 OTG_HS_WKUP = 76,
416 OTG_HS = 77,
418 DCMI = 78,
420 CRYP = 79,
422 HASH_RNG = 80,
424 FPU = 81,
426 UART7 = 82,
428 UART8 = 83,
430 SPI4 = 84,
432 SPI5 = 85,
434 SPI6 = 86,
436 LCD_TFT = 88,
438 LCD_TFT_1 = 89,
440}
441unsafe impl external_cortex_m::interrupt::InterruptNumber for Interrupt {
442 #[inline(always)]
443 fn number(self) -> u16 {
444 self as u16
445 }
446}