aboutsummaryrefslogtreecommitdiff
path: root/platform/ext/target/nxp/lpcxpresso55s69/Device/Source/iar/startup_LPC55S69_cm33_core0_s.s
blob: a1b77c6cbc361cecfbbec068e6bb7c8da83d6b8b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
;/*
; * Copyright (c) 2017-2020 ARM Limited
; *
; * Licensed under the Apache License, Version 2.0 (the "License");
; * you may not use this file except in compliance with the License.
; * You may obtain a copy of the License at
; *
; *     http://www.apache.org/licenses/LICENSE-2.0
; *
; * Unless required by applicable law or agreed to in writing, software
; * distributed under the License is distributed on an "AS IS" BASIS,
; * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
; * See the License for the specific language governing permissions and
; * limitations under the License.
; */
;
; This file is derivative of CMSIS V5.01 startup_ARMv8MML.s
; Git SHA: 8a1d9d6ee18b143ae5befefa14d89fb5b3f99c75

;/*
;//-------- <<< Use Configuration Wizard in Context Menu >>> ------------------
;*/


; <h> Stack Configuration
;   <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>

                MODULE   ?cstartup

                ;; Forward declaration of sections.
                SECTION  ARM_LIB_STACK_MSP:DATA:NOROOT(3)
                SECTION  ARM_LIB_STACK:DATA:NOROOT(3)

                SECTION  .intvec:CODE:NOROOT(2)

                EXTERN   __iar_program_start
                EXTERN   SystemInit
                PUBLIC   __vector_table
                PUBLIC   __Vectors
                PUBLIC   __Vectors_End
                PUBLIC   __Vectors_Size

                DATA

