Advertisement
Mike057

startup_S32K118.s

Jun 8th, 2025
18
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.96 KB | None | 0 0
  1. /* ---------------------------------------------------------------------------------------*/
  2. /* @file: startup_S32K118.s */
  3. /* @purpose: GNU Compiler Collection Startup File */
  4. /* S32K118 */
  5. /* @version: 1.0 */
  6. /* @date: 2018-1-22 */
  7. /* @build: b170107 */
  8. /* ---------------------------------------------------------------------------------------*/
  9. /* */
  10. /*****************************************************************************
  11. * Copyright 2018-2021, 2023 NXP
  12. *
  13. * SPDX-License-Identifier: BSD-3-Clause
  14. *
  15. ****************************************************************************/
  16. /*****************************************************************************/
  17. /* Version: GNU Compiler Collection */
  18. /*****************************************************************************/
  19. .syntax unified
  20. .arch armv6-m
  21.  
  22. .section .isr_vector, "a"
  23. .align 2
  24. .globl __isr_vector
  25. __isr_vector:
  26. .long __StackTop /* Top of Stack */
  27. .long Reset_Handler /* Reset Handler */
  28. .long NMI_Handler /* Non Maskable Interrupt */
  29. .long HardFault_Handler /* Cortex-M0 SV Hard Fault Interrupt */
  30. .long 0
  31. .long 0
  32. .long 0
  33. .long 0
  34. .long 0
  35. .long 0
  36. .long 0
  37. .long SVC_Handler /* Cortex-M0 SV Call Interrupt */
  38. .long 0
  39. .long 0
  40. .long PendSV_Handler /* Cortex-M0 Pend SV Interrupt */
  41. .long SysTick_Handler /* Cortex-M0 System Tick Interrupt */
  42.  
  43.  
  44. .long DMA0_IRQHandler /* DMA channel 0 transfer complete */
  45. .long DMA1_IRQHandler /* DMA channel 1 transfer complete */
  46. .long DMA2_IRQHandler /* DMA channel 2 transfer complete */
  47. .long DMA3_IRQHandler /* DMA channel 3 transfer complete */
  48. .long DMA_Error_IRQHandler /* DMA error interrupt channels 0-3 */
  49. .long ERM_fault_IRQHandler /* ERM single and double bit error correction */
  50. .long RTC_IRQHandler /* RTC alarm interrupt */
  51. .long RTC_Seconds_IRQHandler /* RTC seconds interrupt */
  52. .long LPTMR0_IRQHandler /* LPTIMER interrupt request */
  53. .long PORT_IRQHandler /* Port A, B, C, D and E pin detect interrupt */
  54. .long CAN0_ORed_Err_Wakeup_IRQHandler /* OR’ed [Bus Off OR Bus Off Done OR Transmit Warning OR Receive Warning], Interrupt indicating that errors were detected on the CAN bus, Interrupt asserted when Pretended Networking operation is enabled, and a valid message matches the selected filter criteria during Low Power mode */
  55. .long CAN0_ORed_0_31_MB_IRQHandler /* OR’ed Message buffer (0-15, 16-31) */
  56. .long FTM0_Ch0_7_IRQHandler /* FTM0 Channel 0 to 7 interrupt */
  57. .long FTM0_Fault_IRQHandler /* FTM0 Fault interrupt */
  58. .long FTM0_Ovf_Reload_IRQHandler /* FTM0 Counter overflow and Reload interrupt */
  59. .long FTM1_Ch0_7_IRQHandler /* FTM1 Channel 0 to 7 interrupt */
  60. .long FTM1_Fault_IRQHandler /* FTM1 Fault interrupt */
  61. .long FTM1_Ovf_Reload_IRQHandler /* FTM1 Counter overflow and Reload interrupt */
  62. .long FTFC_IRQHandler /* FTFC Command complete, Read collision and Double bit fault detect */
  63. .long PDB0_IRQHandler /* PDB0 interrupt */
  64. .long LPIT0_IRQHandler /* LPIT interrupt */
  65. .long SCG_CMU_LVD_LVWSCG_IRQHandler /* PMC Low voltage detect interrupt, SCG bus interrupt request and CMU loss of range interrupt */
  66. .long WDOG_IRQHandler /* WDOG interrupt request out before wdg reset out */
  67. .long RCM_IRQHandler /* RCM Asynchronous Interrupt */
  68. .long LPI2C0_Master_Slave_IRQHandler /* LPI2C0 Master Interrupt and Slave Interrupt */
  69. .long FLEXIO_IRQHandler /* FlexIO Interrupt */
  70. .long LPSPI0_IRQHandler /* LPSPI0 Interrupt */
  71. .long LPSPI1_IRQHandler /* LPSPI1 Interrupt */
  72. .long ADC0_IRQHandler /* ADC0 interrupt request. */
  73. .long CMP0_IRQHandler /* CMP0 interrupt request */
  74. .long LPUART1_RxTx_IRQHandler /* LPUART1 Transmit / Receive Interrupt */
  75. .long LPUART0_RxTx_IRQHandler /* LPUART0 Transmit / Receive Interrupt */
  76.  
  77. .size __isr_vector, . - __isr_vector
  78.  
  79. /* Flash Configuration */
  80. .section .FlashConfig, "a"
  81. .long 0xFFFFFFFF /* 8 bytes backdoor comparison key */
  82. .long 0xFFFFFFFF /* */
  83. .long 0xFFFFFFFF /* 4 bytes program flash protection bytes */
  84. .long 0xFFFF7FFE /* FDPROT:FEPROT:FOPT:FSEC(0xFE = unsecured) */
  85.  
  86. .text
  87. .thumb
  88.  
  89. /* Reset Handler */
  90.  
  91. .thumb_func
  92. .align 2
  93. .globl Reset_Handler
  94. .weak Reset_Handler
  95. .type Reset_Handler, %function
  96. Reset_Handler:
  97. cpsid i /* Mask interrupts */
  98.  
  99. /* Init the rest of the registers */
  100. ldr r1,=0
  101. ldr r2,=0
  102. ldr r3,=0
  103. ldr r4,=0
  104. ldr r5,=0
  105. ldr r6,=0
  106. ldr r7,=0
  107. mov r8,r7
  108. mov r9,r7
  109. mov r10,r7
  110. mov r11,r7
  111. mov r12,r7
  112.  
  113. #ifdef START_FROM_FLASH
  114.  
  115. /* Init ECC RAM */
  116.  
  117. ldr r1, =__RAM_START
  118. ldr r2, =__RAM_END
  119.  
  120. subs r2, r1
  121. subs r2, #1
  122. ble .LC5
  123.  
  124. movs r0, 0
  125. movs r3, #4
  126. .LC4:
  127. str r0, [r1]
  128. add r1, r1, r3
  129. subs r2, 4
  130. bge .LC4
  131. .LC5:
  132. #endif
  133.  
  134. /* Initialize the stack pointer */
  135. ldr r0,=__StackTop
  136. mov r13,r0
  137.  
  138. #ifndef __NO_SYSTEM_INIT
  139. /* Call the system init routine */
  140. ldr r0,=SystemInit
  141. blx r0
  142. #endif
  143.  
  144. /* Init .data and .bss sections */
  145. ldr r0,=init_data_bss
  146. blx r0
  147. cpsie i /* Unmask interrupts */
  148.  
  149. #ifndef __START
  150. #ifdef __EWL__
  151. #define __START __thumb_startup
  152. #else
  153. #define __START _start
  154. #endif
  155. #endif
  156. bl __START
  157.  
  158. JumpToSelf:
  159. b JumpToSelf
  160.  
  161. .pool
  162. .size Reset_Handler, . - Reset_Handler
  163.  
  164. .align 1
  165. .thumb_func
  166. .weak DefaultISR
  167. .type DefaultISR, %function
  168. DefaultISR:
  169. b DefaultISR
  170. .size DefaultISR, . - DefaultISR
  171.  
  172. /* Macro to define default handlers. Default handler
  173. * will be weak symbol and just dead loops. They can be
  174. * overwritten by other handlers */
  175. .macro def_irq_handler handler_name
  176. .weak \handler_name
  177. .set \handler_name, DefaultISR
  178. .endm
  179.  
  180. /* Exception Handlers */
  181. def_irq_handler NMI_Handler
  182. def_irq_handler HardFault_Handler
  183. def_irq_handler SVC_Handler
  184. def_irq_handler PendSV_Handler
  185. def_irq_handler SysTick_Handler
  186. def_irq_handler DMA0_IRQHandler
  187. def_irq_handler DMA1_IRQHandler
  188. def_irq_handler DMA2_IRQHandler
  189. def_irq_handler DMA3_IRQHandler
  190. def_irq_handler DMA_Error_IRQHandler
  191. def_irq_handler ERM_fault_IRQHandler
  192. def_irq_handler RTC_IRQHandler
  193. def_irq_handler RTC_Seconds_IRQHandler
  194. def_irq_handler LPTMR0_IRQHandler
  195. def_irq_handler PORT_IRQHandler
  196. def_irq_handler CAN0_ORed_Err_Wakeup_IRQHandler
  197. def_irq_handler CAN0_ORed_0_31_MB_IRQHandler
  198. def_irq_handler FTM0_Ch0_7_IRQHandler
  199. def_irq_handler FTM0_Fault_IRQHandler
  200. def_irq_handler FTM0_Ovf_Reload_IRQHandler
  201. def_irq_handler FTM1_Ch0_7_IRQHandler
  202. def_irq_handler FTM1_Fault_IRQHandler
  203. def_irq_handler FTM1_Ovf_Reload_IRQHandler
  204. def_irq_handler FTFC_IRQHandler
  205. def_irq_handler PDB0_IRQHandler
  206. def_irq_handler LPIT0_IRQHandler
  207. def_irq_handler SCG_CMU_LVD_LVWSCG_IRQHandler
  208. def_irq_handler WDOG_IRQHandler
  209. def_irq_handler RCM_IRQHandler
  210. def_irq_handler LPI2C0_Master_Slave_IRQHandler
  211. def_irq_handler FLEXIO_IRQHandler
  212. def_irq_handler LPSPI0_IRQHandler
  213. def_irq_handler LPSPI1_IRQHandler
  214. def_irq_handler ADC0_IRQHandler
  215. def_irq_handler CMP0_IRQHandler
  216. def_irq_handler LPUART1_RxTx_IRQHandler
  217. def_irq_handler LPUART0_RxTx_IRQHandler
  218.  
  219. .end
  220.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement