extern "C" fn HardFault_Handler() { loop {} }
extern "C" fn NMI_Handler() { loop {} }
extern "C" fn Reset_Handler() { loop {} }

extern "C" {
    fn PendSV_Handler();
    fn SVCall_Handler();
    fn SysTick_Handler();
    fn ADC_Handler();
    fn DMA1_Channel1_Handler();
    fn DMA1_Channel2_3_Handler();
    fn DMAMUX_Handler();
    fn EXTI0_1_Handler();
    fn EXTI2_3_Handler();
    fn EXTI4_5_Handler();
    fn I2C_Handler();
    fn RCC_Handler();
    fn RTC_Handler();
    fn SPI_Handler();
    fn TIM14_Handler();
    fn TIM16_Handler();
    fn TIM17_Handler();
    fn TIM1_BRK_UP_TRG_COM_Handler();
    fn TIM1_CC_Handler();
    fn TIM3_Handler();
    fn USART1_Handler();
    fn USART2_Handler();
    fn WWDG_Handler();
}

static VECTOR_TABLE: [Option<unsafe extern "C" fn()>; 44] = [
    Some(Reset_Handler),
    Some(NMI_Handler),
    Some(HardFault_Handler),
    None,
    None,
    None,
    None,
    None,
    None,
    None,
    Some(SVCall_Handler),
    None,
    None,
    Some(PendSV_Handler),
    Some(SysTick_Handler),
    Some(WWDG_Handler),
    None,
    Some(RTC_Handler),
    None,
    Some(RCC_Handler),
    Some(EXTI0_1_Handler),
    Some(EXTI2_3_Handler),
    Some(EXTI4_5_Handler),
    None,
    Some(DMA1_Channel1_Handler),
    Some(DMA1_Channel2_3_Handler),
    Some(DMAMUX_Handler),
    Some(ADC_Handler),
    Some(TIM1_BRK_UP_TRG_COM_Handler),
    Some(TIM1_CC_Handler),
    None,
    Some(TIM3_Handler),
    None,
    None,
    Some(TIM14_Handler),
    None,
    Some(TIM16_Handler),
    Some(TIM17_Handler),
    Some(I2C_Handler),
    None,
    Some(SPI_Handler),
    None,
    Some(USART1_Handler),
    Some(USART2_Handler),
];