__vector_table      ;Core Interrupts
                DCD     sfe(ARM_LIB_STACK_MSP)         ; Top of Stack
                DCD     Reset_Handler                  ; Reset Handler
                DCD     NMI_Handler                    ; NMI Handler
                DCD     HardFault_Handler              ; Hard Fault Handler
                DCD     MemManage_Handler              ; MPU Fault Handler
                DCD     BusFault_Handler               ; Bus Fault Handler
                DCD     UsageFault_Handler             ; Usage Fault Handler
                DCD     SecureFault_Handler            ; Secure Fault Handler
                DCD     0                              ; Reserved
                DCD     0                              ; Reserved
                DCD     0                              ; Reserved
                DCD     SVC_Handler                    ; SVCall Handler
                DCD     DebugMon_Handler               ; Debug Monitor Handler
                DCD     0                              ; Reserved
                DCD     PendSV_Handler                 ; PendSV Handler
                DCD     SysTick_Handler                ; SysTick Handler

    /* External Interrupts */
                DCD     WDT_BOD_IRQHandler  /* Windowed watchdog timer, Brownout detect, Flash interrupt */
                DCD     DMA0_IRQHandler  /* DMA0 controller */
                DCD     GINT0_IRQHandler  /* GPIO group 0 */
                DCD     GINT1_IRQHandler  /* GPIO group 1 */
                DCD     PIN_INT0_IRQHandler  /* Pin interrupt 0 or pattern match engine slice 0 */
                DCD     PIN_INT1_IRQHandler  /* Pin interrupt 1or pattern match engine slice 1 */
                DCD     PIN_INT2_IRQHandler  /* Pin interrupt 2 or pattern match engine slice 2 */
                DCD     PIN_INT3_IRQHandler  /* Pin interrupt 3 or pattern match engine slice 3 */
                DCD     UTICK0_IRQHandler  /* Micro-tick Timer */
                DCD     MRT0_IRQHandler  /* Multi-rate timer */
                DCD     CTIMER0_IRQHandler  /* Standard counter/timer CTIMER0 */
                DCD     CTIMER1_IRQHandler  /* Standard counter/timer CTIMER1 */
                DCD     SCT0_IRQHandler  /* SCTimer/PWM */
                DCD     CTIMER3_IRQHandler  /* Standard counter/timer CTIMER3 */
                DCD     FLEXCOMM0_IRQHandler  /* Flexcomm Interface 0 (USART, SPI, I2C, I2S, FLEXCOMM) */
                DCD     FLEXCOMM1_IRQHandler  /* Flexcomm Interface 1 (USART, SPI, I2C, I2S, FLEXCOMM) */
                DCD     FLEXCOMM2_IRQHandler  /* Flexcomm Interface 2 (USART, SPI, I2C, I2S, FLEXCOMM) */
                DCD     FLEXCOMM3_IRQHandler  /* Flexcomm Interface 3 (USART, SPI, I2C, I2S, FLEXCOMM) */
                DCD     FLEXCOMM4_IRQHandler  /* Flexcomm Interface 4 (USART, SPI, I2C, I2S, FLEXCOMM) */
                DCD     FLEXCOMM5_IRQHandler  /* Flexcomm Interface 5 (USART, SPI, I2C, I2S, FLEXCOMM) */
                DCD     FLEXCOMM6_IRQHandler  /* Flexcomm Interface 6 (USART, SPI, I2C, I2S, FLEXCOMM) */
                DCD     FLEXCOMM7_IRQHandler  /* Flexcomm Interface 7 (USART, SPI, I2C, I2S, FLEXCOMM) */
                DCD     ADC0_IRQHandler  /* ADC0  */
                DCD     Reserved39_IRQHandler  /* Reserved interrupt */
                DCD     ACMP_IRQHandler  /* ACMP  interrupts */
                DCD     Reserved41_IRQHandler  /* Reserved interrupt */
                DCD     Reserved42_IRQHandler  /* Reserved interrupt */
                DCD     USB0_NEEDCLK_IRQHandler  /* USB Activity Wake-up Interrupt */
                DCD     USB0_IRQHandler  /* USB device */
                DCD     RTC_IRQHandler  /* RTC alarm and wake-up interrupts */
                DCD     Reserved46_IRQHandler  /* Reserved interrupt */
                DCD     MAILBOX_IRQHandler  /* WAKEUP,Mailbox interrupt (present on selected devices) */
                DCD     PIN_INT4_IRQHandler  /* Pin interrupt 4 or pattern match engine slice 4 int */
                DCD     PIN_INT5_IRQHandler  /* Pin interrupt 5 or pattern match engine slice 5 int */
                DCD     PIN_INT6_IRQHandler  /* Pin interrupt 6 or pattern match engine slice 6 int */
                DCD     PIN_INT7_IRQHandler  /* Pin interrupt 7 or pattern match engine slice 7 int */
                DCD     CTIMER2_IRQHandler  /* Standard counter/timer CTIMER2 */
                DCD     CTIMER4_IRQHandler  /* Standard counter/timer CTIMER4 */
                DCD     OS_EVENT_IRQHandler  /* OSEVTIMER0 and OSEVTIMER0_WAKEUP interrupts */
                DCD     Reserved55_IRQHandler  /* Reserved interrupt */
                DCD     Reserved56_IRQHandler  /* Reserved interrupt */
                DCD     Reserved57_IRQHandler  /* Reserved interrupt */
                DCD     SDIO_IRQHandler  /* SD/MMC  */
                DCD     Reserved59_IRQHandler  /* Reserved interrupt */
                DCD     Reserved60_IRQHandler  /* Reserved interrupt */
                DCD     Reserved61_IRQHandler  /* Reserved interrupt */
                DCD     USB1_UTMI_IRQHandler  /* USB1_UTMI */
                DCD     USB1_IRQHandler  /* USB1 interrupt */
                DCD     USB1_NEEDCLK_IRQHandler  /* USB1 activity */
                DCD     SEC_HYPERVISOR_CALL_IRQHandler  /* SEC_HYPERVISOR_CALL interrupt */
                DCD     SEC_GPIO_INT0_IRQ0_IRQHandler  /* SEC_GPIO_INT0_IRQ0 interrupt */
                DCD     SEC_GPIO_INT0_IRQ1_IRQHandler  /* SEC_GPIO_INT0_IRQ1 interrupt */
                DCD     PLU_IRQHandler  /* PLU interrupt */
                DCD     SEC_VIO_IRQHandler  /* SEC_VIO interrupt */
                DCD     HASHCRYPT_IRQHandler  /* HASHCRYPT interrupt */
                DCD     CASER_IRQHandler  /* CASPER interrupt */
                DCD     PUF_IRQHandler  /* PUF interrupt */
                DCD     PQ_IRQHandler  /* PQ interrupt */
                DCD     DMA1_IRQHandler  /* DMA1 interrupt */
                DCD     LSPI_HS_IRQHandler  /* Flexcomm Interface 8 (SPI, , FLEXCOMM) */

__Vectors_End

__Vectors       EQU     __vector_table
__Vectors_Size  EQU     __Vectors_End - __Vectors

