/*! \file gd32f3x0_it.c \brief interrupt service routines */ /* Copyright (C) 2017 GigaDevice 2017-06-06, V1.0.0, firmware for GD32F3x0 */ #include "gd32f3x0_it.h" #include "gd32f3x0_eval.h" #include "main.h" /*! \brief this function handles NMI exception \param[in] none \param[out] none \retval none */ void NMI_Handler(void) { } /*! \brief this function handles HardFault exception \param[in] none \param[out] none \retval none */ void HardFault_Handler(void) { /* if Hard Fault exception occurs, go to infinite loop */ while (1); } /*! \brief this function handles MemManage exception \param[in] none \param[out] none \retval none */ void MemManage_Handler(void) { /* if Memory Manage exception occurs, go to infinite loop */ while (1); } /*! \brief this function handles BusFault exception \param[in] none \param[out] none \retval none */ void BusFault_Handler(void) { /* if Bus Fault exception occurs, go to infinite loop */ while (1); } /*! \brief this function handles UsageFault exception \param[in] none \param[out] none \retval none */ void UsageFault_Handler(void) { /* if Usage Fault exception occurs, go to infinite loop */ while (1); } /*! \brief this function handles SVC exception \param[in] none \param[out] none \retval none */ void SVC_Handler(void) { } /*! \brief this function handles DebugMon exception \param[in] none \param[out] none \retval none */ void DebugMon_Handler(void) { } /*! \brief this function handles PendSV exception \param[in] none \param[out] none \retval none */ void PendSV_Handler(void) { } /*! \brief this function handles SysTick exception \param[in] none \param[out] none \retval none */ void SysTick_Handler(void) { } /*! \brief this function handles external lines 0 to 1 interrupt request \param[in] none \param[out] none \retval none */ void EXTI0_1_IRQHandler(void) { if(RESET != exti_interrupt_flag_get(WAKEUP_KEY_EXTI_LINE)){ uint16_t wp_pages_bitmap = ((uint16_t)(WRITE_PROTECT_PAGES(WP_PAGES_BIT_1) | WRITE_PROTECT_PAGES(WP_PAGES_BIT_2) | WRITE_PROTECT_PAGES(WP_PAGES_BIT_3))); /* enable target pages write protection */ fmc_ob_write_protection_enable(wp_pages_bitmap); /* clear the interrupt flag */ exti_interrupt_flag_clear(WAKEUP_KEY_EXTI_LINE); } } /*! \brief this function handles external lines 4 to 15 interrupt request \param[in] none \param[out] none \retval none */ void EXTI4_15_IRQHandler(void) { if(RESET != exti_interrupt_flag_get(TAMPER_KEY_EXTI_LINE)){ uint16_t wp_pages_bitmap = ((uint16_t)(WRITE_PROTECT_PAGES(WP_PAGES_BIT_1) | WRITE_PROTECT_PAGES(WP_PAGES_BIT_3))); /* disable target pages write protection */ fmc_ob_write_protection_disable(wp_pages_bitmap); /* clear the interrupt flag */ exti_interrupt_flag_clear(TAMPER_KEY_EXTI_LINE); } if(RESET != exti_interrupt_flag_get(USER_KEY_EXTI_LINE)){ /* disable target pages write protection */ fmc_ob_write_protection_disable(WP_ALL_PAGES_BITMAP); /* clear the interrupt flag */ exti_interrupt_flag_clear(USER_KEY_EXTI_LINE); } }