text: /**
    ******************************************************************************
    * @file    Project/STM32F10x_StdPeriph_Template/stm32f10x_it.c
    * @author  MCD Application Team
    * @version V3.5.0
    * @date    08-April-2011
    * @brief   Main Interrupt Service Routines.
    *          This file provides template for all exceptions handler and
    *          peripherals interrupt service routine.
    ******************************************************************************
    * @attention
    *
    * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
    * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
    * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
    * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
    * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
    * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
    *
    * <h2><center>&copy; COPYRIGHT 2011 STMicroelectronics</center></h2>
    ******************************************************************************
    */
  
  /* Includes ------------------------------------------------------------------*/
  #include "stm32f10x_it.h"
  #include <board.h>
  #include <rtthread.h>
  
  /** @addtogroup Template_Project
    * @{
    */
  
  /* Private typedef -----------------------------------------------------------*/
  /* Private define ------------------------------------------------------------*/
  /* Private macro -------------------------------------------------------------*/
  /* Private variables ---------------------------------------------------------*/
  /* Private function prototypes -----------------------------------------------*/
  /* Private functions ---------------------------------------------------------*/
  
  /******************************************************************************/
  /*            Cortex-M3 Processor Exceptions Handlers                         */
  /******************************************************************************/
  
  /**
    * @brief   This function handles NMI exception.
    * @param  None
    * @retval None
    */
  void NMI_Handler(void)
  {
  }
  
  /**
    * @brief  This function handles Memory Manage exception.
    * @param  None
    * @retval None
    */
  void MemManage_Handler(void)
  {
    /* Go to infinite loop when Memory Manage exception occurs */
    while (1)
    {
    }
  }
  
  /**
    * @brief  This function handles Bus Fault exception.
    * @param  None
    * @retval None
    */
  void BusFault_Handler(void)
  {
    /* Go to infinite loop when Bus Fault exception occurs */
    while (1)
    {
    }
  }
  
  /**
    * @brief  This function handles Usage Fault exception.
    * @param  None
    * @retval None
    */
  void UsageFault_Handler(void)
  {
    /* Go to infinite loop when Usage Fault exception occurs */
    while (1)
    {
    }
  }
  
  /**
    * @brief  This function handles SVCall exception.
    * @param  None
    * @retval None
    */
  void SVC_Handler(void)
  {
  }
  
  /**
    * @brief  This function handles Debug Monitor exception.
    * @param  None
    * @retval None
    */
  void DebugMon_Handler(void)
  {
  }
  
  /******************************************************************************/
  /*                 STM32F10x Peripherals Interrupt Handlers                   */
  /*  Add here the Interrupt Handler for the used peripheral(s) (PPP), for the  */
  /*  available peripheral interrupt handler's name please refer to the startup */
  /*  file (startup_stm32f10x_xx.s).                                            */
  /******************************************************************************/
  
  /*******************************************************************************
  * Function Name  : USART1_IRQHandler
  * Description    : This function handles USART1 global interrupt request.
  * Input          : None
  * Output         : None
  * Return         : None
  *******************************************************************************/
  void USART1_IRQHandler(void)
  {
  #ifdef RT_USING_UART1
      extern struct rt_device uart1_device;
  	extern void rt_hw_serial_isr(struct rt_device *device);
  
      /* enter interrupt */
      rt_interrupt_enter();
  
      rt_hw_serial_isr(&uart1_device);
  
      /* leave interrupt */
      rt_interrupt_leave();
  #endif
  }
  
  /*******************************************************************************
  * Function Name  : USART2_IRQHandler
  * Description    : This function handles USART2 global interrupt request.
  * Input          : None
  * Output         : None
  * Return         : None
  *******************************************************************************/
  void USART2_IRQHandler(void)
  {
  #ifdef RT_USING_UART2
      extern struct rt_device uart2_device;
  	extern void rt_hw_serial_isr(struct rt_device *device);
  
      /* enter interrupt */
      rt_interrupt_enter();
  
      rt_hw_serial_isr(&uart2_device);
  
      /* leave interrupt */
      rt_interrupt_leave();
  #endif
  }
  
  /*******************************************************************************
  * Function Name  : USART3_IRQHandler
  * Description    : This function handles USART3 global interrupt request.
  * Input          : None
  * Output         : None
  * Return         : None
  *******************************************************************************/
  void USART3_IRQHandler(void)
  {
  #ifdef RT_USING_UART3
      extern struct rt_device uart3_device;
  	extern void rt_hw_serial_isr(struct rt_device *device);
  
      /* enter interrupt */
      rt_interrupt_enter();
  
      rt_hw_serial_isr(&uart3_device);
  
      /* leave interrupt */
      rt_interrupt_leave();
  #endif
  }
  
  /**
    * @}
    */
  
  
  /******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/
  