startup_ciu32f003.s 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. ;/***********************************************************************************************/
  2. ;/**
  3. ;* @file startup_ciu32f003.s
  4. ;* @author MCU Ecosystem Development Team
  5. ;* @brief CMSIS Cortex-M0+ Core Device Startup File for CIU32F003.
  6. ;*
  7. ;*
  8. ;*************************************************************************************************
  9. ;* @attention
  10. ;* Copyright (c) CEC Huada Electronic Design Co.,Ltd. All rights reserved.
  11. ;*
  12. ;*************************************************************************************************
  13. ;*/
  14. ;/*
  15. ;//-------- <<< Use Configuration Wizard in Context Menu >>> ------------------
  16. ;*/
  17. ; <h> Stack Configuration
  18. ; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
  19. ; </h>
  20. Stack_Size EQU 0x00000200
  21. AREA STACK, NOINIT, READWRITE, ALIGN=3
  22. Stack_Mem SPACE Stack_Size
  23. __initial_sp
  24. ; <h> Heap Configuration
  25. ; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
  26. ; </h>
  27. Heap_Size EQU 0x00000000
  28. AREA HEAP, NOINIT, READWRITE, ALIGN=3
  29. __heap_base
  30. Heap_Mem SPACE Heap_Size
  31. __heap_limit
  32. PRESERVE8
  33. THUMB
  34. ; Vector Table Mapped to Address 0 at Reset
  35. AREA RESET, DATA, READONLY
  36. EXPORT __vector_table
  37. EXPORT __vectors_End
  38. EXPORT __vectors_Size
  39. __vector_table DCD __initial_sp ; Top of Stack
  40. DCD Reset_Handler ; Reset Handler
  41. DCD NMI_Handler ; NMI Handler
  42. DCD HardFault_Handler ; Hard Fault Handler
  43. DCD 0 ; Reserved
  44. DCD 0 ; Reserved
  45. DCD 0 ; Reserved
  46. DCD 0 ; Reserved
  47. DCD 0 ; Reserved
  48. DCD 0 ; Reserved
  49. DCD 0 ; Reserved
  50. DCD SVC_Handler ; SVCall Handler
  51. DCD 0 ; Reserved
  52. DCD 0 ; Reserved
  53. DCD PendSV_Handler ; PendSV Handler
  54. DCD SysTick_Handler ; SysTick Handler
  55. ; Interrupts
  56. DCD 0 ; Reserved
  57. DCD 0 ; Reserved
  58. DCD 0 ; Reserved
  59. DCD FLASH_IRQHandler ; FLASH
  60. DCD RCC_IRQHandler ; RCC
  61. DCD EXTI0_1_IRQHandler ; EXTI Line 0 & 1
  62. DCD EXTI2_3_IRQHandler ; EXTI Line 2 & 3
  63. DCD EXTI4_7_IRQHandler ; EXTI Line 4 to 7
  64. DCD 0 ; Reserved
  65. DCD 0 ; Reserved
  66. DCD 0 ; Reserved
  67. DCD 0 ; Reserved
  68. DCD ADC_COMP_IRQHandler ; ADC & COMP1/2
  69. DCD TIM1_BRK_UP_TRG_COM_IRQHandler ; TIM1 Break, Update, Trigger and COM Event
  70. DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare
  71. DCD TIM3_IRQHandler ; TIM3
  72. DCD 0 ; Reserved
  73. DCD 0 ; Reserved
  74. DCD 0 ; Reserved
  75. DCD 0 ; Reserved
  76. DCD LPTIM1_IRQHandler ; LPTIM1
  77. DCD I2C1_IRQHandler ; I2C1
  78. DCD 0 ; Reserved
  79. DCD SPI1_IRQHandler ; SPI1
  80. DCD 0 ; Reserved
  81. DCD UART1_IRQHandler ; UART1
  82. DCD UART2_IRQHandler ; UART2
  83. DCD 0 ; Reserved
  84. DCD 0 ; Reserved
  85. DCD 0 ; Reserved
  86. DCD 0 ; Reserved
  87. DCD 0 ; Reserved
  88. __vectors_End
  89. __vectors_Size EQU __vectors_End - __vector_table
  90. AREA |.text|, CODE, READONLY
  91. ; Reset Handler
  92. Reset_Handler PROC
  93. EXPORT Reset_Handler [WEAK]
  94. IMPORT SystemInit
  95. IMPORT __main
  96. LDR R0, =SystemInit
  97. BLX R0
  98. LDR R0, =__main
  99. BX R0
  100. ENDP
  101. ; Dummy Exception Handlers (infinite loops which can be modified)
  102. NMI_Handler PROC
  103. EXPORT NMI_Handler [WEAK]
  104. B .
  105. ENDP
  106. HardFault_Handler\
  107. PROC
  108. EXPORT HardFault_Handler [WEAK]
  109. B .
  110. ENDP
  111. SVC_Handler PROC
  112. EXPORT SVC_Handler [WEAK]
  113. B .
  114. ENDP
  115. PendSV_Handler PROC
  116. EXPORT PendSV_Handler [WEAK]
  117. B .
  118. ENDP
  119. SysTick_Handler PROC
  120. EXPORT SysTick_Handler [WEAK]
  121. B .
  122. ENDP
  123. Default_Handler PROC
  124. EXPORT FLASH_IRQHandler [WEAK]
  125. EXPORT RCC_IRQHandler [WEAK]
  126. EXPORT EXTI0_1_IRQHandler [WEAK]
  127. EXPORT EXTI2_3_IRQHandler [WEAK]
  128. EXPORT EXTI4_7_IRQHandler [WEAK]
  129. EXPORT ADC_COMP_IRQHandler [WEAK]
  130. EXPORT TIM1_BRK_UP_TRG_COM_IRQHandler [WEAK]
  131. EXPORT TIM1_CC_IRQHandler [WEAK]
  132. EXPORT TIM3_IRQHandler [WEAK]
  133. EXPORT LPTIM1_IRQHandler [WEAK]
  134. EXPORT I2C1_IRQHandler [WEAK]
  135. EXPORT SPI1_IRQHandler [WEAK]
  136. EXPORT UART1_IRQHandler [WEAK]
  137. EXPORT UART2_IRQHandler [WEAK]
  138. FLASH_IRQHandler
  139. RCC_IRQHandler
  140. EXTI0_1_IRQHandler
  141. EXTI2_3_IRQHandler
  142. EXTI4_7_IRQHandler
  143. ADC_COMP_IRQHandler
  144. TIM1_BRK_UP_TRG_COM_IRQHandler
  145. TIM1_CC_IRQHandler
  146. TIM3_IRQHandler
  147. LPTIM1_IRQHandler
  148. I2C1_IRQHandler
  149. SPI1_IRQHandler
  150. UART1_IRQHandler
  151. UART2_IRQHandler
  152. B .
  153. ENDP
  154. ALIGN
  155. ; User Initial Stack & Heap
  156. IF :DEF:__MICROLIB
  157. EXPORT __initial_sp
  158. EXPORT __heap_base
  159. EXPORT __heap_limit
  160. ELSE
  161. IMPORT __use_two_region_memory
  162. EXPORT __user_initial_stackheap
  163. __user_initial_stackheap PROC
  164. LDR R0, = Heap_Mem
  165. LDR R1, =(Stack_Mem + Stack_Size)
  166. LDR R2, = (Heap_Mem + Heap_Size)
  167. LDR R3, = Stack_Mem
  168. BX LR
  169. ENDP
  170. ALIGN
  171. ENDIF
  172. END