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 SAI1();
91 fn LCD_TFT();
92 fn LCD_TFT_1();
93 fn DMA2D();
94}
95
96#[doc(hidden)]
97pub union Vector {
98 _handler: unsafe extern "C" fn(),
99 _reserved: u32,
100}
101
102#[cfg(feature = "rt")]
103#[doc(hidden)]
104#[link_section = ".vector_table.interrupts"]
105#[no_mangle]
106pub static __INTERRUPTS: [Vector; 91] = [
107 Vector { _handler: WWDG },
108 Vector { _handler: PVD },
109 Vector {
110 _handler: TAMP_STAMP,
111 },
112 Vector { _handler: RTC_WKUP },
113 Vector { _handler: FLASH },
114 Vector { _handler: RCC },
115 Vector { _handler: EXTI0 },
116 Vector { _handler: EXTI1 },
117 Vector { _handler: EXTI2 },
118 Vector { _handler: EXTI3 },
119 Vector { _handler: EXTI4 },
120 Vector {
121 _handler: DMA1_Stream0,
122 },
123 Vector {
124 _handler: DMA1_Stream1,
125 },
126 Vector {
127 _handler: DMA1_Stream2,
128 },
129 Vector {
130 _handler: DMA1_Stream3,
131 },
132 Vector {
133 _handler: DMA1_Stream4,
134 },
135 Vector {
136 _handler: DMA1_Stream5,
137 },
138 Vector {
139 _handler: DMA1_Stream6,
140 },
141 Vector { _handler: ADC },
142 Vector { _handler: CAN1_TX },
143 Vector { _handler: CAN1_RX0 },
144 Vector { _handler: CAN1_RX1 },
145 Vector { _handler: CAN1_SCE },
146 Vector { _handler: EXTI9_5 },
147 Vector {
148 _handler: TIM1_BRK_TIM9,
149 },
150 Vector {
151 _handler: TIM1_UP_TIM10,
152 },
153 Vector {
154 _handler: TIM1_TRG_COM_TIM11,
155 },
156 Vector { _handler: TIM1_CC },
157 Vector { _handler: TIM2 },
158 Vector { _handler: TIM3 },
159 Vector { _handler: TIM4 },
160 Vector { _handler: I2C1_EV },
161 Vector { _handler: I2C1_ER },
162 Vector { _handler: I2C2_EV },
163 Vector { _handler: I2C2_ER },
164 Vector { _handler: SPI1 },
165 Vector { _handler: SPI2 },
166 Vector { _handler: USART1 },
167 Vector { _handler: USART2 },
168 Vector { _handler: USART3 },
169 Vector {
170 _handler: EXTI15_10,
171 },
172 Vector {
173 _handler: RTC_Alarm,
174 },
175 Vector {
176 _handler: OTG_FS_WKUP,
177 },
178 Vector {
179 _handler: TIM8_BRK_TIM12,
180 },
181 Vector {
182 _handler: TIM8_UP_TIM13,
183 },
184 Vector {
185 _handler: TIM8_TRG_COM_TIM14,
186 },
187 Vector { _handler: TIM8_CC },
188 Vector {
189 _handler: DMA1_Stream7,
190 },
191 Vector { _handler: FMC },
192 Vector { _handler: SDIO },
193 Vector { _handler: TIM5 },
194 Vector { _handler: SPI3 },
195 Vector { _handler: UART4 },
196 Vector { _handler: UART5 },
197 Vector { _handler: TIM6_DAC },
198 Vector { _handler: TIM7 },
199 Vector {
200 _handler: DMA2_Stream0,
201 },
202 Vector {
203 _handler: DMA2_Stream1,
204 },
205 Vector {
206 _handler: DMA2_Stream2,
207 },
208 Vector {
209 _handler: DMA2_Stream3,
210 },
211 Vector {
212 _handler: DMA2_Stream4,
213 },
214 Vector { _handler: ETH },
215 Vector { _handler: ETH_WKUP },
216 Vector { _handler: CAN2_TX },
217 Vector { _handler: CAN2_RX0 },
218 Vector { _handler: CAN2_RX1 },
219 Vector { _handler: CAN2_SCE },
220 Vector { _handler: OTG_FS },
221 Vector {
222 _handler: DMA2_Stream5,
223 },
224 Vector {
225 _handler: DMA2_Stream6,
226 },
227 Vector {
228 _handler: DMA2_Stream7,
229 },
230 Vector { _handler: USART6 },
231 Vector { _handler: I2C3_EV },
232 Vector { _handler: I2C3_ER },
233 Vector {
234 _handler: OTG_HS_EP1_OUT,
235 },
236 Vector {
237 _handler: OTG_HS_EP1_IN,
238 },
239 Vector {
240 _handler: OTG_HS_WKUP,
241 },
242 Vector { _handler: OTG_HS },
243 Vector { _handler: DCMI },
244 Vector { _handler: CRYP },
245 Vector { _handler: HASH_RNG },
246 Vector { _handler: FPU },
247 Vector { _handler: UART7 },
248 Vector { _handler: UART8 },
249 Vector { _handler: SPI4 },
250 Vector { _handler: SPI5 },
251 Vector { _handler: SPI6 },
252 Vector { _handler: SAI1 },
253 Vector { _handler: LCD_TFT },
254 Vector {
255 _handler: LCD_TFT_1,
256 },
257 Vector { _handler: DMA2D },
258];
259
260#[repr(u16)]
262#[derive(Copy, Clone, Debug, PartialEq, Eq)]
263#[allow(non_camel_case_types)]
264pub enum Interrupt {
265 WWDG = 0,
267 PVD = 1,
269 TAMP_STAMP = 2,
271 RTC_WKUP = 3,
273 FLASH = 4,
275 RCC = 5,
277 EXTI0 = 6,
279 EXTI1 = 7,
281 EXTI2 = 8,
283 EXTI3 = 9,
285 EXTI4 = 10,
287 DMA1_Stream0 = 11,
289 DMA1_Stream1 = 12,
291 DMA1_Stream2 = 13,
293 DMA1_Stream3 = 14,
295 DMA1_Stream4 = 15,
297 DMA1_Stream5 = 16,
299 DMA1_Stream6 = 17,
301 ADC = 18,
303 CAN1_TX = 19,
305 CAN1_RX0 = 20,
307 CAN1_RX1 = 21,
309 CAN1_SCE = 22,
311 EXTI9_5 = 23,
313 TIM1_BRK_TIM9 = 24,
315 TIM1_UP_TIM10 = 25,
317 TIM1_TRG_COM_TIM11 = 26,
319 TIM1_CC = 27,
321 TIM2 = 28,
323 TIM3 = 29,
325 TIM4 = 30,
327 I2C1_EV = 31,
329 I2C1_ER = 32,
331 I2C2_EV = 33,
333 I2C2_ER = 34,
335 SPI1 = 35,
337 SPI2 = 36,
339 USART1 = 37,
341 USART2 = 38,
343 USART3 = 39,
345 EXTI15_10 = 40,
347 RTC_Alarm = 41,
349 OTG_FS_WKUP = 42,
351 TIM8_BRK_TIM12 = 43,
353 TIM8_UP_TIM13 = 44,
355 TIM8_TRG_COM_TIM14 = 45,
357 TIM8_CC = 46,
359 DMA1_Stream7 = 47,
361 FMC = 48,
363 SDIO = 49,
365 TIM5 = 50,
367 SPI3 = 51,
369 UART4 = 52,
371 UART5 = 53,
373 TIM6_DAC = 54,
375 TIM7 = 55,
377 DMA2_Stream0 = 56,
379 DMA2_Stream1 = 57,
381 DMA2_Stream2 = 58,
383 DMA2_Stream3 = 59,
385 DMA2_Stream4 = 60,
387 ETH = 61,
389 ETH_WKUP = 62,
391 CAN2_TX = 63,
393 CAN2_RX0 = 64,
395 CAN2_RX1 = 65,
397 CAN2_SCE = 66,
399 OTG_FS = 67,
401 DMA2_Stream5 = 68,
403 DMA2_Stream6 = 69,
405 DMA2_Stream7 = 70,
407 USART6 = 71,
409 I2C3_EV = 72,
411 I2C3_ER = 73,
413 OTG_HS_EP1_OUT = 74,
415 OTG_HS_EP1_IN = 75,
417 OTG_HS_WKUP = 76,
419 OTG_HS = 77,
421 DCMI = 78,
423 CRYP = 79,
425 HASH_RNG = 80,
427 FPU = 81,
429 UART7 = 82,
431 UART8 = 83,
433 SPI4 = 84,
435 SPI5 = 85,
437 SPI6 = 86,
439 SAI1 = 87,
441 LCD_TFT = 88,
443 LCD_TFT_1 = 89,
445 DMA2D = 90,
447}
448unsafe impl external_cortex_m::interrupt::InterruptNumber for Interrupt {
449 #[inline(always)]
450 fn number(self) -> u16 {
451 self as u16
452 }
453}