extern crate bare_metal;
#[cfg(feature = "rt")]
extern "C" {
fn WWDG();
fn PVD();
fn TAMP_STAMP();
fn RTC_WKUP();
fn FLASH();
fn RCC();
fn EXTI0();
fn EXTI1();
fn EXTI2();
fn EXTI3();
fn EXTI4();
fn DMA1_Stream0();
fn DMA1_Stream1();
fn DMA1_Stream2();
fn DMA1_Stream3();
fn DMA1_Stream4();
fn DMA1_Stream5();
fn DMA1_Stream6();
fn ADC();
fn CAN1_TX();
fn CAN1_RX0();
fn CAN1_RX1();
fn CAN1_SCE();
fn EXTI9_5();
fn TIM1_BRK_TIM9();
fn TIM1_UP_TIM10();
fn TIM1_TRG_COM_TIM11();
fn TIM1_CC();
fn TIM2();
fn TIM3();
fn TIM4();
fn I2C1_EV();
fn I2C1_ER();
fn I2C2_EV();
fn I2C2_ER();
fn SPI1();
fn SPI2();
fn USART1();
fn USART2();
fn USART3();
fn EXTI15_10();
fn RTC_ALARM();
fn OTG_FS_WKUP();
fn TIM8_BRK_TIM12();
fn TIM8_UP_TIM13();
fn TIM8_TRG_COM_TIM14();
fn TIM8_CC();
fn DMA1_Stream7();
fn FMC();
fn SDMMC1();
fn TIM5();
fn SPI3();
fn UART4();
fn UART5();
fn TIM6_DAC();
fn TIM7();
fn DMA2_Stream0();
fn DMA2_Stream1();
fn DMA2_Stream2();
fn DMA2_Stream3();
fn DMA2_Stream4();
fn ETH();
fn ETH_WKUP();
fn CAN2_TX();
fn CAN2_RX0();
fn CAN2_RX1();
fn CAN2_SCE();
fn OTG_FS();
fn DMA2_Stream5();
fn DMA2_Stream6();
fn DMA2_Stream7();
fn USART6();
fn I2C3_EV();
fn I2C3_ER();
fn OTG_HS_EP1_OUT();
fn OTG_HS_EP1_IN();
fn OTG_HS_WKUP();
fn OTG_HS();
fn DCMI();
fn CRYP();
fn HASH_RNG();
fn FPU();
fn UART7();
fn UART8();
fn SPI4();
fn SPI5();
fn SPI6();
fn SAI1();
fn LTDC();
fn LTDC_ER();
fn DMA2D();
fn SAI2();
fn QuadSPI();
fn LP_Timer1();
fn HDMI_CEC();
fn I2C4_EV();
fn I2C4_ER();
fn SPDIFRX();
fn DSIHOST();
fn DFSDM1_FLT0();
fn DFSDM1_FLT1();
fn DFSDM1_FLT2();
fn DFSDM1_FLT3();
fn SDMMC2();
fn CAN3_TX();
fn CAN3_RX0();
fn CAN3_RX1();
fn CAN3_SCE();
fn JPEG();
fn MDIOS();
}
#[doc(hidden)]
pub union Vector {
_handler: unsafe extern "C" fn(),
_reserved: u32,
}
#[cfg(feature = "rt")]
#[doc(hidden)]
#[link_section = ".vector_table.interrupts"]
#[no_mangle]
pub static __INTERRUPTS: [Vector; 110] = [
Vector { _handler: WWDG },
Vector { _handler: PVD },
Vector {
_handler: TAMP_STAMP,
},
Vector { _handler: RTC_WKUP },
Vector { _handler: FLASH },
Vector { _handler: RCC },
Vector { _handler: EXTI0 },
Vector { _handler: EXTI1 },
Vector { _handler: EXTI2 },
Vector { _handler: EXTI3 },
Vector { _handler: EXTI4 },
Vector {
_handler: DMA1_Stream0,
},
Vector {
_handler: DMA1_Stream1,
},
Vector {
_handler: DMA1_Stream2,
},
Vector {
_handler: DMA1_Stream3,
},
Vector {
_handler: DMA1_Stream4,
},
Vector {
_handler: DMA1_Stream5,
},
Vector {
_handler: DMA1_Stream6,
},
Vector { _handler: ADC },
Vector { _handler: CAN1_TX },
Vector { _handler: CAN1_RX0 },
Vector { _handler: CAN1_RX1 },
Vector { _handler: CAN1_SCE },
Vector { _handler: EXTI9_5 },
Vector {
_handler: TIM1_BRK_TIM9,
},
Vector {
_handler: TIM1_UP_TIM10,
},
Vector {
_handler: TIM1_TRG_COM_TIM11,
},
Vector { _handler: TIM1_CC },
Vector { _handler: TIM2 },
Vector { _handler: TIM3 },
Vector { _handler: TIM4 },
Vector { _handler: I2C1_EV },
Vector { _handler: I2C1_ER },
Vector { _handler: I2C2_EV },
Vector { _handler: I2C2_ER },
Vector { _handler: SPI1 },
Vector { _handler: SPI2 },
Vector { _handler: USART1 },
Vector { _handler: USART2 },
Vector { _handler: USART3 },
Vector {
_handler: EXTI15_10,
},
Vector {
_handler: RTC_ALARM,
},
Vector {
_handler: OTG_FS_WKUP,
},
Vector {
_handler: TIM8_BRK_TIM12,
},
Vector {
_handler: TIM8_UP_TIM13,
},
Vector {
_handler: TIM8_TRG_COM_TIM14,
},
Vector { _handler: TIM8_CC },
Vector {
_handler: DMA1_Stream7,
},
Vector { _handler: FMC },
Vector { _handler: SDMMC1 },
Vector { _handler: TIM5 },
Vector { _handler: SPI3 },
Vector { _handler: UART4 },
Vector { _handler: UART5 },
Vector { _handler: TIM6_DAC },
Vector { _handler: TIM7 },
Vector {
_handler: DMA2_Stream0,
},
Vector {
_handler: DMA2_Stream1,
},
Vector {
_handler: DMA2_Stream2,
},
Vector {
_handler: DMA2_Stream3,
},
Vector {
_handler: DMA2_Stream4,
},
Vector { _handler: ETH },
Vector { _handler: ETH_WKUP },
Vector { _handler: CAN2_TX },
Vector { _handler: CAN2_RX0 },
Vector { _handler: CAN2_RX1 },
Vector { _handler: CAN2_SCE },
Vector { _handler: OTG_FS },
Vector {
_handler: DMA2_Stream5,
},
Vector {
_handler: DMA2_Stream6,
},
Vector {
_handler: DMA2_Stream7,
},
Vector { _handler: USART6 },
Vector { _handler: I2C3_EV },
Vector { _handler: I2C3_ER },
Vector {
_handler: OTG_HS_EP1_OUT,
},
Vector {
_handler: OTG_HS_EP1_IN,
},
Vector {
_handler: OTG_HS_WKUP,
},
Vector { _handler: OTG_HS },
Vector { _handler: DCMI },
Vector { _handler: CRYP },
Vector { _handler: HASH_RNG },
Vector { _handler: FPU },
Vector { _handler: UART7 },
Vector { _handler: UART8 },
Vector { _handler: SPI4 },
Vector { _handler: SPI5 },
Vector { _handler: SPI6 },
Vector { _handler: SAI1 },
Vector { _handler: LTDC },
Vector { _handler: LTDC_ER },
Vector { _handler: DMA2D },
Vector { _handler: SAI2 },
Vector { _handler: QuadSPI },
Vector {
_handler: LP_Timer1,
},
Vector { _handler: HDMI_CEC },
Vector { _handler: I2C4_EV },
Vector { _handler: I2C4_ER },
Vector { _handler: SPDIFRX },
Vector { _handler: DSIHOST },
Vector {
_handler: DFSDM1_FLT0,
},
Vector {
_handler: DFSDM1_FLT1,
},
Vector {
_handler: DFSDM1_FLT2,
},
Vector {
_handler: DFSDM1_FLT3,
},
Vector { _handler: SDMMC2 },
Vector { _handler: CAN3_TX },
Vector { _handler: CAN3_RX0 },
Vector { _handler: CAN3_RX1 },
Vector { _handler: CAN3_SCE },
Vector { _handler: JPEG },
Vector { _handler: MDIOS },
];
#[repr(u8)]
#[derive(Clone, Copy)]
#[allow(non_camel_case_types)]
pub enum Interrupt {
WWDG = 0,
PVD = 1,
TAMP_STAMP = 2,
RTC_WKUP = 3,
FLASH = 4,
RCC = 5,
EXTI0 = 6,
EXTI1 = 7,
EXTI2 = 8,
EXTI3 = 9,
EXTI4 = 10,
DMA1_Stream0 = 11,
DMA1_Stream1 = 12,
DMA1_Stream2 = 13,
DMA1_Stream3 = 14,
DMA1_Stream4 = 15,
DMA1_Stream5 = 16,
DMA1_Stream6 = 17,
ADC = 18,
CAN1_TX = 19,
CAN1_RX0 = 20,
CAN1_RX1 = 21,
CAN1_SCE = 22,
EXTI9_5 = 23,
TIM1_BRK_TIM9 = 24,
TIM1_UP_TIM10 = 25,
TIM1_TRG_COM_TIM11 = 26,
TIM1_CC = 27,
TIM2 = 28,
TIM3 = 29,
TIM4 = 30,
I2C1_EV = 31,
I2C1_ER = 32,
I2C2_EV = 33,
I2C2_ER = 34,
SPI1 = 35,
SPI2 = 36,
USART1 = 37,
USART2 = 38,
USART3 = 39,
EXTI15_10 = 40,
RTC_ALARM = 41,
OTG_FS_WKUP = 42,
TIM8_BRK_TIM12 = 43,
TIM8_UP_TIM13 = 44,
TIM8_TRG_COM_TIM14 = 45,
TIM8_CC = 46,
DMA1_Stream7 = 47,
FMC = 48,
SDMMC1 = 49,
TIM5 = 50,
SPI3 = 51,
UART4 = 52,
UART5 = 53,
TIM6_DAC = 54,
TIM7 = 55,
DMA2_Stream0 = 56,
DMA2_Stream1 = 57,
DMA2_Stream2 = 58,
DMA2_Stream3 = 59,
DMA2_Stream4 = 60,
ETH = 61,
ETH_WKUP = 62,
CAN2_TX = 63,
CAN2_RX0 = 64,
CAN2_RX1 = 65,
CAN2_SCE = 66,
OTG_FS = 67,
DMA2_Stream5 = 68,
DMA2_Stream6 = 69,
DMA2_Stream7 = 70,
USART6 = 71,
I2C3_EV = 72,
I2C3_ER = 73,
OTG_HS_EP1_OUT = 74,
OTG_HS_EP1_IN = 75,
OTG_HS_WKUP = 76,
OTG_HS = 77,
DCMI = 78,
CRYP = 79,
HASH_RNG = 80,
FPU = 81,
UART7 = 82,
UART8 = 83,
SPI4 = 84,
SPI5 = 85,
SPI6 = 86,
SAI1 = 87,
LTDC = 88,
LTDC_ER = 89,
DMA2D = 90,
SAI2 = 91,
QuadSPI = 92,
LP_Timer1 = 93,
HDMI_CEC = 94,
I2C4_EV = 95,
I2C4_ER = 96,
SPDIFRX = 97,
DSIHOST = 98,
DFSDM1_FLT0 = 99,
DFSDM1_FLT1 = 100,
DFSDM1_FLT2 = 101,
DFSDM1_FLT3 = 102,
SDMMC2 = 103,
CAN3_TX = 104,
CAN3_RX0 = 105,
CAN3_RX1 = 106,
CAN3_SCE = 107,
JPEG = 108,
MDIOS = 109,
}
unsafe impl bare_metal::Nr for Interrupt {
#[inline]
fn nr(&self) -> u8 {
*self as u8
}
}