startup_gd32f3x0.s 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357
  1. ;/*!
  2. ; \file startup_gd32f3x0.s
  3. ; \brief start up file
  4. ;*/
  5. ;/*
  6. ; Copyright (C) 2017 GigaDevice
  7. ; 2017-06-06, V1.0.0, firmware for GD32F3x0
  8. ;*/
  9. MODULE ?cstartup
  10. ;; Forward declaration of sections.
  11. SECTION CSTACK:DATA:NOROOT(3)
  12. SECTION .intvec:CODE:NOROOT(2)
  13. EXTERN __iar_program_start
  14. EXTERN SystemInit
  15. PUBLIC __vector_table
  16. DATA
  17. __vector_table
  18. DCD sfe(CSTACK) ; top of stack
  19. DCD Reset_Handler ; Vector Number 1,Reset Handler
  20. DCD NMI_Handler ; Vector Number 2,NMI Handler
  21. DCD HardFault_Handler ; Vector Number 3,Hard Fault Handler
  22. DCD MemManage_Handler ; Vector Number 4,MPU Fault Handler
  23. DCD BusFault_Handler ; Vector Number 5,Bus Fault Handler
  24. DCD UsageFault_Handler ; Vector Number 6,Usage Fault Handler
  25. DCD 0 ; Reserved
  26. DCD 0 ; Reserved
  27. DCD 0 ; Reserved
  28. DCD 0 ; Reserved
  29. DCD SVC_Handler ; Vector Number 11,SVCall Handler
  30. DCD DebugMon_Handler ; Vector Number 12,Debug Monitor Handler
  31. DCD 0 ; Reserved
  32. DCD PendSV_Handler ; Vector Number 14,PendSV Handler
  33. DCD SysTick_Handler ; Vector Number 15,SysTick Handler
  34. ; External Interrupts
  35. DCD WWDGT_IRQHandler ; Vector Number 16,Window watchdog timer
  36. DCD LVD_IRQHandler ; Vector Number 17,LVD through EXTI Line detect
  37. DCD RTC_IRQHandler ; Vector Number 18,RTC through EXTI Line
  38. DCD FMC_IRQHandler ; Vector Number 19,FMC
  39. DCD RCU_IRQHandler ; Vector Number 20,RCU
  40. DCD EXTI0_1_IRQHandler ; Vector Number 21,EXTI Line 0 and EXTI Line 1
  41. DCD EXTI2_3_IRQHandler ; Vector Number 22,EXTI Line 2 and EXTI Line 3
  42. DCD EXTI4_15_IRQHandler ; Vector Number 23,EXTI Line 4 to EXTI Line 15
  43. DCD TSI_IRQHandler ; Vector Number 24,TSI
  44. DCD DMA_Channel0_IRQHandler ; Vector Number 25,DMA Channel 0
  45. DCD DMA_Channel1_2_IRQHandler ; Vector Number 26,DMA Channel 1 and DMA Channel 2
  46. DCD DMA_Channel3_4_IRQHandler ; Vector Number 27,DMA Channel 3 and DMA Channel 4
  47. DCD ADC_CMP_IRQHandler ; Vector Number 28,ADC and Comparator 1-2
  48. DCD TIMER0_BRK_UP_TRG_COM_IRQHandler ; Vector Number 29,TIMER0 Break, Update, Trigger and Commutation
  49. DCD TIMER0_CC_IRQHandler ; Vector Number 30,TIMER0 Capture Compare
  50. DCD TIMER1_IRQHandler ; Vector Number 31,TIMER1
  51. DCD TIMER2_IRQHandler ; Vector Number 32,TIMER2
  52. DCD TIMER5_DAC_IRQHandler ; Vector Number 33,TIMER5 and DAC
  53. DCD 0 ; Reserved
  54. DCD TIMER13_IRQHandler ; Vector Number 35,TIMER13
  55. DCD TIMER14_IRQHandler ; Vector Number 36,TIMER14
  56. DCD TIMER15_IRQHandler ; Vector Number 37,TIMER15
  57. DCD TIMER16_IRQHandler ; Vector Number 38,TIMER16
  58. DCD I2C0_EV_IRQHandler ; Vector Number 39,I2C0 Event
  59. DCD I2C1_EV_IRQHandler ; Vector Number 40,I2C1 Event
  60. DCD SPI0_IRQHandler ; Vector Number 41,SPI0
  61. DCD SPI1_IRQHandler ; Vector Number 42,SPI1
  62. DCD USART0_IRQHandler ; Vector Number 43,USART0
  63. DCD USART1_IRQHandler ; Vector Number 44,USART1
  64. DCD 0 ; Reserved
  65. DCD CEC_IRQHandler ; Vector Number 46,CEC
  66. DCD 0 ; Reserved
  67. DCD I2C0_ER_IRQHandler ; Vector Number 48,I2C0 Error
  68. DCD 0 ; Reserved
  69. DCD I2C1_ER_IRQHandler ; Vector Number 50,I2C1 Error
  70. DCD I2C2_EV_IRQHandler ; Vector Number 51,I2C2 Event
  71. DCD I2C2_ER_IRQHandler ; Vector Number 52,I2C2 Error
  72. DCD 0 ; Reserved
  73. DCD 0 ; Reserved
  74. DCD 0 ; Reserved
  75. DCD 0 ; Reserved
  76. DCD 0 ; Reserved
  77. DCD USBFS_WKUP_IRQHandler ; Vector Number 58,USBFS Wakeup
  78. DCD 0 ; Reserved
  79. DCD 0 ; Reserved
  80. DCD 0 ; Reserved
  81. DCD 0 ; Reserved
  82. DCD 0 ; Reserved
  83. DCD DMA_Channel5_6_IRQHandler ; Vector Number 64,DMA Channel5 and Channel6
  84. DCD 0 ; Reserved
  85. DCD 0 ; Reserved
  86. DCD SPI2_IRQHandler ; Vector Number 67,SPI2
  87. DCD 0 ; Reserved
  88. DCD 0 ; Reserved
  89. DCD 0 ; Reserved
  90. DCD 0 ; Reserved
  91. DCD 0 ; Reserved
  92. DCD 0 ; Reserved
  93. DCD 0 ; Reserved
  94. DCD 0 ; Reserved
  95. DCD 0 ; Reserved
  96. DCD 0 ; Reserved
  97. DCD 0 ; Reserved
  98. DCD 0 ; Reserved
  99. DCD 0 ; Reserved
  100. DCD 0 ; Reserved
  101. DCD 0 ; Reserved
  102. DCD USBFS_IRQHandler ; Vector Number 83,USBFS
  103. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  104. ;;
  105. ;; Default interrupt handlers.
  106. ;;
  107. THUMB
  108. PUBWEAK Reset_Handler
  109. SECTION .text:CODE:NOROOT:REORDER(2)
  110. Reset_Handler
  111. LDR R0, =SystemInit
  112. BLX R0
  113. LDR R0, =__iar_program_start
  114. BX R0
  115. PUBWEAK NMI_Handler
  116. SECTION .text:CODE:NOROOT:REORDER(1)
  117. NMI_Handler
  118. B NMI_Handler
  119. PUBWEAK HardFault_Handler
  120. SECTION .text:CODE:NOROOT:REORDER(1)
  121. HardFault_Handler
  122. B HardFault_Handler
  123. PUBWEAK MemManage_Handler
  124. SECTION .text:CODE:NOROOT:REORDER(1)
  125. MemManage_Handler
  126. B MemManage_Handler
  127. PUBWEAK BusFault_Handler
  128. SECTION .text:CODE:NOROOT:REORDER(1)
  129. BusFault_Handler
  130. B BusFault_Handler
  131. PUBWEAK UsageFault_Handler
  132. SECTION .text:CODE:NOROOT:REORDER(1)
  133. UsageFault_Handler
  134. B UsageFault_Handler
  135. PUBWEAK SVC_Handler
  136. SECTION .text:CODE:NOROOT:REORDER(1)
  137. SVC_Handler
  138. B SVC_Handler
  139. PUBWEAK DebugMon_Handler
  140. SECTION .text:CODE:NOROOT:REORDER(1)
  141. DebugMon_Handler
  142. B DebugMon_Handler
  143. PUBWEAK PendSV_Handler
  144. SECTION .text:CODE:NOROOT:REORDER(1)
  145. PendSV_Handler
  146. B PendSV_Handler
  147. PUBWEAK SysTick_Handler
  148. SECTION .text:CODE:NOROOT:REORDER(1)
  149. SysTick_Handler
  150. B SysTick_Handler
  151. PUBWEAK WWDGT_IRQHandler
  152. SECTION .text:CODE:NOROOT:REORDER(1)
  153. WWDGT_IRQHandler
  154. B WWDGT_IRQHandler
  155. PUBWEAK LVD_IRQHandler
  156. SECTION .text:CODE:NOROOT:REORDER(1)
  157. LVD_IRQHandler
  158. B LVD_IRQHandler
  159. PUBWEAK RTC_IRQHandler
  160. SECTION .text:CODE:NOROOT:REORDER(1)
  161. RTC_IRQHandler
  162. B RTC_IRQHandler
  163. PUBWEAK FMC_IRQHandler
  164. SECTION .text:CODE:NOROOT:REORDER(1)
  165. FMC_IRQHandler
  166. B FMC_IRQHandler
  167. PUBWEAK RCU_IRQHandler
  168. SECTION .text:CODE:NOROOT:REORDER(1)
  169. RCU_IRQHandler
  170. B RCU_IRQHandler
  171. PUBWEAK EXTI0_1_IRQHandler
  172. SECTION .text:CODE:NOROOT:REORDER(1)
  173. EXTI0_1_IRQHandler
  174. B EXTI0_1_IRQHandler
  175. PUBWEAK EXTI2_3_IRQHandler
  176. SECTION .text:CODE:NOROOT:REORDER(1)
  177. EXTI2_3_IRQHandler
  178. B EXTI2_3_IRQHandler
  179. PUBWEAK EXTI4_15_IRQHandler
  180. SECTION .text:CODE:NOROOT:REORDER(1)
  181. EXTI4_15_IRQHandler
  182. B EXTI4_15_IRQHandler
  183. PUBWEAK TSI_IRQHandler
  184. SECTION .text:CODE:NOROOT:REORDER(1)
  185. TSI_IRQHandler
  186. B TSI_IRQHandler
  187. PUBWEAK DMA_Channel0_IRQHandler
  188. SECTION .text:CODE:NOROOT:REORDER(1)
  189. DMA_Channel0_IRQHandler
  190. B DMA_Channel0_IRQHandler
  191. PUBWEAK DMA_Channel1_2_IRQHandler
  192. SECTION .text:CODE:NOROOT:REORDER(1)
  193. DMA_Channel1_2_IRQHandler
  194. B DMA_Channel1_2_IRQHandler
  195. PUBWEAK DMA_Channel3_4_IRQHandler
  196. SECTION .text:CODE:NOROOT:REORDER(1)
  197. DMA_Channel3_4_IRQHandler
  198. B DMA_Channel3_4_IRQHandler
  199. PUBWEAK ADC_CMP_IRQHandler
  200. SECTION .text:CODE:NOROOT:REORDER(1)
  201. ADC_CMP_IRQHandler
  202. B ADC_CMP_IRQHandler
  203. PUBWEAK TIMER0_BRK_UP_TRG_COM_IRQHandler
  204. SECTION .text:CODE:NOROOT:REORDER(1)
  205. TIMER0_BRK_UP_TRG_COM_IRQHandler
  206. B TIMER0_BRK_UP_TRG_COM_IRQHandler
  207. PUBWEAK TIMER0_CC_IRQHandler
  208. SECTION .text:CODE:NOROOT:REORDER(1)
  209. TIMER0_CC_IRQHandler
  210. B TIMER0_CC_IRQHandler
  211. PUBWEAK TIMER1_IRQHandler
  212. SECTION .text:CODE:NOROOT:REORDER(1)
  213. TIMER1_IRQHandler
  214. B TIMER1_IRQHandler
  215. PUBWEAK TIMER2_IRQHandler
  216. SECTION .text:CODE:NOROOT:REORDER(1)
  217. TIMER2_IRQHandler
  218. B TIMER2_IRQHandler
  219. PUBWEAK TIMER5_DAC_IRQHandler
  220. SECTION .text:CODE:NOROOT:REORDER(1)
  221. TIMER5_DAC_IRQHandler
  222. B TIMER5_DAC_IRQHandler
  223. PUBWEAK TIMER13_IRQHandler
  224. SECTION .text:CODE:NOROOT:REORDER(1)
  225. TIMER13_IRQHandler
  226. B TIMER13_IRQHandler
  227. PUBWEAK TIMER14_IRQHandler
  228. SECTION .text:CODE:NOROOT:REORDER(1)
  229. TIMER14_IRQHandler
  230. B TIMER14_IRQHandler
  231. PUBWEAK TIMER15_IRQHandler
  232. SECTION .text:CODE:NOROOT:REORDER(1)
  233. TIMER15_IRQHandler
  234. B TIMER15_IRQHandler
  235. PUBWEAK TIMER16_IRQHandler
  236. SECTION .text:CODE:NOROOT:REORDER(1)
  237. TIMER16_IRQHandler
  238. B TIMER16_IRQHandler
  239. PUBWEAK I2C0_EV_IRQHandler
  240. SECTION .text:CODE:NOROOT:REORDER(1)
  241. I2C0_EV_IRQHandler
  242. B I2C0_EV_IRQHandler
  243. PUBWEAK I2C1_EV_IRQHandler
  244. SECTION .text:CODE:NOROOT:REORDER(1)
  245. I2C1_EV_IRQHandler
  246. B I2C1_EV_IRQHandler
  247. PUBWEAK SPI0_IRQHandler
  248. SECTION .text:CODE:NOROOT:REORDER(1)
  249. SPI0_IRQHandler
  250. B SPI0_IRQHandler
  251. PUBWEAK SPI1_IRQHandler
  252. SECTION .text:CODE:NOROOT:REORDER(1)
  253. SPI1_IRQHandler
  254. B SPI1_IRQHandler
  255. PUBWEAK USART0_IRQHandler
  256. SECTION .text:CODE:NOROOT:REORDER(1)
  257. USART0_IRQHandler
  258. B USART0_IRQHandler
  259. PUBWEAK USART1_IRQHandler
  260. SECTION .text:CODE:NOROOT:REORDER(1)
  261. USART1_IRQHandler
  262. B USART1_IRQHandler
  263. PUBWEAK CEC_IRQHandler
  264. SECTION .text:CODE:NOROOT:REORDER(1)
  265. CEC_IRQHandler
  266. B CEC_IRQHandler
  267. PUBWEAK I2C0_ER_IRQHandler
  268. SECTION .text:CODE:NOROOT:REORDER(1)
  269. I2C0_ER_IRQHandler
  270. B I2C0_ER_IRQHandler
  271. PUBWEAK I2C1_ER_IRQHandler
  272. SECTION .text:CODE:NOROOT:REORDER(1)
  273. I2C1_ER_IRQHandler
  274. B I2C1_ER_IRQHandler
  275. PUBWEAK I2C2_EV_IRQHandler
  276. SECTION .text:CODE:NOROOT:REORDER(1)
  277. I2C2_EV_IRQHandler
  278. B I2C2_EV_IRQHandler
  279. PUBWEAK I2C2_ER_IRQHandler
  280. SECTION .text:CODE:NOROOT:REORDER(1)
  281. I2C2_ER_IRQHandler
  282. B I2C2_ER_IRQHandler
  283. PUBWEAK USBFS_WKUP_IRQHandler
  284. SECTION .text:CODE:NOROOT:REORDER(1)
  285. USBFS_WKUP_IRQHandler
  286. B USBFS_WKUP_IRQHandler
  287. PUBWEAK DMA_Channel5_6_IRQHandler
  288. SECTION .text:CODE:NOROOT:REORDER(1)
  289. DMA_Channel5_6_IRQHandler
  290. B DMA_Channel5_6_IRQHandler
  291. PUBWEAK SPI2_IRQHandler
  292. SECTION .text:CODE:NOROOT:REORDER(1)
  293. SPI2_IRQHandler
  294. B SPI2_IRQHandler
  295. PUBWEAK USBFS_IRQHandler
  296. SECTION .text:CODE:NOROOT:REORDER(1)
  297. USBFS_IRQHandler
  298. B USBFS_IRQHandler
  299. END