; Reset Handler
                PUBWEAK  Reset_Handler
                SECTION  .text:CODE:REORDER:NOROOT(2)
Reset_Handler
                CPSID   i              ; Disable IRQs
                LDR     R0, =SystemInit
                BLX     R0
                LDR     R0, =sfe(ARM_LIB_STACK)      ; End of PROC_STACK
                MSR     PSP, R0
                MRS     R0, control    ; Get control value
                ORR     R0, R0, #2     ; Select switch to PSP
                MSR     control, R0
                LDR     R0, =__iar_program_start
                BX      R0
End_Of_Main
                B       .


; Dummy Exception Handlers (infinite loops which can be modified)
Default_Handler MACRO handler_name
                PUBWEAK  handler_name
handler_name
                B       .
                ENDM

                Default_Handler NMI_Handler
                Default_Handler HardFault_Handler
                Default_Handler MemManage_Handler
                Default_Handler BusFault_Handler
                Default_Handler UsageFault_Handler
                Default_Handler SecureFault_Handler
                Default_Handler SVC_Handler
                Default_Handler DebugMon_Handler
                Default_Handler PendSV_Handler
                Default_Handler SysTick_Handler

                Default_Handler WDT_BOD_IRQHandler
                Default_Handler DMA0_IRQHandler
                Default_Handler GINT0_IRQHandler
                Default_Handler GINT1_IRQHandler
                Default_Handler PIN_INT0_IRQHandler
                Default_Handler PIN_INT1_IRQHandler
                Default_Handler PIN_INT2_IRQHandler
                Default_Handler PIN_INT3_IRQHandler
                Default_Handler UTICK0_IRQHandler
                Default_Handler MRT0_IRQHandler
                Default_Handler CTIMER0_IRQHandler
                Default_Handler CTIMER1_IRQHandler
                Default_Handler SCT0_IRQHandler
                Default_Handler CTIMER3_IRQHandler
                Default_Handler FLEXCOMM0_IRQHandler
                Default_Handler FLEXCOMM1_IRQHandler
                Default_Handler FLEXCOMM2_IRQHandler
                Default_Handler FLEXCOMM3_IRQHandler
                Default_Handler FLEXCOMM4_IRQHandler
                Default_Handler FLEXCOMM5_IRQHandler
                Default_Handler FLEXCOMM6_IRQHandler
                Default_Handler FLEXCOMM7_IRQHandler
                Default_Handler ADC0_IRQHandler
                Default_Handler Reserved39_IRQHandler
                Default_Handler ACMP_IRQHandler
                Default_Handler Reserved41_IRQHandler
                Default_Handler Reserved42_IRQHandler
                Default_Handler USB0_NEEDCLK_IRQHandler
                Default_Handler USB0_IRQHandler
                Default_Handler RTC_IRQHandler
                Default_Handler Reserved46_IRQHandler
                Default_Handler MAILBOX_IRQHandler
                Default_Handler PIN_INT4_IRQHandler
                Default_Handler PIN_INT5_IRQHandler
                Default_Handler PIN_INT6_IRQHandler
                Default_Handler PIN_INT7_IRQHandler
                Default_Handler CTIMER2_IRQHandler
                Default_Handler CTIMER4_IRQHandler
                Default_Handler OS_EVENT_IRQHandler
                Default_Handler Reserved55_IRQHandler
                Default_Handler Reserved56_IRQHandler
                Default_Handler Reserved57_IRQHandler
                Default_Handler SDIO_IRQHandler
                Default_Handler Reserved59_IRQHandler
                Default_Handler Reserved60_IRQHandler
                Default_Handler Reserved61_IRQHandler
                Default_Handler USB1_UTMI_IRQHandler
                Default_Handler USB1_IRQHandler
                Default_Handler USB1_NEEDCLK_IRQHandler
                Default_Handler SEC_HYPERVISOR_CALL_IRQHandler
                Default_Handler SEC_GPIO_INT0_IRQ0_IRQHandler
                Default_Handler SEC_GPIO_INT0_IRQ1_IRQHandler
                Default_Handler PLU_IRQHandler
                Default_Handler SEC_VIO_IRQHandler
                Default_Handler HASHCRYPT_IRQHandler
                Default_Handler CASER_IRQHandler
                Default_Handler PUF_IRQHandler
                Default_Handler PQ_IRQHandler
                Default_Handler DMA1_IRQHandler
                Default_Handler LSPI_HS_IRQHandler

                END