isr_tab.s 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. /*
  2. * File : isr_tab.s
  3. * This file is part of RT-Thread RTOS
  4. * COPYRIGHT (C) 2021, RT-Thread Development Team
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2021-01-02 iysheng first implementation
  9. */
  10. .syntax unified
  11. .cpu cortex-m3
  12. .fpu softvfp
  13. .thumb
  14. .global g_isr_vectors
  15. .section .isr_vector,"a",%progbits
  16. .type g_isr_vectors, STT_OBJECT
  17. .weak Reset_Handler
  18. g_isr_vectors:
  19. .word _estack /* Top of Stack */
  20. .word Reset_Handler /* Reset Handler */
  21. .word NMI_Handler /* NMI Handler */
  22. .word HardFault_Handler /* Hard Fault Handler */
  23. .word MemManage_Handler /* MPU Fault Handler */
  24. .word BusFault_Handler /* Bus Fault Handler */
  25. .word UsageFault_Handler /* Usage Fault Handler */
  26. .word 0 /* Reserved */
  27. .word 0 /* Reserved */
  28. .word 0 /* Reserved */
  29. .word 0 /* Reserved */
  30. .word SVC_Handler /* SVCall Handler */
  31. .word DebugMon_Handler /* Debug Monitor Handler */
  32. .word 0 /* Reserved */
  33. .word PendSV_Handler /* PendSV Handler */
  34. .word SysTick_Handler /* SysTick Handler */
  35. /* external interrupts handler */
  36. .word WWDGT_IRQHandler /* 16:Window Watchdog Timer */
  37. .word LVD_IRQHandler /* 17:LVD through EXTI Line detect */
  38. .word TAMPER_IRQHandler /* 18:Tamper through EXTI Line detect */
  39. .word RTC_IRQHandler /* 19:RTC through EXTI Line */
  40. .word FMC_IRQHandler /* 20:FMC */
  41. .word RCU_CTC_IRQHandler /* 21:RCU and CTC */
  42. .word EXTI0_IRQHandler /* 22:EXTI Line 0 */
  43. .word EXTI1_IRQHandler /* 23:EXTI Line 1 */
  44. .word EXTI2_IRQHandler /* 24:EXTI Line 2 */
  45. .word EXTI3_IRQHandler /* 25:EXTI Line 3 */
  46. .word EXTI4_IRQHandler /* 26:EXTI Line 4 */
  47. .word DMA0_Channel0_IRQHandler /* 27:DMA0 Channel0 */
  48. .word DMA0_Channel1_IRQHandler /* 28:DMA0 Channel1 */
  49. .word DMA0_Channel2_IRQHandler /* 29:DMA0 Channel2 */
  50. .word DMA0_Channel3_IRQHandler /* 30:DMA0 Channel3 */
  51. .word DMA0_Channel4_IRQHandler /* 31:DMA0 Channel4 */
  52. .word DMA0_Channel5_IRQHandler /* 32:DMA0 Channel5 */
  53. .word DMA0_Channel6_IRQHandler /* 33:DMA0 Channel6 */
  54. .word ADC0_1_IRQHandler /* 34:ADC0 and ADC1 */
  55. .word USBD_HP_CAN0_TX_IRQHandler /* 35:USBD HP and CAN0 TX */
  56. .word USBD_LP_CAN0_RX0_IRQHandler /* 36:USBD LP and CAN0 RX0 */
  57. .word CAN0_RX1_IRQHandler /* 37:CAN0 RX1 */
  58. .word CAN0_EWMC_IRQHandler /* 38:CAN0 EWMC */
  59. .word EXTI5_9_IRQHandler /* 39:EXTI5 to EXTI9 */
  60. .word TIMER0_BRK_IRQHandler /* 40:TIMER0 Break */
  61. .word TIMER0_UP_IRQHandler /* 41:TIMER0 Update */
  62. .word TIMER0_TRG_CMT_IRQHandler /* 42:TIMER0 Trigger and Commutation */
  63. .word TIMER0_Channel_IRQHandler /* 43:TIMER0 Channel Capture Compare */
  64. .word TIMER1_IRQHandler /* 44:TIMER1 */
  65. .word TIMER2_IRQHandler /* 45:TIMER2 */
  66. .word TIMER3_IRQHandler /* 46:TIMER3 */
  67. .word I2C0_EV_IRQHandler /* 47:I2C0 Event */
  68. .word I2C0_ER_IRQHandler /* 48:I2C0 Error */
  69. .word I2C1_EV_IRQHandler /* 49:I2C1 Event */
  70. .word I2C1_ER_IRQHandler /* 50:I2C1 Error */
  71. .word SPI0_IRQHandler /* 51:SPI0 */
  72. .word SPI1_IRQHandler /* 52:SPI1 */
  73. .word USART0_IRQHandler /* 53:USART0 */
  74. .word USART1_IRQHandler /* 54:USART1 */
  75. .word USART2_IRQHandler /* 55:USART2 */
  76. .word EXTI10_15_IRQHandler /* 56:EXTI10 to EXTI15 */
  77. .word RTC_Alarm_IRQHandler /* 57:RTC Alarm */
  78. .word USBD_WKUP_IRQHandler /* 58:USBD Wakeup */
  79. .word TIMER7_BRK_IRQHandler /* 59:TIMER7 Break */
  80. .word TIMER7_UP_IRQHandler /* 60:TIMER7 Update */
  81. .word TIMER7_TRG_CMT_IRQHandler /* 61:TIMER7 Trigger and Commutation */
  82. .word TIMER7_Channel_IRQHandler /* 62:TIMER7 Channel Capture Compare */
  83. .word ADC2_IRQHandler /* 63:ADC2 */
  84. .word EXMC_IRQHandler /* 64:EXMC */
  85. .word SDIO_IRQHandler /* 65:SDIO */
  86. .word TIMER4_IRQHandler /* 66:TIMER4 */
  87. .word SPI2_IRQHandler /* 67:SPI2 */
  88. .word UART3_IRQHandler /* 68:UART3 */
  89. .word UART4_IRQHandler /* 69:UART4 */
  90. .word TIMER5_IRQHandler /* 70:TIMER5 */
  91. .word TIMER6_IRQHandler /* 71:TIMER6 */
  92. .word DMA1_Channel0_IRQHandler /* 72:DMA1 Channel0 */
  93. .word DMA1_Channel1_IRQHandler /* 73:DMA1 Channel1 */
  94. .word DMA1_Channel2_IRQHandler /* 74:DMA1 Channel2 */
  95. .word DMA1_Channel3_4_IRQHandler /* 75:DMA1 Channel3 and Channel4 */
  96. /* Exception Handlers */
  97. .weak NMI_Handler
  98. .type NMI_Handler, STT_FUNC
  99. NMI_Handler:
  100. b .
  101. .weak MemManage_Handler
  102. .type MemManage_Handler, STT_FUNC
  103. MemManage_Handler:
  104. b .
  105. .weak BusFault_Handler
  106. .type BusFault_Handler, STT_FUNC
  107. BusFault_Handler:
  108. b .
  109. .weak UsageFault_Handler
  110. .type UsageFault_Handler, STT_FUNC
  111. UsageFault_Handler:
  112. b .
  113. .weak SVC_Handler
  114. .type SVC_Handler, STT_FUNC
  115. SVC_Handler:
  116. b .
  117. .weak DebugMon_Handler
  118. .type DebugMon_Handler, STT_FUNC
  119. DebugMon_Handler:
  120. b .
  121. .weak PendSV_Handler
  122. .type PendSV_Handler, STT_FUNC
  123. PendSV_Handler:
  124. b .
  125. .weak SysTick_Handler
  126. .type SysTick_Handler, STT_FUNC
  127. SysTick_Handler:
  128. b .
  129. .global default_irq_handler
  130. .section .text.default_irq_handler,"ax",%progbits
  131. .type default_irq_handler, STT_FUNC
  132. default_irq_handler:
  133. b .
  134. .macro IRQ handler
  135. .weak \handler
  136. .set \handler, default_irq_handler
  137. .endm
  138. /* IQR Handler */
  139. IRQ WWDGT_IRQHandler
  140. IRQ LVD_IRQHandler
  141. IRQ TAMPER_IRQHandler
  142. IRQ RTC_IRQHandler
  143. IRQ FMC_IRQHandler
  144. IRQ RCU_CTC_IRQHandler
  145. IRQ EXTI0_IRQHandler
  146. IRQ EXTI1_IRQHandler
  147. IRQ EXTI2_IRQHandler
  148. IRQ EXTI3_IRQHandler
  149. IRQ EXTI4_IRQHandler
  150. IRQ DMA0_Channel0_IRQHandler
  151. IRQ DMA0_Channel1_IRQHandler
  152. IRQ DMA0_Channel2_IRQHandler
  153. IRQ DMA0_Channel3_IRQHandler
  154. IRQ DMA0_Channel4_IRQHandler
  155. IRQ DMA0_Channel5_IRQHandler
  156. IRQ DMA0_Channel6_IRQHandler
  157. IRQ ADC0_1_IRQHandler
  158. IRQ USBD_HP_CAN0_TX_IRQHandler
  159. IRQ USBD_LP_CAN0_RX0_IRQHandler
  160. IRQ CAN0_RX1_IRQHandler
  161. IRQ CAN0_EWMC_IRQHandler
  162. IRQ EXTI5_9_IRQHandler
  163. IRQ TIMER0_BRK_IRQHandler
  164. IRQ TIMER0_UP_IRQHandler
  165. IRQ TIMER0_TRG_CMT_IRQHandler
  166. IRQ TIMER0_Channel_IRQHandler
  167. IRQ TIMER1_IRQHandler
  168. IRQ TIMER2_IRQHandler
  169. IRQ TIMER3_IRQHandler
  170. IRQ I2C0_EV_IRQHandler
  171. IRQ I2C0_ER_IRQHandler
  172. IRQ I2C1_EV_IRQHandler
  173. IRQ I2C1_ER_IRQHandler
  174. IRQ SPI0_IRQHandler
  175. IRQ SPI1_IRQHandler
  176. IRQ USART0_IRQHandler
  177. IRQ USART1_IRQHandler
  178. IRQ USART2_IRQHandler
  179. IRQ EXTI10_15_IRQHandler
  180. IRQ RTC_Alarm_IRQHandler
  181. IRQ USBD_WKUP_IRQHandler
  182. IRQ TIMER7_BRK_IRQHandler
  183. IRQ TIMER7_UP_IRQHandler
  184. IRQ TIMER7_TRG_CMT_IRQHandler
  185. IRQ TIMER7_Channel_IRQHandler
  186. IRQ ADC2_IRQHandler
  187. IRQ EXMC_IRQHandler
  188. IRQ SDIO_IRQHandler
  189. IRQ TIMER4_IRQHandler
  190. IRQ SPI2_IRQHandler
  191. IRQ UART3_IRQHandler
  192. IRQ UART4_IRQHandler
  193. IRQ TIMER5_IRQHandler
  194. IRQ TIMER6_IRQHandler
  195. IRQ DMA1_Channel0_IRQHandler
  196. IRQ DMA1_Channel1_IRQHandler
  197. IRQ DMA1_Channel2_IRQHandler
  198. IRQ DMA1_Channel3_4_IRQHandler