startup_xinc.s 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. Stack_Size EQU 0x00000800
  2. AREA STACK, NOINIT, READWRITE, ALIGN=3
  3. Stack_Mem SPACE Stack_Size
  4. __initial_sp
  5. Heap_Size EQU 0x00000000
  6. AREA HEAP, NOINIT, READWRITE, ALIGN=3
  7. __heap_base
  8. Heap_Mem SPACE Heap_Size
  9. __heap_limit
  10. PRESERVE8
  11. THUMB
  12. ; Vector Table Mapped to Address 0 at Reset
  13. AREA RESET, DATA, READONLY
  14. EXPORT __Vectors
  15. EXPORT __Vectors_End
  16. EXPORT __Vectors_Size
  17. __Vectors DCD __initial_sp ; Top of Stack
  18. DCD Reset_Handler ; Reset Handler
  19. DCD NMI_Handler ; NMI Handler
  20. DCD HardFault_Handler ; Hard Fault Handler
  21. DCD MemManage_Handler ; MPU Fault Handler
  22. DCD BusFault_Handler ; Bus Fault Handler
  23. DCD UsageFault_Handler ; Usage Fault Handler
  24. DCD 0 ; Reserved
  25. DCD 0 ; Reserved
  26. DCD 0 ; Reserved
  27. DCD 0 ; Reserved
  28. DCD SVC_Handler ; SVCall Handler
  29. DCD DebugMon_Handler ; Debug Monitor Handler
  30. DCD 0 ; Reserved
  31. DCD PendSV_Handler ; PendSV Handler
  32. DCD SysTick_Handler ; SysTick Handler
  33. ; External Interrupts
  34. ; ToDo: Add here the vectors for the device specific external interrupts handler
  35. DCD BLE_Handler
  36. DCD DMAS_Handler
  37. DCD CPR_Handler
  38. DCD GPIO_Handler
  39. DCD RTC_Handler
  40. DCD TIMER0_Handler
  41. DCD TIMER1_Handler
  42. DCD TIMER2_Handler
  43. DCD TIMER3_Handler
  44. DCD WDT_Handler
  45. DCD I2C_Handler
  46. DCD UART0_Handler
  47. DCD UART1_Handler
  48. DCD SPI0_Handler
  49. DCD SPI1_Handler
  50. DCD KBS_Handler
  51. DCD QDEC_Handler
  52. DCD GADC_Handler
  53. DCD SIM_Handler
  54. DCD AES_Handler
  55. __Vectors_End
  56. __Vectors_Size EQU __Vectors_End - __Vectors
  57. AREA |.text|, CODE, READONLY
  58. ; Reset Handler
  59. Reset_Handler PROC
  60. EXPORT Reset_Handler [WEAK]
  61. IMPORT SystemInit
  62. IMPORT __main
  63. LDR r0, =0x4000013C ; remap
  64. LDR r1, =0x10000001
  65. STR r1, [r0]
  66. LDR R0, =SystemInit
  67. BLX R0
  68. LDR R0, =__main
  69. BX R0
  70. ENDP
  71. ; Dummy Exception Handlers (infinite loops which can be modified)
  72. NMI_Handler PROC
  73. EXPORT NMI_Handler [WEAK]
  74. B .
  75. ENDP
  76. HardFault_Handler\
  77. PROC
  78. EXPORT HardFault_Handler [WEAK]
  79. B .
  80. ENDP
  81. MemManage_Handler\
  82. PROC
  83. EXPORT MemManage_Handler [WEAK]
  84. B .
  85. ENDP
  86. BusFault_Handler\
  87. PROC
  88. EXPORT BusFault_Handler [WEAK]
  89. B .
  90. ENDP
  91. UsageFault_Handler\
  92. PROC
  93. EXPORT UsageFault_Handler [WEAK]
  94. B .
  95. ENDP
  96. SVC_Handler PROC
  97. EXPORT SVC_Handler [WEAK]
  98. B .
  99. ENDP
  100. DebugMon_Handler\
  101. PROC
  102. EXPORT DebugMon_Handler [WEAK]
  103. B .
  104. ENDP
  105. Default_Handler PROC
  106. EXPORT BLE_Handler [WEAK]
  107. EXPORT DMAS_Handler [WEAK]
  108. EXPORT CPR_Handler [WEAK]
  109. EXPORT GPIO_Handler [WEAK]
  110. EXPORT RTC_Handler [WEAK]
  111. EXPORT TIMER0_Handler [WEAK]
  112. EXPORT TIMER1_Handler [WEAK]
  113. EXPORT TIMER2_Handler [WEAK]
  114. EXPORT TIMER3_Handler [WEAK]
  115. EXPORT WDT_Handler [WEAK]
  116. EXPORT I2C_Handler [WEAK]
  117. EXPORT UART0_Handler [WEAK]
  118. EXPORT UART1_Handler [WEAK]
  119. EXPORT SPI0_Handler [WEAK]
  120. EXPORT SPI1_Handler [WEAK]
  121. EXPORT KBS_Handler [WEAK]
  122. EXPORT QDEC_Handler [WEAK]
  123. EXPORT GADC_Handler [WEAK]
  124. EXPORT SIM_Handler [WEAK]
  125. EXPORT AES_Handler [WEAK]
  126. EXPORT PendSV_Handler [WEAK]
  127. EXPORT SysTick_Handler [WEAK]
  128. PendSV_Handler
  129. SysTick_Handler
  130. BLE_Handler
  131. DMAS_Handler
  132. CPR_Handler
  133. GPIO_Handler
  134. RTC_Handler
  135. TIMER0_Handler
  136. TIMER1_Handler
  137. TIMER2_Handler
  138. TIMER3_Handler
  139. WDT_Handler
  140. I2C_Handler
  141. UART0_Handler
  142. UART1_Handler
  143. SPI0_Handler
  144. SPI1_Handler
  145. KBS_Handler
  146. QDEC_Handler
  147. GADC_Handler
  148. SIM_Handler
  149. AES_Handler
  150. B .
  151. ENDP
  152. ALIGN
  153. ; User Initial Stack & Heap
  154. IMPORT __use_two_region_memory
  155. EXPORT __user_initial_stackheap
  156. __user_initial_stackheap
  157. LDR R0, = Heap_Mem
  158. LDR R1, = (Stack_Mem + Stack_Size)
  159. LDR R2, = (Heap_Mem + Heap_Size)
  160. LDR R3, = Stack_Mem
  161. BX LR
  162. ALIGN
  163. END