ch32v30x_it.c 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /********************************** (C) COPYRIGHT *******************************
  2. * File Name : ch32v30x_it.c
  3. * Author : WCH
  4. * Version : V1.0.0
  5. * Date : 2021/06/06
  6. * Description : Main Interrupt Service Routines.
  7. * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
  8. * SPDX-License-Identifier: Apache-2.0
  9. *******************************************************************************/
  10. #include "ch32v30x_it.h"
  11. #include "board.h"
  12. #include <rtthread.h>
  13. void NMI_Handler(void) __attribute__((interrupt("WCH-Interrupt-fast")));
  14. void HardFault_Handler(void) __attribute__((interrupt("WCH-Interrupt-fast")));
  15. /*********************************************************************
  16. * @fn NMI_Handler
  17. *
  18. * @brief This function handles NMI exception.
  19. *
  20. * @return none
  21. */
  22. void NMI_Handler(void)
  23. {
  24. GET_INT_SP();
  25. rt_interrupt_enter();
  26. rt_kprintf(" NMI Handler\r\n");
  27. rt_interrupt_leave();
  28. FREE_INT_SP();
  29. }
  30. /*********************************************************************
  31. * @fn HardFault_Handler
  32. *
  33. * @brief This function handles Hard Fault exception.
  34. *
  35. * @return none
  36. */
  37. void HardFault_Handler(void)
  38. {
  39. GET_INT_SP();
  40. rt_interrupt_enter();
  41. rt_kprintf(" hardfult\r\n");
  42. rt_kprintf("mepc:%08x\r\n",__get_MEPC());
  43. rt_kprintf("mcause:%08x\r\n",__get_MCAUSE());
  44. rt_kprintf("mtval:%08x\r\n",__get_MTVAL());
  45. while(1);
  46. rt_interrupt_leave();
  47. FREE_INT_SP();
  48. }