summaryrefslogtreecommitdiff
path: root/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.s
blob: c367752b0118fd56169d93e6bbebb75da357c6c2 (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
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
; * ---------------------------------------------------------------------------------------
; *  @file:    startup_MCIMX7D_M4.s
; *  @purpose: CMSIS Cortex-M4 Core Device Startup File
; *            IMX7D_M4
; *  @version: 0.1
; *  @date:    2015-5-27
; *  @build:   b54573
; * ---------------------------------------------------------------------------------------
; *
; * Copyright (c) 2015 , Freescale Semiconductor, Inc.
; * All rights reserved.
; *
; * Redistribution and use in source and binary forms, with or without modification,
; * are permitted provided that the following conditions are met:
; *
; * o Redistributions of source code must retain the above copyright notice, this list
; *   of conditions and the following disclaimer.
; *
; * o Redistributions in binary form must reproduce the above copyright notice, this
; *   list of conditions and the following disclaimer in the documentation and/or
; *   other materials provided with the distribution.
; *
; * o Neither the name of Freescale Semiconductor, Inc. nor the names of its
; *   contributors may be used to endorse or promote products derived from this
; *   software without specific prior written permission.
; *
; * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
; * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
; * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
; * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
; * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
; * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
; * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
; * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
; * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
; *
; *------- <<< Use Configuration Wizard in Context Menu >>> ------------------
; *
; *****************************************************************************/


                PRESERVE8
                THUMB


; Vector Table Mapped to Address 0 at Reset

                AREA    RESET, DATA, READONLY
                EXPORT  __Vectors
                EXPORT  __Vectors_End
                EXPORT  __Vectors_Size
                IMPORT |Image$$ARM_LIB_STACK$$ZI$$Limit|
__Vectors       DCD    |Image$$ARM_LIB_STACK$$ZI$$Limit|  ; 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     0                                   ;Reserved
                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     DefaultISR                          ;Reserved Interrupt 16
                DCD     DefaultISR                          ;Reserved Interrupt 17
                DCD     DefaultISR                          ;Reserved Interrupt 18
                DCD     DefaultISR                          ;Reserved Interrupt 19
                DCD     DefaultISR                          ;Reserved Interrupt 20
                DCD     DefaultISR                          ;Reserved Interrupt 21
                DCD     DefaultISR                          ;Reserved Interrupt 22
                DCD     DefaultISR                          ;Reserved Interrupt 23
                DCD     DefaultISR                          ;Reserved Interrupt 24
                DCD     DefaultISR                          ;Reserved Interrupt 25
                DCD     WDOG3_Handler                       ;WDOG3 Handler
                DCD     SEMA4_Handler                       ;SEMA4_Handler
                DCD     DefaultISR                          ;Reserved Interrupt 28
                DCD     DefaultISR                          ;Reserved Interrupt 29
                DCD     DefaultISR                          ;Reserved Interrupt 30
                DCD     DefaultISR                          ;Reserved Interrupt 31
                DCD     UART6_Handler                       ;UART6 Handler
                DCD     DefaultISR                          ;Reserved Interrupt 33
                DCD     DefaultISR                          ;Reserved Interrupt 34
                DCD     DefaultISR                          ;Reserved Interrupt 35
                DCD     DefaultISR                          ;Reserved Interrupt 36
                DCD     DefaultISR                          ;Reserved Interrupt 37
                DCD     DefaultISR                          ;Reserved Interrupt 38
                DCD     DefaultISR                          ;Reserved Interrupt 39
                DCD     DefaultISR                          ;Reserved Interrupt 40
                DCD     DefaultISR                          ;Reserved Interrupt 41
                DCD     UART1_Handler                       ;UART1 Handler
                DCD     UART2_Handler                       ;UART2 Handler
                DCD     UART3_Handler                       ;UART3 Handler
                DCD     UART4_Handler                       ;UART4 Handler
                DCD     UART5_Handler                       ;UART5 Handler
                DCD     eCSPI1_Handler                      ;eCSPI1 Handler
                DCD     eCSPI2_Handler                      ;eCSPI2 Handler
                DCD     eCSPI3_Handler                      ;eCSPI3 Handler
                DCD     eCSPI4_Handler                      ;eCSPI4 Handler
                DCD     I2C1_Handler                        ;I2C1 Handler
                DCD     I2C2_Handler                        ;I2C2 Handler
                DCD     I2C3_Handler                        ;I2C3 Handler
                DCD     I2C4_Handler                        ;I2C4 Handler
                DCD     DefaultISR                          ;Reserved Interrupt 55
                DCD     DefaultISR                          ;Reserved Interrupt 56
                DCD     DefaultISR                          ;Reserved Interrupt 57
                DCD     DefaultISR                          ;Reserved Interrupt 58
                DCD     DefaultISR                          ;Reserved Interrupt 59
                DCD     DefaultISR                          ;Reserved Interrupt 60
                DCD     DefaultISR                          ;Reserved Interrupt 61
                DCD     DefaultISR                          ;Reserved Interrupt 62
                DCD     DefaultISR                          ;Reserved Interrupt 63
                DCD     DefaultISR                          ;Reserved Interrupt 64
                DCD     DefaultISR                          ;Reserved Interrupt 65
                DCD     DefaultISR                          ;Reserved Interrupt 66
                DCD     DefaultISR                          ;Reserved Interrupt 67
                DCD     GPT4_Handler                        ;GPT4 handler
                DCD     GPT3_Handler                        ;GPT3 handler
                DCD     GPT2_Handler                        ;GPT2 handler
                DCD     GPT1_Handler                        ;GPT1 handler
                DCD     GPIO1_INT7_Handler                  ;Active HIGH Interrupt from INT7 from GPIO
                DCD     GPIO1_INT6_Handler                  ;Active HIGH Interrupt from INT6 from GPIO
                DCD     GPIO1_INT5_Handler                  ;Active HIGH Interrupt from INT5 from GPIO
                DCD     GPIO1_INT4_Handler                  ;Active HIGH Interrupt from INT4 from GPIO
                DCD     GPIO1_INT3_Handler                  ;Active HIGH Interrupt from INT3 from GPIO
                DCD     GPIO1_INT2_Handler                  ;Active HIGH Interrupt from INT2 from GPIO
                DCD     GPIO1_INT1_Handler                  ;Active HIGH Interrupt from INT1 from GPIO
                DCD     GPIO1_INT0_Handler                  ;Active HIGH Interrupt from INT0 from GPIO
                DCD     GPIO1_INT15_0_Handler               ;Combined interrupt indication for GPIO1 signal 0 throughout 15
                DCD     GPIO1_INT31_16_Handler              ;Combined interrupt indication for GPIO1 signal 16 throughout 31
                DCD     GPIO2_INT15_0_Handler               ;Combined interrupt indication for GPIO2 signal 0 throughout 15
                DCD     GPIO2_INT31_16_Handler              ;Combined interrupt indication for GPIO2 signal 16 throughout 31
                DCD     GPIO3_INT15_0_Handler               ;Combined interrupt indication for GPIO3 signal 0 throughout 15
                DCD     GPIO3_INT31_16_Handler              ;Combined interrupt indication for GPIO3 signal 16 throughout 31
                DCD     GPIO4_INT15_0_Handler               ;Combined interrupt indication for GPIO4 signal 0 throughout 15
                DCD     GPIO4_INT31_16_Handler              ;Combined interrupt indication for GPIO4 signal 16 throughout 31
                DCD     GPIO5_INT15_0_Handler               ;Combined interrupt indication for GPIO5 signal 0 throughout 15
                DCD     GPIO5_INT31_16_Handler              ;Combined interrupt indication for GPIO5 signal 16 throughout 31
                DCD     GPIO6_INT15_0_Handler               ;Combined interrupt indication for GPIO6 signal 0 throughout 15
                DCD     GPIO6_INT31_16_Handler              ;Combined interrupt indication for GPIO6 signal 16 throughout 31
                DCD     GPIO7_INT15_0_Handler               ;Combined interrupt indication for GPIO7 signal 0 throughout 15
                DCD     GPIO7_INT31_16_Handler              ;Combined interrupt indication for GPIO7 signal 16 throughout 31
                DCD     DefaultISR                          ;Reserved Interrupt 94
                DCD     DefaultISR                          ;Reserved Interrupt 95
                DCD     DefaultISR                          ;Reserved Interrupt 96
                DCD     DefaultISR                          ;Reserved Interrupt 97
                DCD     DefaultISR                          ;Reserved Interrupt 98
                DCD     DefaultISR                          ;Reserved Interrupt 99
                DCD     DefaultISR                          ;Reserved Interrupt 100
                DCD     DefaultISR                          ;Reserved Interrupt 101
                DCD     DefaultISR                          ;Reserved Interrupt 102
                DCD     DefaultISR                          ;Reserved Interrupt 103
                DCD     DefaultISR                          ;Reserved Interrupt 104
                DCD     DefaultISR                          ;Reserved Interrupt 105
                DCD     DefaultISR                          ;Reserved Interrupt 106
                DCD     DefaultISR                          ;Reserved Interrupt 107
                DCD     DefaultISR                          ;Reserved Interrupt 108
                DCD     DefaultISR                          ;Reserved Interrupt 109
                DCD     DefaultISR                          ;Reserved Interrupt 110
                DCD     DefaultISR                          ;Reserved Interrupt 111
                DCD     DefaultISR                          ;Reserved Interrupt 112
                DCD     MU_Handler                          ;MU_Handler
                DCD     ADC1_Handler                        ;ADC1 Handler
                DCD     ADC2_Handler                        ;ADC2 Handler
                DCD     DefaultISR                          ;Reserved Interrupt 116
                DCD     DefaultISR                          ;Reserved Interrupt 117
                DCD     DefaultISR                          ;Reserved Interrupt 118
                DCD     DefaultISR                          ;Reserved Interrupt 119
                DCD     DefaultISR                          ;Reserved Interrupt 120
                DCD     DefaultISR                          ;Reserved Interrupt 121
                DCD     DefaultISR                          ;Reserved Interrupt 122
                DCD     DefaultISR                          ;Reserved Interrupt 123
                DCD     DefaultISR                          ;Reserved Interrupt 124
                DCD     DefaultISR                          ;Reserved Interrupt 125
                DCD     FLEXCAN1_Handler                    ;FLEXCAN1 Handler
                DCD     FLEXCAN2_Handler                    ;FLEXCAN2 Handler
                DCD     DefaultISR                          ;Reserved Interrupt 128
                DCD     DefaultISR                          ;Reserved Interrupt 129
                DCD     DefaultISR                          ;Reserved Interrupt 130
                DCD     DefaultISR                          ;Reserved Interrupt 131
                DCD     DefaultISR                          ;Reserved Interrupt 132
                DCD     DefaultISR                          ;Reserved Interrupt 133
                DCD     DefaultISR                          ;Reserved Interrupt 134
                DCD     DefaultISR                          ;Reserved Interrupt 135
                DCD     DefaultISR                          ;Reserved Interrupt 136
                DCD     DefaultISR                          ;Reserved Interrupt 137
                DCD     DefaultISR                          ;Reserved Interrupt 138
                DCD     DefaultISR                          ;Reserved Interrupt 139
                DCD     DefaultISR                          ;Reserved Interrupt 140
                DCD     DefaultISR                          ;Reserved Interrupt 141
                DCD     UART7_Handler                       ;UART7 Handler
                DCD     DefaultISR                          ;Reserved Interrupt 143

__Vectors_End

__Vectors_Size     EQU     __Vectors_End - __Vectors



                AREA    |.text|, CODE, READONLY
; Reset Handler

Reset_Handler   PROC
                EXPORT  Reset_Handler             [WEAK]
                IMPORT  SystemInit
                IMPORT  __main

                CPSID   I               ; Mask interrupts
                LDR     R0, =SystemInit
                BLX     R0
                CPSIE   i               ; Unmask interrupts
                LDR     R0, =__main
                BX      R0
                ENDP


; Dummy Exception Handlers (infinite loops which can be modified)
NMI_Handler\
                PROC
                EXPORT  NMI_Handler               [WEAK]
                B       .
                ENDP
HardFault_Handler\
                PROC
                EXPORT  HardFault_Handler         [WEAK]
                B       .
                ENDP
MemManage_Handler\
                PROC
                EXPORT  MemManage_Handler         [WEAK]
                B       .
                ENDP
BusFault_Handler\
                PROC
                EXPORT  BusFault_Handler          [WEAK]
                B       .
                ENDP
UsageFault_Handler\
                PROC
                EXPORT  UsageFault_Handler        [WEAK]
                B       .
                ENDP
SVC_Handler\
                PROC
                EXPORT  SVC_Handler               [WEAK]
                B       .
                ENDP
DebugMon_Handler\
                PROC
                EXPORT  DebugMon_Handler          [WEAK]
                B       .
                ENDP
PendSV_Handler\
                PROC
                EXPORT  PendSV_Handler            [WEAK]
                B       .
                ENDP
SysTick_Handler\
                PROC
                EXPORT  SysTick_Handler           [WEAK]
                B       .
                ENDP
WDOG3_Handler\
                PROC
                EXPORT  WDOG3_Handler             [WEAK]
                B       .
                ENDP
SEMA4_Handler\
                PROC
                EXPORT  SEMA4_Handler             [WEAK]
                B       .
                ENDP
UART6_Handler\
                PROC
                EXPORT  UART6_Handler             [WEAK]
                B       .
                ENDP
UART1_Handler\
                PROC
                EXPORT  UART1_Handler             [WEAK]
                B       .
                ENDP
UART2_Handler\
                PROC
                EXPORT  UART2_Handler             [WEAK]
                B       .
                ENDP
UART3_Handler\
                PROC
                EXPORT  UART3_Handler             [WEAK]
                B       .
                ENDP
UART4_Handler\
                PROC
                EXPORT  UART4_Handler             [WEAK]
                B       .
                ENDP
UART5_Handler\
                PROC
                EXPORT  UART5_Handler             [WEAK]
                B       .
                ENDP
eCSPI1_Handler\
                PROC
                EXPORT  eCSPI1_Handler            [WEAK]
                B       .
                ENDP
eCSPI2_Handler\
                PROC
                EXPORT  eCSPI2_Handler            [WEAK]
                B       .
                ENDP
eCSPI3_Handler\
                PROC
                EXPORT  eCSPI3_Handler            [WEAK]
                B       .
                ENDP
eCSPI4_Handler\
                PROC
                EXPORT  eCSPI4_Handler            [WEAK]
                B       .
                ENDP
I2C1_Handler\
                PROC
                EXPORT  I2C1_Handler              [WEAK]
                B       .
                ENDP
I2C2_Handler\
                PROC
                EXPORT  I2C2_Handler              [WEAK]
                B       .
                ENDP
I2C3_Handler\
                PROC
                EXPORT  I2C3_Handler              [WEAK]
                B       .
                ENDP
I2C4_Handler\
                PROC
                EXPORT  I2C4_Handler              [WEAK]
                B       .
                ENDP
GPT4_Handler\
                PROC
                EXPORT  GPT4_Handler              [WEAK]
                B       .
                ENDP
GPT3_Handler\
                PROC
                EXPORT  GPT3_Handler              [WEAK]
                B       .
                ENDP
GPT2_Handler\
                PROC
                EXPORT  GPT2_Handler              [WEAK]
                B       .
                ENDP
GPT1_Handler\
                PROC
                EXPORT  GPT1_Handler              [WEAK]
                B       .
                ENDP
GPIO1_INT7_Handler\
                PROC
                EXPORT  GPIO1_INT7_Handler        [WEAK]
                B       .
                ENDP
GPIO1_INT6_Handler\
                PROC
                EXPORT  GPIO1_INT6_Handler        [WEAK]
                B       .
                ENDP
GPIO1_INT5_Handler\
                PROC
                EXPORT  GPIO1_INT5_Handler        [WEAK]
                B       .
                ENDP
GPIO1_INT4_Handler\
                PROC
                EXPORT  GPIO1_INT4_Handler        [WEAK]
                B       .
                ENDP
GPIO1_INT3_Handler\
                PROC
                EXPORT  GPIO1_INT3_Handler        [WEAK]
                B       .
                ENDP
GPIO1_INT2_Handler\
                PROC
                EXPORT  GPIO1_INT2_Handler        [WEAK]
                B       .
                ENDP
GPIO1_INT1_Handler\
                PROC
                EXPORT  GPIO1_INT1_Handler        [WEAK]
                B       .
                ENDP
GPIO1_INT0_Handler\
                PROC
                EXPORT  GPIO1_INT0_Handler        [WEAK]
                B       .
                ENDP
GPIO1_INT15_0_Handler\
                PROC
                EXPORT  GPIO1_INT15_0_Handler     [WEAK]
                B       .
                ENDP
GPIO1_INT31_16_Handler\
                PROC
                EXPORT  GPIO1_INT31_16_Handler    [WEAK]
                B       .
                ENDP
GPIO2_INT15_0_Handler\
                PROC
                EXPORT  GPIO2_INT15_0_Handler     [WEAK]
                B       .
                ENDP
GPIO2_INT31_16_Handler\
                PROC
                EXPORT  GPIO2_INT31_16_Handler    [WEAK]
                B       .
                ENDP
GPIO3_INT15_0_Handler\
                PROC
                EXPORT  GPIO3_INT15_0_Handler     [WEAK]
                B       .
                ENDP
GPIO3_INT31_16_Handler\
                PROC
                EXPORT  GPIO3_INT31_16_Handler    [WEAK]
                B       .
                ENDP
GPIO4_INT15_0_Handler\
                PROC
                EXPORT  GPIO4_INT15_0_Handler     [WEAK]
                B       .
                ENDP
GPIO4_INT31_16_Handler\
                PROC
                EXPORT  GPIO4_INT31_16_Handler    [WEAK]
                B       .
                ENDP
GPIO5_INT15_0_Handler\
                PROC
                EXPORT  GPIO5_INT15_0_Handler     [WEAK]
                B       .
                ENDP
GPIO5_INT31_16_Handler\
                PROC
                EXPORT  GPIO5_INT31_16_Handler    [WEAK]
                B       .
                ENDP
GPIO6_INT15_0_Handler\
                PROC
                EXPORT  GPIO6_INT15_0_Handler     [WEAK]
                B       .
                ENDP
GPIO6_INT31_16_Handler\
                PROC
                EXPORT  GPIO6_INT31_16_Handler    [WEAK]
                B       .
                ENDP
GPIO7_INT15_0_Handler\
                PROC
                EXPORT  GPIO7_INT15_0_Handler     [WEAK]
                B       .
                ENDP
GPIO7_INT31_16_Handler\
                PROC
                EXPORT  GPIO7_INT31_16_Handler    [WEAK]
                B       .
                ENDP
MU_Handler\
                PROC
                EXPORT  MU_Handler                [WEAK]
                B       .
                ENDP
ADC1_Handler\
                PROC
                EXPORT  ADC1_Handler              [WEAK]
                B       .
                ENDP
ADC2_Handler\
                PROC
                EXPORT  ADC2_Handler              [WEAK]
                B       .
                ENDP
FLEXCAN1_Handler\
                PROC
                EXPORT  FLEXCAN1_Handler          [WEAK]
                B       .
                ENDP
FLEXCAN2_Handler\
                PROC
                EXPORT  FLEXCAN2_Handler          [WEAK]
                B       .
                ENDP
UART7_Handler\
                PROC
                EXPORT  UART7_Handler             [WEAK]
                B       .
                ENDP

Default_Handler\
                PROC

                EXPORT  DefaultISR                [WEAK]


DefaultISR

                B      DefaultISR
                ENDP
                  ALIGN


                END