/*!
    \file  gd32f30x_it.c
    \brief interrupt service routines
*/

/*
    Copyright (C) 2017 GigaDevice

    2017-07-28, V1.0.0, demo for GD32F30x
*/

#include "gd32f4xx_it.h"
#include "k_api.h"
#include <aos/aos.h>

//extern aos_sem_t g_rx_semaphore;
/*!
    \brief      this function handles NMI exception
    \param[in]  none
    \param[out] none
    \retval     none
*/
void NMI_Handler(void)
{
}
#include "stdio.h"
/*!
    \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 SysTick exception
    \param[in]  none
    \param[out] none
    \retval     none
*/
void SysTick_Handler(void)
{
    soc_systick_handle();
}

///*!
//    \brief      this function handles ethernet interrupt request
//    \param[in]  none
//    \param[out] none
//    \retval     none
//*/
//void ENET_IRQHandler(void)
//{
//    krhino_intrpt_enter();
//    /* frame received */
//    if(SET == enet_interrupt_flag_get(ENET_DMA_INT_FLAG_RS)){ 
//        /* give the semaphore to wakeup LwIP task */
//        aos_sem_signal(&g_rx_semaphore);
//    }

//    /* clear the enet DMA Rx interrupt pending bits */
//    enet_interrupt_flag_clear(ENET_DMA_INT_FLAG_RS_CLR);
//    enet_interrupt_flag_clear(ENET_DMA_INT_FLAG_NI_CLR);
//    
//    krhino_intrpt_exit();
//}
