flash_start.s 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396
  1. AREA |.flash_start|, CODE, READONLY ,ALIGN=4
  2. Reset_Handler PROC
  3. EXPORT Reset_Handler
  4. IMPORT __main
  5. LDR R0, =__main
  6. BX R0
  7. ENDP
  8. hard_fault_handler PROC
  9. EXPORT hard_fault_handler
  10. IMPORT HardFault_Handler
  11. ldr r0,=HardFault_Handler
  12. bx r0
  13. nop
  14. ENDP
  15. svc_handler PROC
  16. EXPORT svc_handler
  17. ldr r0,=SVC_IRQHandler
  18. bx r0
  19. nop
  20. ENDP
  21. pendsv_handler PROC
  22. EXPORT pendsv_handler
  23. IMPORT PendSV_Handler
  24. ldr r0,=PendSV_Handler
  25. bx r0
  26. nop
  27. ENDP
  28. systick PROC
  29. EXPORT systick
  30. IMPORT SysTick_Handler
  31. ldr r0,=SysTick_Handler
  32. bx r0
  33. nop
  34. ENDP
  35. irq0 PROC
  36. EXPORT irq0
  37. movs r0,#4*0
  38. b isr
  39. ENDP
  40. irq1 PROC
  41. EXPORT irq1
  42. movs r0,#4*1
  43. b isr
  44. ENDP
  45. irq2 PROC
  46. EXPORT irq2
  47. movs r0,#4*2
  48. b isr
  49. ENDP
  50. irq3 PROC
  51. EXPORT irq3
  52. movs r0,#4*3
  53. b isr
  54. ENDP
  55. irq4 PROC
  56. EXPORT irq4
  57. movs r0,#4*4
  58. b isr
  59. ENDP
  60. irq5 PROC
  61. EXPORT irq5
  62. movs r0,#4*5
  63. b isr
  64. ENDP
  65. irq6 PROC
  66. EXPORT irq6
  67. movs r0,#4*6
  68. b isr
  69. ENDP
  70. irq7 PROC
  71. EXPORT irq7
  72. movs r0,#4*7
  73. b isr
  74. ENDP
  75. irq8 PROC
  76. EXPORT irq8
  77. movs r0,#4*8
  78. b isr
  79. ENDP
  80. irq9 PROC
  81. EXPORT irq9
  82. movs r0,#4*9
  83. b isr
  84. ENDP
  85. irq10 PROC
  86. EXPORT irq10
  87. movs r0,#4*10
  88. b isr
  89. ENDP
  90. irq11 PROC
  91. EXPORT irq11
  92. movs r0,#4*11
  93. b isr
  94. ENDP
  95. irq12 PROC
  96. EXPORT irq12
  97. movs r0,#4*12
  98. b isr
  99. ENDP
  100. irq13 PROC
  101. EXPORT irq13
  102. movs r0,#4*13
  103. b isr
  104. ENDP
  105. irq14 PROC
  106. EXPORT irq14
  107. movs r0,#4*14
  108. b isr
  109. ENDP
  110. irq15 PROC
  111. EXPORT irq15
  112. movs r0,#4*15
  113. b isr
  114. ENDP
  115. irq16 PROC
  116. EXPORT irq16
  117. movs r0,#4*16
  118. b isr
  119. ENDP
  120. irq17 PROC
  121. EXPORT irq17
  122. movs r0,#4*17
  123. b isr
  124. ENDP
  125. irq18 PROC
  126. EXPORT irq18
  127. movs r0,#4*18
  128. b isr
  129. ENDP
  130. irq19 PROC
  131. EXPORT irq19
  132. movs r0,#4*19
  133. b isr
  134. ENDP
  135. irq20 PROC
  136. EXPORT irq20
  137. movs r0,#4*20
  138. b isr
  139. ENDP
  140. irq21 PROC
  141. EXPORT irq21
  142. movs r0,#4*21
  143. b isr
  144. ENDP
  145. irq22 PROC
  146. EXPORT irq22
  147. movs r0,#4*22
  148. b isr
  149. ENDP
  150. irq23 PROC
  151. EXPORT irq23
  152. movs r0,#4*23
  153. b isr
  154. ENDP
  155. irq24 PROC
  156. EXPORT irq24
  157. movs r0,#4*24
  158. b isr
  159. ENDP
  160. irq25 PROC
  161. EXPORT irq25
  162. movs r0,#4*25
  163. b isr
  164. ENDP
  165. irq26 PROC
  166. EXPORT irq26
  167. movs r0,#4*26
  168. b isr
  169. ENDP
  170. irq27 PROC
  171. EXPORT irq27
  172. movs r0,#4*27
  173. b isr
  174. ENDP
  175. irq28 PROC
  176. EXPORT irq28
  177. movs r0,#4*28
  178. b isr
  179. ENDP
  180. irq29 PROC
  181. EXPORT irq29
  182. movs r0,#4*29
  183. b isr
  184. ENDP
  185. irq30 PROC
  186. EXPORT irq30
  187. movs r0,#4*30
  188. b isr
  189. ENDP
  190. irq31 PROC
  191. EXPORT irq31
  192. movs r0,#4*31
  193. b isr
  194. ENDP
  195. isr PROC
  196. ldr r1,=isr_table
  197. ldr r0,[r0, r1]
  198. bx r0
  199. ENDP
  200. ALIGN
  201. NMI_IRQHandler PROC
  202. EXPORT NMI_IRQHandler [WEAK]
  203. B .
  204. ENDP
  205. HARD_FAULT_IRQHandler PROC
  206. EXPORT HARD_FAULT_IRQHandler [WEAK]
  207. B .
  208. ENDP
  209. SVC_IRQHandler PROC
  210. EXPORT SVC_IRQHandler [WEAK]
  211. B .
  212. ENDP
  213. PENDSV_IRQHandler PROC
  214. EXPORT PENDSV_IRQHandler [WEAK]
  215. B .
  216. ENDP
  217. SYSTICK_IRQHandler PROC
  218. EXPORT SYSTICK_IRQHandler [WEAK]
  219. B .
  220. ENDP
  221. EXTI0_IRQHandler PROC
  222. EXPORT EXTI0_IRQHandler [WEAK]
  223. B .
  224. ENDP
  225. EXTI1_IRQHandler PROC
  226. EXPORT EXTI1_IRQHandler [WEAK]
  227. B .
  228. ENDP
  229. EXTI2_IRQHandler PROC
  230. EXPORT EXTI2_IRQHandler [WEAK]
  231. B .
  232. ENDP
  233. EXTI3_IRQHandler PROC
  234. EXPORT EXTI3_IRQHandler [WEAK]
  235. B .
  236. ENDP
  237. EXTI4_IRQHandler PROC
  238. EXPORT EXTI4_IRQHandler [WEAK]
  239. B .
  240. ENDP
  241. EXTI5_IRQHandler PROC
  242. EXPORT EXTI5_IRQHandler [WEAK]
  243. B .
  244. ENDP
  245. Default_Handler PROC
  246. ; ToDo: Add here the export definition for the device specific external interrupts handler
  247. EXPORT USB_IRQHandler [WEAK]
  248. EXPORT IIC_IRQHandler [WEAK]
  249. EXPORT QSPI_IRQHandler [WEAK]
  250. EXPORT SPI0_IRQHandler [WEAK]
  251. EXPORT SPI1_IRQHandler [WEAK]
  252. EXPORT UART0_IRQHandler [WEAK]
  253. EXPORT UART1_IRQHandler [WEAK]
  254. EXPORT MEMCP_IRQHandler [WEAK]
  255. EXPORT RSA_IRQHandler [WEAK]
  256. EXPORT SCI0_IRQHandler [WEAK]
  257. EXPORT SCI1_IRQHandler [WEAK]
  258. EXPORT BT_IRQHandler [WEAK]
  259. EXPORT GPIO_IRQHandler [WEAK]
  260. EXPORT TIMER0_IRQHandler [WEAK]
  261. EXPORT TIMER1_IRQHandler [WEAK]
  262. EXPORT TIMER2_IRQHandler [WEAK]
  263. EXPORT TIMER3_IRQHandler [WEAK]
  264. EXPORT TIMER4_IRQHandler [WEAK]
  265. EXPORT TIMER5_IRQHandler [WEAK]
  266. EXPORT TIMER6_IRQHandler [WEAK]
  267. EXPORT TIMER7_IRQHandler [WEAK]
  268. EXPORT TIMER8_IRQHandler [WEAK]
  269. EXPORT SM4_IRQHandler [WEAK]
  270. EXPORT SEC_IRQHandler [WEAK]
  271. EXPORT MSR_IRQHandler [WEAK]
  272. EXPORT TRNG_IRQHandler [WEAK]
  273. EXPORT WDT_IRQHandler [WEAK]
  274. ; ToDo: Add here the names for the device specific external interrupts handler
  275. USB_IRQHandler
  276. IIC_IRQHandler
  277. QSPI_IRQHandler
  278. SPI0_IRQHandler
  279. SPI1_IRQHandler
  280. UART0_IRQHandler
  281. UART1_IRQHandler
  282. MEMCP_IRQHandler
  283. RSA_IRQHandler
  284. SCI0_IRQHandler
  285. SCI1_IRQHandler
  286. BT_IRQHandler
  287. GPIO_IRQHandler
  288. TIMER0_IRQHandler
  289. TIMER1_IRQHandler
  290. TIMER2_IRQHandler
  291. TIMER3_IRQHandler
  292. TIMER4_IRQHandler
  293. TIMER5_IRQHandler
  294. TIMER6_IRQHandler
  295. TIMER7_IRQHandler
  296. TIMER8_IRQHandler
  297. SM4_IRQHandler
  298. SEC_IRQHandler
  299. MSR_IRQHandler
  300. TRNG_IRQHandler
  301. WDT_IRQHandler
  302. B .
  303. ENDP
  304. EXPORT isr_table
  305. isr_table DCD USB_IRQHandler
  306. DCD IIC_IRQHandler
  307. DCD QSPI_IRQHandler
  308. DCD SPI0_IRQHandler
  309. DCD SPI1_IRQHandler
  310. DCD UART0_IRQHandler
  311. DCD UART1_IRQHandler
  312. DCD MEMCP_IRQHandler
  313. DCD RSA_IRQHandler
  314. DCD SCI0_IRQHandler
  315. DCD SCI1_IRQHandler
  316. DCD BT_IRQHandler
  317. DCD GPIO_IRQHandler
  318. DCD TIMER0_IRQHandler
  319. DCD TIMER1_IRQHandler
  320. DCD TIMER2_IRQHandler
  321. DCD TIMER3_IRQHandler
  322. DCD TIMER4_IRQHandler
  323. DCD TIMER5_IRQHandler
  324. DCD TIMER6_IRQHandler
  325. DCD TIMER7_IRQHandler
  326. DCD TIMER8_IRQHandler
  327. DCD SM4_IRQHandler
  328. DCD SEC_IRQHandler
  329. DCD MSR_IRQHandler
  330. DCD TRNG_IRQHandler
  331. DCD WDT_IRQHandler
  332. END