]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_M0+_LPC51U68_LPCXpresso/IAR_specific/startup_LPC51U68.s
Remove build files accidentally checked in.
[freertos] / FreeRTOS / Demo / CORTEX_M0+_LPC51U68_LPCXpresso / IAR_specific / startup_LPC51U68.s
1 ;/*****************************************************************************\r
2 ; * @file:    startup_LPC51U68.s\r
3 ; * @purpose: CMSIS Cortex-M0 Core Device Startup File\r
4 ; *           LPC51U68\r
5 ; * @version: 1.0\r
6 ; * @date:    2017-12-15\r
7 ; *----------------------------------------------------------------------------\r
8 ; *\r
9 ; Copyright 1997-2016 Freescale Semiconductor, Inc.\r
10 ; Copyright 2016-2018 NXP\r
11 ;\r
12 ; SPDX-License-Identifier: BSD-3-Clause\r
13 ;\r
14 ; The modules in this file are included in the libraries, and may be replaced\r
15 ; by any user-defined modules that define the PUBLIC symbol _program_start or\r
16 ; a user defined start symbol.\r
17 ; To override the cstartup defined in the library, simply add your modified\r
18 ; version to the workbench project.\r
19 ;\r
20 ; The vector table is normally located at address 0.\r
21 ; When debugging in RAM, it can be located in RAM, aligned to at least 2^6.\r
22 ; The name "__vector_table" has special meaning for C-SPY:\r
23 ; it is where the SP start value is found, and the NVIC vector\r
24 ; table register (VTOR) is initialized to this address if != 0.\r
25 ;\r
26 ; Cortex-M version\r
27 ;\r
28 \r
29         MODULE  ?cstartup\r
30 \r
31         ;; Forward declaration of sections.\r
32         SECTION CSTACK:DATA:NOROOT(3)\r
33 \r
34         SECTION .intvec:CODE:NOROOT(2)\r
35 \r
36         EXTERN  __iar_program_start\r
37         EXTERN  SystemInit\r
38         PUBLIC  __vector_table\r
39         PUBLIC  __vector_table_0x1c\r
40         PUBLIC  __Vectors\r
41         PUBLIC  __Vectors_End\r
42         PUBLIC  __Vectors_Size\r
43 \r
44         DATA\r
45 \r
46 __vector_table\r
47         DCD     sfe(CSTACK)\r
48         DCD     Reset_Handler\r
49 \r
50         DCD     NMI_Handler\r
51         DCD     HardFault_Handler\r
52         DCD     0\r
53         DCD     0\r
54         DCD     0\r
55 __vector_table_0x1c\r
56         DCD     0\r
57         DCD     0\r
58         DCD     0\r
59         DCD     0\r
60         DCD     SVC_Handler\r
61         DCD     0\r
62         DCD     0\r
63         DCD     PendSV_Handler\r
64         DCD     SysTick_Handler\r
65 \r
66         ; External Interrupts\r
67         DCD     WDT_BOD_IRQHandler  ; Windowed watchdog timer, Brownout detect\r
68         DCD     DMA0_IRQHandler  ; DMA controller\r
69         DCD     GINT0_IRQHandler  ; GPIO group 0\r
70         DCD     GINT1_IRQHandler  ; GPIO group 1\r
71         DCD     PIN_INT0_IRQHandler  ; Pin interrupt 0 or pattern match engine slice 0\r
72         DCD     PIN_INT1_IRQHandler  ; Pin interrupt 1or pattern match engine slice 1\r
73         DCD     PIN_INT2_IRQHandler  ; Pin interrupt 2 or pattern match engine slice 2\r
74         DCD     PIN_INT3_IRQHandler  ; Pin interrupt 3 or pattern match engine slice 3\r
75         DCD     UTICK0_IRQHandler  ; Micro-tick Timer\r
76         DCD     MRT0_IRQHandler  ; Multi-rate timer\r
77         DCD     CTIMER0_IRQHandler  ; Standard counter/timer CTIMER0\r
78         DCD     CTIMER1_IRQHandler  ; Standard counter/timer CTIMER1\r
79         DCD     SCT0_IRQHandler  ; SCTimer/PWM\r
80         DCD     CTIMER3_IRQHandler  ; Standard counter/timer CTIMER3\r
81         DCD     FLEXCOMM0_IRQHandler  ; Flexcomm Interface 0 (USART, SPI, I2C)\r
82         DCD     FLEXCOMM1_IRQHandler  ; Flexcomm Interface 1 (USART, SPI, I2C)\r
83         DCD     FLEXCOMM2_IRQHandler  ; Flexcomm Interface 2 (USART, SPI, I2C)\r
84         DCD     FLEXCOMM3_IRQHandler  ; Flexcomm Interface 3 (USART, SPI, I2C)\r
85         DCD     FLEXCOMM4_IRQHandler  ; Flexcomm Interface 4 (USART, SPI, I2C)\r
86         DCD     FLEXCOMM5_IRQHandler  ; Flexcomm Interface 5 (USART, SPI, I2C)\r
87         DCD     FLEXCOMM6_IRQHandler  ; Flexcomm Interface 6 (USART, SPI, I2C, I2S)\r
88         DCD     FLEXCOMM7_IRQHandler  ; Flexcomm Interface 7 (USART, SPI, I2C, I2S)\r
89         DCD     ADC0_SEQA_IRQHandler  ; ADC0 sequence A completion.\r
90         DCD     ADC0_SEQB_IRQHandler  ; ADC0 sequence B completion.\r
91         DCD     ADC0_THCMP_IRQHandler  ; ADC0 threshold compare and error.\r
92         DCD     Reserved41_IRQHandler  ; Reserved interrupt\r
93         DCD     Reserved42_IRQHandler  ; Reserved interrupt\r
94         DCD     USB0_NEEDCLK_IRQHandler  ; USB Activity Wake-up Interrupt\r
95         DCD     USB0_IRQHandler  ; USB device\r
96         DCD     RTC_IRQHandler  ; RTC alarm and wake-up interrupts\r
97         DCD     Reserved46_IRQHandler  ; Reserved interrupt\r
98         DCD     Reserved47_IRQHandler  ; Reserved interrupt\r
99 __Vectors_End\r
100 \r
101 ; Code Read Protection Level (CRP)\r
102 ;    <0xFFFFFFFF=> Disabled\r
103 ;    <0x4E697370=> NO_ISP\r
104 ;    <0x12345678=> CRP1\r
105 ;    <0x87654321=> CRP2\r
106 ;    <0x43218765=> CRP3\r
107 \r
108 #if !defined NO_CRP\r
109         SECTION .crp:CODE\r
110 __CRP\r
111         DCD     0xFFFFFFFF\r
112 __CRP_End\r
113 #endif\r
114 \r
115 __Vectors       EQU   __vector_table\r
116 __Vectors_Size  EQU     __Vectors_End - __Vectors\r
117 \r
118 \r
119 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
120 ;;\r
121 ;; Default interrupt handlers.\r
122 ;;\r
123         THUMB\r
124 \r
125         PUBWEAK Reset_Handler\r
126         SECTION .text:CODE:REORDER:NOROOT(2)\r
127 Reset_Handler\r
128         LDR     r0, =SystemInit\r
129         BLX     r0\r
130         LDR     r0, =__iar_program_start\r
131         BX      r0\r
132 \r
133         PUBWEAK NMI_Handler\r
134         SECTION .text:CODE:REORDER:NOROOT(1)\r
135 NMI_Handler\r
136         B .\r
137 \r
138         PUBWEAK HardFault_Handler\r
139         SECTION .text:CODE:REORDER:NOROOT(1)\r
140 HardFault_Handler\r
141         B .\r
142 \r
143         PUBWEAK SVC_Handler\r
144         SECTION .text:CODE:REORDER:NOROOT(1)\r
145 SVC_Handler\r
146         B .\r
147 \r
148         PUBWEAK PendSV_Handler\r
149         SECTION .text:CODE:REORDER:NOROOT(1)\r
150 PendSV_Handler\r
151         B .\r
152 \r
153         PUBWEAK SysTick_Handler\r
154         SECTION .text:CODE:REORDER:NOROOT(1)\r
155 SysTick_Handler\r
156         B .\r
157 \r
158         PUBWEAK WDT_BOD_IRQHandler\r
159         PUBWEAK WDT_BOD_DriverIRQHandler\r
160         SECTION .text:CODE:REORDER:NOROOT(2)\r
161 WDT_BOD_IRQHandler\r
162         LDR     R0, =WDT_BOD_DriverIRQHandler\r
163         BX      R0\r
164         PUBWEAK DMA0_IRQHandler\r
165         PUBWEAK DMA0_DriverIRQHandler\r
166         SECTION .text:CODE:REORDER:NOROOT(2)\r
167 DMA0_IRQHandler\r
168         LDR     R0, =DMA0_DriverIRQHandler\r
169         BX      R0\r
170         PUBWEAK GINT0_IRQHandler\r
171         PUBWEAK GINT0_DriverIRQHandler\r
172         SECTION .text:CODE:REORDER:NOROOT(2)\r
173 GINT0_IRQHandler\r
174         LDR     R0, =GINT0_DriverIRQHandler\r
175         BX      R0\r
176         PUBWEAK GINT1_IRQHandler\r
177         PUBWEAK GINT1_DriverIRQHandler\r
178         SECTION .text:CODE:REORDER:NOROOT(2)\r
179 GINT1_IRQHandler\r
180         LDR     R0, =GINT1_DriverIRQHandler\r
181         BX      R0\r
182         PUBWEAK PIN_INT0_IRQHandler\r
183         PUBWEAK PIN_INT0_DriverIRQHandler\r
184         SECTION .text:CODE:REORDER:NOROOT(2)\r
185 PIN_INT0_IRQHandler\r
186         LDR     R0, =PIN_INT0_DriverIRQHandler\r
187         BX      R0\r
188         PUBWEAK PIN_INT1_IRQHandler\r
189         PUBWEAK PIN_INT1_DriverIRQHandler\r
190         SECTION .text:CODE:REORDER:NOROOT(2)\r
191 PIN_INT1_IRQHandler\r
192         LDR     R0, =PIN_INT1_DriverIRQHandler\r
193         BX      R0\r
194         PUBWEAK PIN_INT2_IRQHandler\r
195         PUBWEAK PIN_INT2_DriverIRQHandler\r
196         SECTION .text:CODE:REORDER:NOROOT(2)\r
197 PIN_INT2_IRQHandler\r
198         LDR     R0, =PIN_INT2_DriverIRQHandler\r
199         BX      R0\r
200         PUBWEAK PIN_INT3_IRQHandler\r
201         PUBWEAK PIN_INT3_DriverIRQHandler\r
202         SECTION .text:CODE:REORDER:NOROOT(2)\r
203 PIN_INT3_IRQHandler\r
204         LDR     R0, =PIN_INT3_DriverIRQHandler\r
205         BX      R0\r
206         PUBWEAK UTICK0_IRQHandler\r
207         PUBWEAK UTICK0_DriverIRQHandler\r
208         SECTION .text:CODE:REORDER:NOROOT(2)\r
209 UTICK0_IRQHandler\r
210         LDR     R0, =UTICK0_DriverIRQHandler\r
211         BX      R0\r
212         PUBWEAK MRT0_IRQHandler\r
213         PUBWEAK MRT0_DriverIRQHandler\r
214         SECTION .text:CODE:REORDER:NOROOT(2)\r
215 MRT0_IRQHandler\r
216         LDR     R0, =MRT0_DriverIRQHandler\r
217         BX      R0\r
218         PUBWEAK CTIMER0_IRQHandler\r
219         PUBWEAK CTIMER0_DriverIRQHandler\r
220         SECTION .text:CODE:REORDER:NOROOT(2)\r
221 CTIMER0_IRQHandler\r
222         LDR     R0, =CTIMER0_DriverIRQHandler\r
223         BX      R0\r
224         PUBWEAK CTIMER1_IRQHandler\r
225         PUBWEAK CTIMER1_DriverIRQHandler\r
226         SECTION .text:CODE:REORDER:NOROOT(2)\r
227 CTIMER1_IRQHandler\r
228         LDR     R0, =CTIMER1_DriverIRQHandler\r
229         BX      R0\r
230         PUBWEAK SCT0_IRQHandler\r
231         PUBWEAK SCT0_DriverIRQHandler\r
232         SECTION .text:CODE:REORDER:NOROOT(2)\r
233 SCT0_IRQHandler\r
234         LDR     R0, =SCT0_DriverIRQHandler\r
235         BX      R0\r
236         PUBWEAK CTIMER3_IRQHandler\r
237         PUBWEAK CTIMER3_DriverIRQHandler\r
238         SECTION .text:CODE:REORDER:NOROOT(2)\r
239 CTIMER3_IRQHandler\r
240         LDR     R0, =CTIMER3_DriverIRQHandler\r
241         BX      R0\r
242         PUBWEAK FLEXCOMM0_IRQHandler\r
243         PUBWEAK FLEXCOMM0_DriverIRQHandler\r
244         SECTION .text:CODE:REORDER:NOROOT(2)\r
245 FLEXCOMM0_IRQHandler\r
246         LDR     R0, =FLEXCOMM0_DriverIRQHandler\r
247         BX      R0\r
248         PUBWEAK FLEXCOMM1_IRQHandler\r
249         PUBWEAK FLEXCOMM1_DriverIRQHandler\r
250         SECTION .text:CODE:REORDER:NOROOT(2)\r
251 FLEXCOMM1_IRQHandler\r
252         LDR     R0, =FLEXCOMM1_DriverIRQHandler\r
253         BX      R0\r
254         PUBWEAK FLEXCOMM2_IRQHandler\r
255         PUBWEAK FLEXCOMM2_DriverIRQHandler\r
256         SECTION .text:CODE:REORDER:NOROOT(2)\r
257 FLEXCOMM2_IRQHandler\r
258         LDR     R0, =FLEXCOMM2_DriverIRQHandler\r
259         BX      R0\r
260         PUBWEAK FLEXCOMM3_IRQHandler\r
261         PUBWEAK FLEXCOMM3_DriverIRQHandler\r
262         SECTION .text:CODE:REORDER:NOROOT(2)\r
263 FLEXCOMM3_IRQHandler\r
264         LDR     R0, =FLEXCOMM3_DriverIRQHandler\r
265         BX      R0\r
266         PUBWEAK FLEXCOMM4_IRQHandler\r
267         PUBWEAK FLEXCOMM4_DriverIRQHandler\r
268         SECTION .text:CODE:REORDER:NOROOT(2)\r
269 FLEXCOMM4_IRQHandler\r
270         LDR     R0, =FLEXCOMM4_DriverIRQHandler\r
271         BX      R0\r
272         PUBWEAK FLEXCOMM5_IRQHandler\r
273         PUBWEAK FLEXCOMM5_DriverIRQHandler\r
274         SECTION .text:CODE:REORDER:NOROOT(2)\r
275 FLEXCOMM5_IRQHandler\r
276         LDR     R0, =FLEXCOMM5_DriverIRQHandler\r
277         BX      R0\r
278         PUBWEAK FLEXCOMM6_IRQHandler\r
279         PUBWEAK FLEXCOMM6_DriverIRQHandler\r
280         SECTION .text:CODE:REORDER:NOROOT(2)\r
281 FLEXCOMM6_IRQHandler\r
282         LDR     R0, =FLEXCOMM6_DriverIRQHandler\r
283         BX      R0\r
284         PUBWEAK FLEXCOMM7_IRQHandler\r
285         PUBWEAK FLEXCOMM7_DriverIRQHandler\r
286         SECTION .text:CODE:REORDER:NOROOT(2)\r
287 FLEXCOMM7_IRQHandler\r
288         LDR     R0, =FLEXCOMM7_DriverIRQHandler\r
289         BX      R0\r
290         PUBWEAK ADC0_SEQA_IRQHandler\r
291         PUBWEAK ADC0_SEQA_DriverIRQHandler\r
292         SECTION .text:CODE:REORDER:NOROOT(2)\r
293 ADC0_SEQA_IRQHandler\r
294         LDR     R0, =ADC0_SEQA_DriverIRQHandler\r
295         BX      R0\r
296         PUBWEAK ADC0_SEQB_IRQHandler\r
297         PUBWEAK ADC0_SEQB_DriverIRQHandler\r
298         SECTION .text:CODE:REORDER:NOROOT(2)\r
299 ADC0_SEQB_IRQHandler\r
300         LDR     R0, =ADC0_SEQB_DriverIRQHandler\r
301         BX      R0\r
302         PUBWEAK ADC0_THCMP_IRQHandler\r
303         PUBWEAK ADC0_THCMP_DriverIRQHandler\r
304         SECTION .text:CODE:REORDER:NOROOT(2)\r
305 ADC0_THCMP_IRQHandler\r
306         LDR     R0, =ADC0_THCMP_DriverIRQHandler\r
307         BX      R0\r
308         PUBWEAK Reserved41_IRQHandler\r
309         PUBWEAK Reserved41_DriverIRQHandler\r
310         SECTION .text:CODE:REORDER:NOROOT(2)\r
311 Reserved41_IRQHandler\r
312         LDR     R0, =Reserved41_DriverIRQHandler\r
313         BX      R0\r
314         PUBWEAK Reserved42_IRQHandler\r
315         PUBWEAK Reserved42_DriverIRQHandler\r
316         SECTION .text:CODE:REORDER:NOROOT(2)\r
317 Reserved42_IRQHandler\r
318         LDR     R0, =Reserved42_DriverIRQHandler\r
319         BX      R0\r
320         PUBWEAK USB0_NEEDCLK_IRQHandler\r
321         PUBWEAK USB0_NEEDCLK_DriverIRQHandler\r
322         SECTION .text:CODE:REORDER:NOROOT(2)\r
323 USB0_NEEDCLK_IRQHandler\r
324         LDR     R0, =USB0_NEEDCLK_DriverIRQHandler\r
325         BX      R0\r
326         PUBWEAK USB0_IRQHandler\r
327         PUBWEAK USB0_DriverIRQHandler\r
328         SECTION .text:CODE:REORDER:NOROOT(2)\r
329 USB0_IRQHandler\r
330         LDR     R0, =USB0_DriverIRQHandler\r
331         BX      R0\r
332         PUBWEAK RTC_IRQHandler\r
333         PUBWEAK RTC_DriverIRQHandler\r
334         SECTION .text:CODE:REORDER:NOROOT(2)\r
335 RTC_IRQHandler\r
336         LDR     R0, =RTC_DriverIRQHandler\r
337         BX      R0\r
338         PUBWEAK Reserved46_IRQHandler\r
339         PUBWEAK Reserved46_DriverIRQHandler\r
340         SECTION .text:CODE:REORDER:NOROOT(2)\r
341 Reserved46_IRQHandler\r
342         LDR     R0, =Reserved46_DriverIRQHandler\r
343         BX      R0\r
344         PUBWEAK Reserved47_IRQHandler\r
345         PUBWEAK Reserved47_DriverIRQHandler\r
346         SECTION .text:CODE:REORDER:NOROOT(2)\r
347 Reserved47_IRQHandler\r
348         LDR     R0, =Reserved47_DriverIRQHandler\r
349         BX      R0\r
350 WDT_BOD_DriverIRQHandler\r
351 DMA0_DriverIRQHandler\r
352 GINT0_DriverIRQHandler\r
353 GINT1_DriverIRQHandler\r
354 PIN_INT0_DriverIRQHandler\r
355 PIN_INT1_DriverIRQHandler\r
356 PIN_INT2_DriverIRQHandler\r
357 PIN_INT3_DriverIRQHandler\r
358 UTICK0_DriverIRQHandler\r
359 MRT0_DriverIRQHandler\r
360 CTIMER0_DriverIRQHandler\r
361 CTIMER1_DriverIRQHandler\r
362 SCT0_DriverIRQHandler\r
363 CTIMER3_DriverIRQHandler\r
364 FLEXCOMM0_DriverIRQHandler\r
365 FLEXCOMM1_DriverIRQHandler\r
366 FLEXCOMM2_DriverIRQHandler\r
367 FLEXCOMM3_DriverIRQHandler\r
368 FLEXCOMM4_DriverIRQHandler\r
369 FLEXCOMM5_DriverIRQHandler\r
370 FLEXCOMM6_DriverIRQHandler\r
371 FLEXCOMM7_DriverIRQHandler\r
372 ADC0_SEQA_DriverIRQHandler\r
373 ADC0_SEQB_DriverIRQHandler\r
374 ADC0_THCMP_DriverIRQHandler\r
375 Reserved41_DriverIRQHandler\r
376 Reserved42_DriverIRQHandler\r
377 USB0_NEEDCLK_DriverIRQHandler\r
378 USB0_DriverIRQHandler\r
379 RTC_DriverIRQHandler\r
380 Reserved46_DriverIRQHandler\r
381 Reserved47_DriverIRQHandler\r
382 DefaultISR\r
383         B .\r
384 \r
385         END\r