iar_startup_lpc82x.s 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. /**************************************************
  2. *
  3. * Part one of the system initialization code, contains low-level
  4. * initialization, plain thumb variant.
  5. *
  6. * Copyright 2009 IAR Systems. All rights reserved.
  7. *
  8. * $Revision: 33183 $
  9. *
  10. **************************************************/
  11. ;
  12. ; The modules in this file are included in the libraries, and may be replaced
  13. ; by any user-defined modules that define the PUBLIC symbol _program_start or
  14. ; a user defined start symbol.
  15. ; To override the cstartup defined in the library, simply add your modified
  16. ; version to the workbench project.
  17. ;
  18. ; The vector table is normally located at address 0.
  19. ; When debugging in RAM, it can be located in RAM, aligned to at least 2^6.
  20. ; The name "__vector_table" has special meaning for C-SPY:
  21. ; it is where the SP start value is found, and the NVIC vector
  22. ; table register (VTOR) is initialized to this address if != 0.
  23. ;
  24. ; Cortex-M version
  25. ;
  26. MODULE ?cstartup
  27. ;; Forward declaration of sections.
  28. SECTION CSTACK:DATA:NOROOT(3)
  29. SECTION .intvec:CODE:NOROOT(2)
  30. EXTERN __iar_program_start
  31. EXTERN SystemInit
  32. EXTERN IRC_Only_SystemInit
  33. PUBLIC __vector_table
  34. PUBLIC __vector_table_0x1c
  35. DATA
  36. __vector_table
  37. DCD sfe(CSTACK) ; Top of Stack
  38. DCD Reset_Handler ; Reset Handler
  39. DCD NMI_Handler ; NMI Handler
  40. DCD HardFault_Handler ; Hard Fault Handler
  41. __vector_table_0x1c
  42. DCD 0 ; Reserved
  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 SVC_Handler ; SVCall Handler
  50. DCD 0 ; Reserved
  51. DCD 0 ; Reserved
  52. DCD PendSV_Handler ; PendSV Handler
  53. DCD SysTick_Handler ; SysTick Handler
  54. ; External Interrupts
  55. DCD SPI0_IRQHandler ; SPI0 controller
  56. DCD SPI1_IRQHandler ; SPI1 controller
  57. DCD 0 ; Reserved
  58. DCD UART0_IRQHandler ; UART0
  59. DCD UART1_IRQHandler ; UART1
  60. DCD UART2_IRQHandler ; UART2
  61. DCD 0 ; Reserved
  62. DCD I2C1_IRQHandler ; I2C1
  63. DCD I2C0_IRQHandler ; I2C0 controller
  64. DCD SCT_IRQHandler ; Smart Counter Timer
  65. DCD MRT_IRQHandler ; Multi-Rate Timer
  66. DCD CMP_IRQHandler ; Comparator
  67. DCD WDT_IRQHandler ; PIO1 (0:11)
  68. DCD BOD_IRQHandler ; Brown Out Detect
  69. DCD FLASH_IRQHandler ; Flash interrupt
  70. DCD WKT_IRQHandler ; Wakeup timer
  71. DCD ADC_SEQA_IRQHandler ; ADC sequence A completeion
  72. DCD ADC_SEQB_IRQHandler ; ADC sequence B completeion
  73. DCD ADC_THCMP_IRQHandler ; ADC threshold compare
  74. DCD ADC_OVR_IRQHandler ; ADC overrun
  75. DCD DMA_IRQHandler ; DMA
  76. DCD I2C2_IRQHandler ; I2C2
  77. DCD I2C3_IRQHandler ; I2C3
  78. DCD 0 ; Reserved
  79. DCD PININT0_IRQHandler ; PIO INT0
  80. DCD PININT1_IRQHandler ; PIO INT1
  81. DCD PININT2_IRQHandler ; PIO INT2
  82. DCD PININT3_IRQHandler ; PIO INT3
  83. DCD PININT4_IRQHandler ; PIO INT4
  84. DCD PININT5_IRQHandler ; PIO INT5
  85. DCD PININT6_IRQHandler ; PIO INT6
  86. DCD PININT7_IRQHandler ; PIO INT7
  87. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  88. ;;
  89. ;; Default interrupt handlers.
  90. ;;
  91. THUMB
  92. PUBWEAK Reset_Handler
  93. SECTION .text:CODE:REORDER:NOROOT(2)
  94. Reset_Handler
  95. LDR R0, =SystemInit
  96. BLX R0
  97. LDR R0, =__iar_program_start
  98. BX R0
  99. SECTION .text:CODE:REORDER:NOROOT(1)
  100. PUBWEAK NMI_Handler
  101. PUBWEAK HardFault_Handler
  102. PUBWEAK SVC_Handler
  103. PUBWEAK DebugMon_Handler
  104. PUBWEAK PendSV_Handler
  105. PUBWEAK SysTick_Handler
  106. PUBWEAK SPI0_IRQHandler
  107. PUBWEAK SPI1_IRQHandler
  108. PUBWEAK UART0_IRQHandler
  109. PUBWEAK UART1_IRQHandler
  110. PUBWEAK UART2_IRQHandler
  111. PUBWEAK I2C1_IRQHandler
  112. PUBWEAK I2C0_IRQHandler
  113. PUBWEAK SCT_IRQHandler
  114. PUBWEAK MRT_IRQHandler
  115. PUBWEAK CMP_IRQHandler
  116. PUBWEAK WDT_IRQHandler
  117. PUBWEAK BOD_IRQHandler
  118. PUBWEAK FLASH_IRQHandler
  119. PUBWEAK WKT_IRQHandler
  120. PUBWEAK ADC_SEQA_IRQHandler
  121. PUBWEAK ADC_SEQB_IRQHandler
  122. PUBWEAK ADC_THCMP_IRQHandler
  123. PUBWEAK ADC_OVR_IRQHandler
  124. PUBWEAK DMA_IRQHandler
  125. PUBWEAK I2C2_IRQHandler
  126. PUBWEAK I2C3_IRQHandler
  127. PUBWEAK PININT0_IRQHandler
  128. PUBWEAK PININT1_IRQHandler
  129. PUBWEAK PININT2_IRQHandler
  130. PUBWEAK PININT3_IRQHandler
  131. PUBWEAK PININT4_IRQHandler
  132. PUBWEAK PININT5_IRQHandler
  133. PUBWEAK PININT6_IRQHandler
  134. PUBWEAK PININT7_IRQHandler
  135. NMI_Handler:
  136. HardFault_Handler:
  137. SVC_Handler:
  138. DebugMon_Handler:
  139. PendSV_Handler:
  140. SysTick_Handler:
  141. SPI0_IRQHandler:
  142. SPI1_IRQHandler:
  143. UART0_IRQHandler:
  144. UART1_IRQHandler:
  145. UART2_IRQHandler:
  146. I2C1_IRQHandler:
  147. I2C0_IRQHandler:
  148. SCT_IRQHandler:
  149. MRT_IRQHandler:
  150. CMP_IRQHandler:
  151. WDT_IRQHandler:
  152. BOD_IRQHandler:
  153. FLASH_IRQHandler:
  154. WKT_IRQHandler:
  155. ADC_SEQA_IRQHandler:
  156. ADC_SEQB_IRQHandler:
  157. ADC_THCMP_IRQHandler:
  158. ADC_OVR_IRQHandler:
  159. DMA_IRQHandler:
  160. I2C2_IRQHandler:
  161. I2C3_IRQHandler:
  162. PININT0_IRQHandler:
  163. PININT1_IRQHandler:
  164. PININT2_IRQHandler:
  165. PININT3_IRQHandler:
  166. PININT4_IRQHandler:
  167. PININT5_IRQHandler:
  168. PININT6_IRQHandler:
  169. PININT7_IRQHandler:
  170. Default_Handler:
  171. B Default_Handler
  172. END