startup_efm32gg.s 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385
  1. ;/**************************************************************************//**
  2. ; * @file
  3. ; * @brief CMSIS Core Device Startup File
  4. ; * Energy Micro 'EFM32GG/LG' Device Series
  5. ; * @version 3.0.0
  6. ; * @date 30. January 2012
  7. ; *
  8. ; * @note
  9. ; * Copyright (C) 2012 ARM Limited. All rights reserved.
  10. ; *
  11. ; * @par
  12. ; * ARM Limited (ARM) is supplying this software for use with Cortex-M
  13. ; * processor based microcontrollers. This file can be freely distributed
  14. ; * within development tools that are supporting such ARM based processors.
  15. ; *
  16. ; * @par
  17. ; * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
  18. ; * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
  19. ; * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
  20. ; * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
  21. ; * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
  22. ; *
  23. ; ******************************************************************************/
  24. ; Energy Micro release version
  25. ; @version INTERNAL
  26. ;
  27. ; The modules in this file are included in the libraries, and may be replaced
  28. ; by any user-defined modules that define the PUBLIC symbol _program_start or
  29. ; a user defined start symbol.
  30. ; To override the cstartup defined in the library, simply add your modified
  31. ; version to the workbench project.
  32. ;
  33. ; The vector table is normally located at address 0.
  34. ;
  35. ; When debugging in RAM, it can be located in RAM with at least a 128 byte
  36. ; alignment, 256 byte alignment is requied if all interrupt vectors are in use.
  37. ;
  38. ; The name "__vector_table" has special meaning for C-SPY:
  39. ; it is where the SP start value is found, and the NVIC vector
  40. ; table register (VTOR) is initialized to this address if != 0.
  41. ;
  42. ; Cortex-M version
  43. ;
  44. MODULE ?cstartup
  45. ;; Forward declaration of sections.
  46. SECTION CSTACK:DATA:NOROOT(3)
  47. SECTION .intvec:CODE:NOROOT(8)
  48. EXTERN __iar_program_start
  49. EXTERN SystemInit
  50. PUBLIC __vector_table
  51. PUBLIC __vector_table_0x1c
  52. PUBLIC __Vectors
  53. PUBLIC __Vectors_End
  54. PUBLIC __Vectors_Size
  55. DATA
  56. __vector_table
  57. DCD sfe(CSTACK)
  58. DCD Reset_Handler
  59. DCD NMI_Handler
  60. DCD HardFault_Handler
  61. DCD MemManage_Handler
  62. DCD BusFault_Handler
  63. DCD UsageFault_Handler
  64. __vector_table_0x1c
  65. DCD 0
  66. DCD 0
  67. DCD 0
  68. DCD 0
  69. DCD SVC_Handler
  70. DCD DebugMon_Handler
  71. DCD 0
  72. DCD PendSV_Handler
  73. DCD SysTick_Handler
  74. ; External Interrupts
  75. DCD DMA_IRQHandler ; 0: DMA Interrupt
  76. DCD GPIO_EVEN_IRQHandler ; 1: GPIO_EVEN Interrupt
  77. DCD TIMER0_IRQHandler ; 2: TIMER0 Interrupt
  78. DCD USART0_RX_IRQHandler ; 3: USART0_RX Interrupt
  79. DCD USART0_TX_IRQHandler ; 4: USART0_TX Interrupt
  80. DCD USB_IRQHandler ; 5: USB Interrupt
  81. DCD ACMP0_IRQHandler ; 6: ACMP0 Interrupt
  82. DCD ADC0_IRQHandler ; 7: ADC0 Interrupt
  83. DCD DAC0_IRQHandler ; 8: DAC0 Interrupt
  84. DCD I2C0_IRQHandler ; 9: I2C0 Interrupt
  85. DCD I2C1_IRQHandler ; 10: I2C1 Interrupt
  86. DCD GPIO_ODD_IRQHandler ; 11: GPIO_ODD Interrupt
  87. DCD TIMER1_IRQHandler ; 12: TIMER1 Interrupt
  88. DCD TIMER2_IRQHandler ; 13: TIMER2 Interrupt
  89. DCD TIMER3_IRQHandler ; 14: TIMER3 Interrupt
  90. DCD USART1_RX_IRQHandler ; 15: USART1_RX Interrupt
  91. DCD USART1_TX_IRQHandler ; 16: USART1_TX Interrupt
  92. DCD LESENSE_IRQHandler ; 17: LESENSE Interrupt
  93. DCD USART2_RX_IRQHandler ; 18: USART2_RX Interrupt
  94. DCD USART2_TX_IRQHandler ; 19: USART2_TX Interrupt
  95. DCD UART0_RX_IRQHandler ; 20: UART0_RX Interrupt
  96. DCD UART0_TX_IRQHandler ; 21: UART0_TX Interrupt
  97. DCD UART1_RX_IRQHandler ; 22: UART1_RX Interrupt
  98. DCD UART1_TX_IRQHandler ; 23: UART1_TX Interrupt
  99. DCD LEUART0_IRQHandler ; 24: LEUART0 Interrupt
  100. DCD LEUART1_IRQHandler ; 25: LEUART1 Interrupt
  101. DCD LETIMER0_IRQHandler ; 26: LETIMER0 Interrupt
  102. DCD PCNT0_IRQHandler ; 27: PCNT0 Interrupt
  103. DCD PCNT1_IRQHandler ; 28: PCNT1 Interrupt
  104. DCD PCNT2_IRQHandler ; 29: PCNT2 Interrupt
  105. DCD RTC_IRQHandler ; 30: RTC Interrupt
  106. DCD BURTC_IRQHandler ; 31: BURTC Interrupt
  107. DCD CMU_IRQHandler ; 32: CMU Interrupt
  108. DCD VCMP_IRQHandler ; 33: VCMP Interrupt
  109. DCD LCD_IRQHandler ; 34: LCD Interrupt
  110. DCD MSC_IRQHandler ; 35: MSC Interrupt
  111. DCD AES_IRQHandler ; 36: AES Interrupt
  112. DCD EBI_IRQHandler ; 37: EBI Interrupt
  113. DCD EMU_IRQHandler ; 38: EMU Interrupt
  114. __Vectors_End
  115. __Vectors EQU __vector_table
  116. __Vectors_Size EQU __Vectors_End - __Vectors
  117. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  118. ;;
  119. ;; Default interrupt handlers.
  120. ;;
  121. THUMB
  122. PUBWEAK Reset_Handler
  123. SECTION .text:CODE:REORDER(2)
  124. Reset_Handler
  125. LDR R0, =SystemInit
  126. BLX R0
  127. LDR R0, =__iar_program_start
  128. BX R0
  129. PUBWEAK NMI_Handler
  130. SECTION .text:CODE:REORDER(1)
  131. NMI_Handler
  132. B NMI_Handler
  133. PUBWEAK HardFault_Handler
  134. SECTION .text:CODE:REORDER(1)
  135. HardFault_Handler
  136. B HardFault_Handler
  137. PUBWEAK MemManage_Handler
  138. SECTION .text:CODE:REORDER(1)
  139. MemManage_Handler
  140. B MemManage_Handler
  141. PUBWEAK BusFault_Handler
  142. SECTION .text:CODE:REORDER(1)
  143. BusFault_Handler
  144. B BusFault_Handler
  145. PUBWEAK UsageFault_Handler
  146. SECTION .text:CODE:REORDER(1)
  147. UsageFault_Handler
  148. B UsageFault_Handler
  149. PUBWEAK SVC_Handler
  150. SECTION .text:CODE:REORDER(1)
  151. SVC_Handler
  152. B SVC_Handler
  153. PUBWEAK DebugMon_Handler
  154. SECTION .text:CODE:REORDER(1)
  155. DebugMon_Handler
  156. B DebugMon_Handler
  157. PUBWEAK PendSV_Handler
  158. SECTION .text:CODE:REORDER(1)
  159. PendSV_Handler
  160. B PendSV_Handler
  161. PUBWEAK SysTick_Handler
  162. SECTION .text:CODE:REORDER(1)
  163. SysTick_Handler
  164. B SysTick_Handler
  165. ; EFM32GG/LG specific interrupt handlers
  166. PUBWEAK DMA_IRQHandler
  167. SECTION .text:CODE:REORDER(1)
  168. DMA_IRQHandler
  169. B DMA_IRQHandler
  170. PUBWEAK GPIO_EVEN_IRQHandler
  171. SECTION .text:CODE:REORDER(1)
  172. GPIO_EVEN_IRQHandler
  173. B GPIO_EVEN_IRQHandler
  174. PUBWEAK TIMER0_IRQHandler
  175. SECTION .text:CODE:REORDER(1)
  176. TIMER0_IRQHandler
  177. B TIMER0_IRQHandler
  178. PUBWEAK USART0_RX_IRQHandler
  179. SECTION .text:CODE:REORDER(1)
  180. USART0_RX_IRQHandler
  181. B USART0_RX_IRQHandler
  182. PUBWEAK USART0_TX_IRQHandler
  183. SECTION .text:CODE:REORDER(1)
  184. USART0_TX_IRQHandler
  185. B USART0_TX_IRQHandler
  186. PUBWEAK USB_IRQHandler
  187. SECTION .text:CODE:REORDER(1)
  188. USB_IRQHandler
  189. B USB_IRQHandler
  190. PUBWEAK ACMP0_IRQHandler
  191. SECTION .text:CODE:REORDER(1)
  192. ACMP0_IRQHandler
  193. B ACMP0_IRQHandler
  194. PUBWEAK ADC0_IRQHandler
  195. SECTION .text:CODE:REORDER(1)
  196. ADC0_IRQHandler
  197. B ADC0_IRQHandler
  198. PUBWEAK DAC0_IRQHandler
  199. SECTION .text:CODE:REORDER(1)
  200. DAC0_IRQHandler
  201. B DAC0_IRQHandler
  202. PUBWEAK I2C0_IRQHandler
  203. SECTION .text:CODE:REORDER(1)
  204. I2C0_IRQHandler
  205. B I2C0_IRQHandler
  206. PUBWEAK I2C1_IRQHandler
  207. SECTION .text:CODE:REORDER(1)
  208. I2C1_IRQHandler
  209. B I2C1_IRQHandler
  210. PUBWEAK GPIO_ODD_IRQHandler
  211. SECTION .text:CODE:REORDER(1)
  212. GPIO_ODD_IRQHandler
  213. B GPIO_ODD_IRQHandler
  214. PUBWEAK TIMER1_IRQHandler
  215. SECTION .text:CODE:REORDER(1)
  216. TIMER1_IRQHandler
  217. B TIMER1_IRQHandler
  218. PUBWEAK TIMER2_IRQHandler
  219. SECTION .text:CODE:REORDER(1)
  220. TIMER2_IRQHandler
  221. B TIMER2_IRQHandler
  222. PUBWEAK TIMER3_IRQHandler
  223. SECTION .text:CODE:REORDER(1)
  224. TIMER3_IRQHandler
  225. B TIMER3_IRQHandler
  226. PUBWEAK USART1_RX_IRQHandler
  227. SECTION .text:CODE:REORDER(1)
  228. USART1_RX_IRQHandler
  229. B USART1_RX_IRQHandler
  230. PUBWEAK USART1_TX_IRQHandler
  231. SECTION .text:CODE:REORDER(1)
  232. USART1_TX_IRQHandler
  233. B USART1_TX_IRQHandler
  234. PUBWEAK LESENSE_IRQHandler
  235. SECTION .text:CODE:REORDER(1)
  236. LESENSE_IRQHandler
  237. B LESENSE_IRQHandler
  238. PUBWEAK USART2_RX_IRQHandler
  239. SECTION .text:CODE:REORDER(1)
  240. USART2_RX_IRQHandler
  241. B USART2_RX_IRQHandler
  242. PUBWEAK USART2_TX_IRQHandler
  243. SECTION .text:CODE:REORDER(1)
  244. USART2_TX_IRQHandler
  245. B USART2_TX_IRQHandler
  246. PUBWEAK UART0_RX_IRQHandler
  247. SECTION .text:CODE:REORDER(1)
  248. UART0_RX_IRQHandler
  249. B UART0_RX_IRQHandler
  250. PUBWEAK UART0_TX_IRQHandler
  251. SECTION .text:CODE:REORDER(1)
  252. UART0_TX_IRQHandler
  253. B UART0_TX_IRQHandler
  254. PUBWEAK UART1_RX_IRQHandler
  255. SECTION .text:CODE:REORDER(1)
  256. UART1_RX_IRQHandler
  257. B UART1_RX_IRQHandler
  258. PUBWEAK UART1_TX_IRQHandler
  259. SECTION .text:CODE:REORDER(1)
  260. UART1_TX_IRQHandler
  261. B UART1_TX_IRQHandler
  262. PUBWEAK LEUART0_IRQHandler
  263. SECTION .text:CODE:REORDER(1)
  264. LEUART0_IRQHandler
  265. B LEUART0_IRQHandler
  266. PUBWEAK LEUART1_IRQHandler
  267. SECTION .text:CODE:REORDER(1)
  268. LEUART1_IRQHandler
  269. B LEUART1_IRQHandler
  270. PUBWEAK LETIMER0_IRQHandler
  271. SECTION .text:CODE:REORDER(1)
  272. LETIMER0_IRQHandler
  273. B LETIMER0_IRQHandler
  274. PUBWEAK PCNT0_IRQHandler
  275. SECTION .text:CODE:REORDER(1)
  276. PCNT0_IRQHandler
  277. B PCNT0_IRQHandler
  278. PUBWEAK PCNT1_IRQHandler
  279. SECTION .text:CODE:REORDER(1)
  280. PCNT1_IRQHandler
  281. B PCNT1_IRQHandler
  282. PUBWEAK PCNT2_IRQHandler
  283. SECTION .text:CODE:REORDER(1)
  284. PCNT2_IRQHandler
  285. B PCNT2_IRQHandler
  286. PUBWEAK RTC_IRQHandler
  287. SECTION .text:CODE:REORDER(1)
  288. RTC_IRQHandler
  289. B RTC_IRQHandler
  290. PUBWEAK BURTC_IRQHandler
  291. SECTION .text:CODE:REORDER(1)
  292. BURTC_IRQHandler
  293. B BURTC_IRQHandler
  294. PUBWEAK CMU_IRQHandler
  295. SECTION .text:CODE:REORDER(1)
  296. CMU_IRQHandler
  297. B CMU_IRQHandler
  298. PUBWEAK VCMP_IRQHandler
  299. SECTION .text:CODE:REORDER(1)
  300. VCMP_IRQHandler
  301. B VCMP_IRQHandler
  302. PUBWEAK LCD_IRQHandler
  303. SECTION .text:CODE:REORDER(1)
  304. LCD_IRQHandler
  305. B LCD_IRQHandler
  306. PUBWEAK MSC_IRQHandler
  307. SECTION .text:CODE:REORDER(1)
  308. MSC_IRQHandler
  309. B MSC_IRQHandler
  310. PUBWEAK AES_IRQHandler
  311. SECTION .text:CODE:REORDER(1)
  312. AES_IRQHandler
  313. B AES_IRQHandler
  314. PUBWEAK EBI_IRQHandler
  315. SECTION .text:CODE:REORDER(1)
  316. EBI_IRQHandler
  317. B EBI_IRQHandler
  318. PUBWEAK EMU_IRQHandler
  319. SECTION .text:CODE:REORDER(1)
  320. EMU_IRQHandler
  321. B EMU_IRQHandler
  322. END