1;*******************************************************************************
2;* @file     startup_XMC4504.s
3;* @brief    CMSIS Core Device Startup File for
4;*           Infineon XMC4504 Device Series
5;* @version  V1.8
6;* @date     June 2016
7;*
8;* @cond
9;*********************************************************************************************************************
10;* Copyright (c) 2012-2016, Infineon Technologies AG
11;* All rights reserved.
12;*
13;* Redistribution and use in source and binary forms, with or without modification,are permitted provided that the
14;* following conditions are met:
15;*
16;* Redistributions of source code must retain the above copyright notice, this list of conditions and the following
17;* disclaimer.
18;*
19;* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
20;* disclaimer in the documentation and/or other materials provided with the distribution.
21;*
22;* Neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote
23;* products derived from this software without specific prior written permission.
24;*
25;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
26;* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27;* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE  FOR ANY DIRECT, INDIRECT, INCIDENTAL,
28;* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
29;* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
30;* WHETHER IN CONTRACT, STRICT LIABILITY,OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31;* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32;*
33;* To improve the quality of the software, users are encouraged to share modifications, enhancements or bug fixes with
34;* Infineon Technologies AG dave@infineon.com).
35;*********************************************************************************************************************
36;*
37;************************** Version History ************************************
38; V1.00, February 2012, First version
39; V1.10, August 2012, Adding Dave3 init function call
40; V1.20, February 2013, FIX for CPU prefetch bug implemented
41; V1.30, August 2013, Fix the bug of stack pointer alignment to a 8 byte boundary
42; V1.40, November 2014, Disable CPU workaround.
43;                       To enable the workaround add to the ASM defines:
44;                           ENABLE_PMU_CM_001_WORKAROUND
45;                       Increased stack size.
46;                       Removed DAVE3 dependency
47; V1.50, December 2014, Fix not available entries in vector table
48; V1.60, November 2015, Remove peripherals not included in device
49; V1.7 , March    2016, Fix weak definition of Veneers.
50;                       Only relevant for AA and AB step, which needs ENABLE_PMU_CM_001_WORKAROUND
51; V1.8,  June     2016, Rename ENABLE_CPU_CM_001_WORKAROUND to ENABLE_PMU_CM_001_WORKAROUND
52;                       Action required: If using AA/AB step, use ENABLE_PMU_CM_001_WORKAROUND instead of ENABLE_CPU_CM_001_WORKAROUND
53;*******************************************************************************
54;* @endcond
55
56; ------------------ <<< Use Configuration Wizard in Context Menu >>> ------------------
57
58; <h> Stack Configuration
59;   <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
60; </h>
61
62Stack_Size      EQU     0x00000800
63
64                AREA    STACK, NOINIT, READWRITE, ALIGN=3
65Stack_Mem       SPACE   Stack_Size
66__initial_sp
67
68
69; <h> Heap Configuration
70;   <o>  Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
71; </h>
72
73Heap_Size       EQU     0x00000200
74
75                AREA    HEAP, NOINIT, READWRITE, ALIGN=3
76__heap_base
77Heap_Mem        SPACE   Heap_Size
78__heap_limit
79
80                PRESERVE8
81                THUMB
82
83                IF    :DEF:ENABLE_PMU_CM_001_WORKAROUND
84                    MACRO
85                    Entry $Handler
86                    DCD   $Handler._Veneer
87                    MEND
88                ELSE
89                    MACRO
90                    Entry $Handler
91                    DCD   $Handler
92                    MEND
93                ENDIF
94
95; Vector Table Mapped to Address 0 at Reset
96
97                AREA    RESET, DATA, READONLY
98                EXPORT  __Vectors
99                EXPORT  __Vectors_End
100                EXPORT  __Vectors_Size
101
102__Vectors       DCD     __initial_sp              ; 0 Top of Stack
103                DCD     Reset_Handler             ; 1 Reset Handler
104                Entry   NMI_Handler               ; 2 NMI Handler
105                Entry   HardFault_Handler         ; 3 Hard Fault Handler
106                Entry   MemManage_Handler         ; 4 MPU Fault Handler
107                Entry   BusFault_Handler          ; 5 Bus Fault Handler
108                Entry   UsageFault_Handler        ; 6 Usage Fault Handler
109                DCD     0                         ; 7 Reserved
110                DCD     0                         ; 8 Reserved
111                DCD     0                         ; 9 Reserved
112                DCD     0                         ; 10 Reserved
113                Entry   SVC_Handler               ; 11 SVCall Handler
114                Entry   DebugMon_Handler          ; 12 Debug Monitor Handler
115                DCD     0                         ; 13 Reserved
116                Entry   PendSV_Handler            ; 14 PendSV Handler
117                Entry   SysTick_Handler           ; 15 SysTick Handler
118
119; Interrupt Handlers for Service Requests (SR) from XMC4500 Peripherals */
120                Entry   SCU_0_IRQHandler            ; Handler name for SR SCU_0
121                Entry   ERU0_0_IRQHandler           ; Handler name for SR ERU0_0
122                Entry   ERU0_1_IRQHandler           ; Handler name for SR ERU0_1
123                Entry   ERU0_2_IRQHandler           ; Handler name for SR ERU0_2
124                Entry   ERU0_3_IRQHandler           ; Handler name for SR ERU0_3
125                Entry   ERU1_0_IRQHandler           ; Handler name for SR ERU1_0
126                Entry   ERU1_1_IRQHandler           ; Handler name for SR ERU1_1
127                Entry   ERU1_2_IRQHandler           ; Handler name for SR ERU1_2
128                Entry   ERU1_3_IRQHandler           ; Handler name for SR ERU1_3
129                DCD     0                           ; Not Available
130                DCD     0                           ; Not Available
131                DCD     0                           ; Not Available
132                Entry   PMU0_0_IRQHandler           ; Handler name for SR PMU0_0
133                DCD     0                           ; Not Available
134                Entry   VADC0_C0_0_IRQHandler       ; Handler name for SR VADC0_C0_0
135                Entry   VADC0_C0_1_IRQHandler       ; Handler name for SR VADC0_C0_1
136                Entry   VADC0_C0_2_IRQHandler       ; Handler name for SR VADC0_C0_1
137                Entry   VADC0_C0_3_IRQHandler       ; Handler name for SR VADC0_C0_3
138                Entry   VADC0_G0_0_IRQHandler       ; Handler name for SR VADC0_G0_0
139                Entry   VADC0_G0_1_IRQHandler       ; Handler name for SR VADC0_G0_1
140                Entry   VADC0_G0_2_IRQHandler       ; Handler name for SR VADC0_G0_2
141                Entry   VADC0_G0_3_IRQHandler       ; Handler name for SR VADC0_G0_3
142                Entry   VADC0_G1_0_IRQHandler       ; Handler name for SR VADC0_G1_0
143                Entry   VADC0_G1_1_IRQHandler       ; Handler name for SR VADC0_G1_1
144                Entry   VADC0_G1_2_IRQHandler       ; Handler name for SR VADC0_G1_2
145                Entry   VADC0_G1_3_IRQHandler       ; Handler name for SR VADC0_G1_3
146                Entry   VADC0_G2_0_IRQHandler       ; Handler name for SR VADC0_G2_0
147                Entry   VADC0_G2_1_IRQHandler       ; Handler name for SR VADC0_G2_1
148                Entry   VADC0_G2_2_IRQHandler       ; Handler name for SR VADC0_G2_2
149                Entry   VADC0_G2_3_IRQHandler       ; Handler name for SR VADC0_G2_3
150                Entry   VADC0_G3_0_IRQHandler       ; Handler name for SR VADC0_G3_0
151                Entry   VADC0_G3_1_IRQHandler       ; Handler name for SR VADC0_G3_1
152                Entry   VADC0_G3_2_IRQHandler       ; Handler name for SR VADC0_G3_2
153                Entry   VADC0_G3_3_IRQHandler       ; Handler name for SR VADC0_G3_3
154                Entry   DSD0_0_IRQHandler           ; Handler name for SR DSD_SRM_0
155                Entry   DSD0_1_IRQHandler           ; Handler name for SR DSD_SRM_1
156                Entry   DSD0_2_IRQHandler           ; Handler name for SR DSD_SRM_2
157                Entry   DSD0_3_IRQHandler           ; Handler name for SR DSD_SRM_3
158                Entry   DSD0_4_IRQHandler           ; Handler name for SR DSD_SRA_0
159                Entry   DSD0_5_IRQHandler           ; Handler name for SR DSD_SRA_1
160                Entry   DSD0_6_IRQHandler           ; Handler name for SR DSD_SRA_2
161                Entry   DSD0_7_IRQHandler           ; Handler name for SR DSD_SRA_3
162                Entry   DAC0_0_IRQHandler           ; Handler name for SR DAC0_0
163                Entry   DAC0_1_IRQHandler           ; Handler name for SR DAC0_1
164                Entry   CCU40_0_IRQHandler          ; Handler name for SR CCU40_0
165                Entry   CCU40_1_IRQHandler          ; Handler name for SR CCU40_1
166                Entry   CCU40_2_IRQHandler          ; Handler name for SR CCU40_2
167                Entry   CCU40_3_IRQHandler          ; Handler name for SR CCU40_3
168                Entry   CCU41_0_IRQHandler          ; Handler name for SR CCU41_0
169                Entry   CCU41_1_IRQHandler          ; Handler name for SR CCU41_1
170                Entry   CCU41_2_IRQHandler          ; Handler name for SR CCU41_2
171                Entry   CCU41_3_IRQHandler          ; Handler name for SR CCU41_3
172                Entry   CCU42_0_IRQHandler          ; Handler name for SR CCU42_0
173                Entry   CCU42_1_IRQHandler          ; Handler name for SR CCU42_1
174                Entry   CCU42_2_IRQHandler          ; Handler name for SR CCU42_2
175                Entry   CCU42_3_IRQHandler          ; Handler name for SR CCU42_3
176                Entry   CCU43_0_IRQHandler          ; Handler name for SR CCU43_0
177                Entry   CCU43_1_IRQHandler          ; Handler name for SR CCU43_1
178                Entry   CCU43_2_IRQHandler          ; Handler name for SR CCU43_2
179                Entry   CCU43_3_IRQHandler          ; Handler name for SR CCU43_3
180                Entry   CCU80_0_IRQHandler          ; Handler name for SR CCU80_0
181                Entry   CCU80_1_IRQHandler          ; Handler name for SR CCU80_1
182                Entry   CCU80_2_IRQHandler          ; Handler name for SR CCU80_2
183                Entry   CCU80_3_IRQHandler          ; Handler name for SR CCU80_3
184                Entry   CCU81_0_IRQHandler          ; Handler name for SR CCU81_0
185                Entry   CCU81_1_IRQHandler          ; Handler name for SR CCU81_1
186                Entry   CCU81_2_IRQHandler          ; Handler name for SR CCU81_2
187                Entry   CCU81_3_IRQHandler          ; Handler name for SR CCU81_3
188                Entry   POSIF0_0_IRQHandler         ; Handler name for SR POSIF0_0
189                Entry   POSIF0_1_IRQHandler         ; Handler name for SR POSIF0_1
190                Entry   POSIF1_0_IRQHandler         ; Handler name for SR POSIF1_0
191                Entry   POSIF1_1_IRQHandler         ; Handler name for SR POSIF1_1
192                DCD     0                           ; Not Available
193                DCD     0                           ; Not Available
194                DCD     0                           ; Not Available
195                DCD     0                           ; Not Available
196                DCD     0                           ; Not Available
197                DCD     0                           ; Not Available
198                DCD     0                           ; Not Available
199                DCD     0                           ; Not Available
200                DCD     0                           ; Not Available
201                DCD     0                           ; Not Available
202                DCD     0                           ; Not Available
203                DCD     0                           ; Not Available
204                Entry   USIC0_0_IRQHandler          ; Handler name for SR USIC0_0
205                Entry   USIC0_1_IRQHandler          ; Handler name for SR USIC0_1
206                Entry   USIC0_2_IRQHandler          ; Handler name for SR USIC0_2
207                Entry   USIC0_3_IRQHandler          ; Handler name for SR USIC0_3
208                Entry   USIC0_4_IRQHandler          ; Handler name for SR USIC0_4
209                Entry   USIC0_5_IRQHandler          ; Handler name for SR USIC0_5
210                Entry   USIC1_0_IRQHandler          ; Handler name for SR USIC1_0
211                Entry   USIC1_1_IRQHandler          ; Handler name for SR USIC1_1
212                Entry   USIC1_2_IRQHandler          ; Handler name for SR USIC1_2
213                Entry   USIC1_3_IRQHandler          ; Handler name for SR USIC1_3
214                Entry   USIC1_4_IRQHandler          ; Handler name for SR USIC1_4
215                Entry   USIC1_5_IRQHandler          ; Handler name for SR USIC1_5
216                Entry   USIC2_0_IRQHandler          ; Handler name for SR USIC2_0
217                Entry   USIC2_1_IRQHandler          ; Handler name for SR USIC2_1
218                Entry   USIC2_2_IRQHandler          ; Handler name for SR USIC2_2
219                Entry   USIC2_3_IRQHandler          ; Handler name for SR USIC2_3
220                Entry   USIC2_4_IRQHandler          ; Handler name for SR USIC2_4
221                Entry   USIC2_5_IRQHandler          ; Handler name for SR USIC2_5
222                Entry   LEDTS0_0_IRQHandler         ; Handler name for SR LEDTS0_0
223                DCD     0                           ; Not Available
224                Entry   FCE0_0_IRQHandler           ; Handler name for SR FCE0_0
225                Entry   GPDMA0_0_IRQHandler         ; Handler name for SR GPDMA0_0
226                Entry   SDMMC0_0_IRQHandler         ; Handler name for SR SDMMC0_0
227                DCD     0                           ; Not Available
228                DCD     0                           ; Not Available
229                DCD     0                           ; Not Available
230                Entry   GPDMA1_0_IRQHandler         ; Handler name for SR GPDMA0_1
231                DCD     0                           ; Not Available
232__Vectors_End
233
234__Vectors_Size  EQU     __Vectors_End - __Vectors
235
236                AREA    |.text|, CODE, READONLY
237
238; Reset Handler
239
240Reset_Handler   PROC
241                EXPORT  Reset_Handler           [WEAK]
242                IMPORT  SystemInit
243                IMPORT  __main
244                LDR     SP, =__initial_sp
245                LDR     R0, =SystemInit
246                BLX     R0
247                LDR     R0, =__main
248                BX      R0
249                ENDP
250
251; Dummy Exception Handlers (infinite loops which can be modified)
252
253Default_Handler PROC
254                EXPORT  NMI_Handler             [WEAK]
255                EXPORT  HardFault_Handler       [WEAK]
256                EXPORT  MemManage_Handler       [WEAK]
257                EXPORT  BusFault_Handler        [WEAK]
258                EXPORT  UsageFault_Handler      [WEAK]
259                EXPORT  SVC_Handler             [WEAK]
260                EXPORT  DebugMon_Handler        [WEAK]
261                EXPORT  PendSV_Handler          [WEAK]
262                EXPORT  SysTick_Handler         [WEAK]
263
264                EXPORT  SCU_0_IRQHandler        [WEAK]
265                EXPORT  ERU0_0_IRQHandler       [WEAK]
266                EXPORT  ERU0_1_IRQHandler       [WEAK]
267                EXPORT  ERU0_2_IRQHandler       [WEAK]
268                EXPORT  ERU0_3_IRQHandler       [WEAK]
269                EXPORT  ERU1_0_IRQHandler       [WEAK]
270                EXPORT  ERU1_1_IRQHandler       [WEAK]
271                EXPORT  ERU1_2_IRQHandler       [WEAK]
272                EXPORT  ERU1_3_IRQHandler       [WEAK]
273                EXPORT  PMU0_0_IRQHandler       [WEAK]
274                EXPORT  VADC0_C0_0_IRQHandler   [WEAK]
275                EXPORT  VADC0_C0_1_IRQHandler   [WEAK]
276                EXPORT  VADC0_C0_2_IRQHandler   [WEAK]
277                EXPORT  VADC0_C0_3_IRQHandler   [WEAK]
278                EXPORT  VADC0_G0_0_IRQHandler   [WEAK]
279                EXPORT  VADC0_G0_1_IRQHandler   [WEAK]
280                EXPORT  VADC0_G0_2_IRQHandler   [WEAK]
281                EXPORT  VADC0_G0_3_IRQHandler   [WEAK]
282                EXPORT  VADC0_G1_0_IRQHandler   [WEAK]
283                EXPORT  VADC0_G1_1_IRQHandler   [WEAK]
284                EXPORT  VADC0_G1_2_IRQHandler   [WEAK]
285                EXPORT  VADC0_G1_3_IRQHandler   [WEAK]
286                EXPORT  VADC0_G2_0_IRQHandler   [WEAK]
287                EXPORT  VADC0_G2_1_IRQHandler   [WEAK]
288                EXPORT  VADC0_G2_2_IRQHandler   [WEAK]
289                EXPORT  VADC0_G2_3_IRQHandler   [WEAK]
290                EXPORT  VADC0_G3_0_IRQHandler   [WEAK]
291                EXPORT  VADC0_G3_1_IRQHandler   [WEAK]
292                EXPORT  VADC0_G3_2_IRQHandler   [WEAK]
293                EXPORT  VADC0_G3_3_IRQHandler   [WEAK]
294                EXPORT  DSD0_0_IRQHandler       [WEAK]
295                EXPORT  DSD0_1_IRQHandler       [WEAK]
296                EXPORT  DSD0_2_IRQHandler       [WEAK]
297                EXPORT  DSD0_3_IRQHandler       [WEAK]
298                EXPORT  DSD0_4_IRQHandler       [WEAK]
299                EXPORT  DSD0_5_IRQHandler       [WEAK]
300                EXPORT  DSD0_6_IRQHandler       [WEAK]
301                EXPORT  DSD0_7_IRQHandler       [WEAK]
302                EXPORT  DAC0_0_IRQHandler       [WEAK]
303                EXPORT  DAC0_1_IRQHandler       [WEAK]
304                EXPORT  CCU40_0_IRQHandler      [WEAK]
305                EXPORT  CCU40_1_IRQHandler      [WEAK]
306                EXPORT  CCU40_2_IRQHandler      [WEAK]
307                EXPORT  CCU40_3_IRQHandler      [WEAK]
308                EXPORT  CCU41_0_IRQHandler      [WEAK]
309                EXPORT  CCU41_1_IRQHandler      [WEAK]
310                EXPORT  CCU41_2_IRQHandler      [WEAK]
311                EXPORT  CCU41_3_IRQHandler      [WEAK]
312                EXPORT  CCU42_0_IRQHandler      [WEAK]
313                EXPORT  CCU42_1_IRQHandler      [WEAK]
314                EXPORT  CCU42_2_IRQHandler      [WEAK]
315                EXPORT  CCU42_3_IRQHandler      [WEAK]
316                EXPORT  CCU43_0_IRQHandler      [WEAK]
317                EXPORT  CCU43_1_IRQHandler      [WEAK]
318                EXPORT  CCU43_2_IRQHandler      [WEAK]
319                EXPORT  CCU43_3_IRQHandler      [WEAK]
320                EXPORT  CCU80_0_IRQHandler      [WEAK]
321                EXPORT  CCU80_1_IRQHandler      [WEAK]
322                EXPORT  CCU80_2_IRQHandler      [WEAK]
323                EXPORT  CCU80_3_IRQHandler      [WEAK]
324                EXPORT  CCU81_0_IRQHandler      [WEAK]
325                EXPORT  CCU81_1_IRQHandler      [WEAK]
326                EXPORT  CCU81_2_IRQHandler      [WEAK]
327                EXPORT  CCU81_3_IRQHandler      [WEAK]
328                EXPORT  POSIF0_0_IRQHandler     [WEAK]
329                EXPORT  POSIF0_1_IRQHandler     [WEAK]
330                EXPORT  POSIF1_0_IRQHandler     [WEAK]
331                EXPORT  POSIF1_1_IRQHandler     [WEAK]
332                EXPORT  USIC0_0_IRQHandler      [WEAK]
333                EXPORT  USIC0_1_IRQHandler      [WEAK]
334                EXPORT  USIC0_2_IRQHandler      [WEAK]
335                EXPORT  USIC0_3_IRQHandler      [WEAK]
336                EXPORT  USIC0_4_IRQHandler      [WEAK]
337                EXPORT  USIC0_5_IRQHandler      [WEAK]
338                EXPORT  USIC1_0_IRQHandler      [WEAK]
339                EXPORT  USIC1_1_IRQHandler      [WEAK]
340                EXPORT  USIC1_2_IRQHandler      [WEAK]
341                EXPORT  USIC1_3_IRQHandler      [WEAK]
342                EXPORT  USIC1_4_IRQHandler      [WEAK]
343                EXPORT  USIC1_5_IRQHandler      [WEAK]
344                EXPORT  USIC2_0_IRQHandler      [WEAK]
345                EXPORT  USIC2_1_IRQHandler      [WEAK]
346                EXPORT  USIC2_2_IRQHandler      [WEAK]
347                EXPORT  USIC2_3_IRQHandler      [WEAK]
348                EXPORT  USIC2_4_IRQHandler      [WEAK]
349                EXPORT  USIC2_5_IRQHandler      [WEAK]
350                EXPORT  LEDTS0_0_IRQHandler     [WEAK]
351                EXPORT  FCE0_0_IRQHandler       [WEAK]
352                EXPORT  GPDMA0_0_IRQHandler     [WEAK]
353                EXPORT  SDMMC0_0_IRQHandler     [WEAK]
354                EXPORT  GPDMA1_0_IRQHandler     [WEAK]
355
356NMI_Handler
357HardFault_Handler
358MemManage_Handler
359BusFault_Handler
360UsageFault_Handler
361SVC_Handler
362DebugMon_Handler
363PendSV_Handler
364SysTick_Handler
365SCU_0_IRQHandler
366ERU0_0_IRQHandler
367ERU0_1_IRQHandler
368ERU0_2_IRQHandler
369ERU0_3_IRQHandler
370ERU1_0_IRQHandler
371ERU1_1_IRQHandler
372ERU1_2_IRQHandler
373ERU1_3_IRQHandler
374PMU0_0_IRQHandler
375VADC0_C0_0_IRQHandler
376VADC0_C0_1_IRQHandler
377VADC0_C0_2_IRQHandler
378VADC0_C0_3_IRQHandler
379VADC0_G0_0_IRQHandler
380VADC0_G0_1_IRQHandler
381VADC0_G0_2_IRQHandler
382VADC0_G0_3_IRQHandler
383VADC0_G1_0_IRQHandler
384VADC0_G1_1_IRQHandler
385VADC0_G1_2_IRQHandler
386VADC0_G1_3_IRQHandler
387VADC0_G2_0_IRQHandler
388VADC0_G2_1_IRQHandler
389VADC0_G2_2_IRQHandler
390VADC0_G2_3_IRQHandler
391VADC0_G3_0_IRQHandler
392VADC0_G3_1_IRQHandler
393VADC0_G3_2_IRQHandler
394VADC0_G3_3_IRQHandler
395DSD0_0_IRQHandler
396DSD0_1_IRQHandler
397DSD0_2_IRQHandler
398DSD0_3_IRQHandler
399DSD0_4_IRQHandler
400DSD0_5_IRQHandler
401DSD0_6_IRQHandler
402DSD0_7_IRQHandler
403DAC0_0_IRQHandler
404DAC0_1_IRQHandler
405CCU40_0_IRQHandler
406CCU40_1_IRQHandler
407CCU40_2_IRQHandler
408CCU40_3_IRQHandler
409CCU41_0_IRQHandler
410CCU41_1_IRQHandler
411CCU41_2_IRQHandler
412CCU41_3_IRQHandler
413CCU42_0_IRQHandler
414CCU42_1_IRQHandler
415CCU42_2_IRQHandler
416CCU42_3_IRQHandler
417CCU43_0_IRQHandler
418CCU43_1_IRQHandler
419CCU43_2_IRQHandler
420CCU43_3_IRQHandler
421CCU80_0_IRQHandler
422CCU80_1_IRQHandler
423CCU80_2_IRQHandler
424CCU80_3_IRQHandler
425CCU81_0_IRQHandler
426CCU81_1_IRQHandler
427CCU81_2_IRQHandler
428CCU81_3_IRQHandler
429POSIF0_0_IRQHandler
430POSIF0_1_IRQHandler
431POSIF1_0_IRQHandler
432POSIF1_1_IRQHandler
433USIC0_0_IRQHandler
434USIC0_1_IRQHandler
435USIC0_2_IRQHandler
436USIC0_3_IRQHandler
437USIC0_4_IRQHandler
438USIC0_5_IRQHandler
439USIC1_0_IRQHandler
440USIC1_1_IRQHandler
441USIC1_2_IRQHandler
442USIC1_3_IRQHandler
443USIC1_4_IRQHandler
444USIC1_5_IRQHandler
445USIC2_0_IRQHandler
446USIC2_1_IRQHandler
447USIC2_2_IRQHandler
448USIC2_3_IRQHandler
449USIC2_4_IRQHandler
450USIC2_5_IRQHandler
451LEDTS0_0_IRQHandler
452FCE0_0_IRQHandler
453GPDMA0_0_IRQHandler
454SDMMC0_0_IRQHandler
455GPDMA1_0_IRQHandler
456
457                B       .
458
459                ENDP
460
461                IF     :DEF:ENABLE_PMU_CM_001_WORKAROUND
462
463                MACRO
464                Insert_ExceptionHandlerVeneer $Handler_Func
465$Handler_Func._Veneer\
466                    PROC
467                    EXPORT  $Handler_Func._Veneer [WEAK]
468                    LDR     R0, =$Handler_Func
469                    PUSH    {LR}  ;/* Breaks AAPCS */
470                    SUB     SP,#4     ;/* Restores AAPCS */
471                    BLX     R0
472                    ADD     SP,#4
473                    POP     {PC}
474                    ALIGN
475                    LTORG
476                    ENDP
477                MEND
478
479                Insert_ExceptionHandlerVeneer  NMI_Handler
480                Insert_ExceptionHandlerVeneer  HardFault_Handler
481                Insert_ExceptionHandlerVeneer  MemManage_Handler
482                Insert_ExceptionHandlerVeneer  BusFault_Handler
483                Insert_ExceptionHandlerVeneer  UsageFault_Handler
484                Insert_ExceptionHandlerVeneer  SVC_Handler
485                Insert_ExceptionHandlerVeneer  DebugMon_Handler
486                Insert_ExceptionHandlerVeneer  PendSV_Handler
487                Insert_ExceptionHandlerVeneer  SysTick_Handler
488
489                Insert_ExceptionHandlerVeneer  SCU_0_IRQHandler
490                Insert_ExceptionHandlerVeneer  ERU0_0_IRQHandler
491                Insert_ExceptionHandlerVeneer  ERU0_1_IRQHandler
492                Insert_ExceptionHandlerVeneer  ERU0_2_IRQHandler
493                Insert_ExceptionHandlerVeneer  ERU0_3_IRQHandler
494                Insert_ExceptionHandlerVeneer  ERU1_0_IRQHandler
495                Insert_ExceptionHandlerVeneer  ERU1_1_IRQHandler
496                Insert_ExceptionHandlerVeneer  ERU1_2_IRQHandler
497                Insert_ExceptionHandlerVeneer  ERU1_3_IRQHandler
498                Insert_ExceptionHandlerVeneer  PMU0_0_IRQHandler
499                Insert_ExceptionHandlerVeneer  VADC0_C0_0_IRQHandler
500                Insert_ExceptionHandlerVeneer  VADC0_C0_1_IRQHandler
501                Insert_ExceptionHandlerVeneer  VADC0_C0_2_IRQHandler
502                Insert_ExceptionHandlerVeneer  VADC0_C0_3_IRQHandler
503                Insert_ExceptionHandlerVeneer  VADC0_G0_0_IRQHandler
504                Insert_ExceptionHandlerVeneer  VADC0_G0_1_IRQHandler
505                Insert_ExceptionHandlerVeneer  VADC0_G0_2_IRQHandler
506                Insert_ExceptionHandlerVeneer  VADC0_G0_3_IRQHandler
507                Insert_ExceptionHandlerVeneer  VADC0_G1_0_IRQHandler
508                Insert_ExceptionHandlerVeneer  VADC0_G1_1_IRQHandler
509                Insert_ExceptionHandlerVeneer  VADC0_G1_2_IRQHandler
510                Insert_ExceptionHandlerVeneer  VADC0_G1_3_IRQHandler
511                Insert_ExceptionHandlerVeneer  VADC0_G2_0_IRQHandler
512                Insert_ExceptionHandlerVeneer  VADC0_G2_1_IRQHandler
513                Insert_ExceptionHandlerVeneer  VADC0_G2_2_IRQHandler
514                Insert_ExceptionHandlerVeneer  VADC0_G2_3_IRQHandler
515                Insert_ExceptionHandlerVeneer  VADC0_G3_0_IRQHandler
516                Insert_ExceptionHandlerVeneer  VADC0_G3_1_IRQHandler
517                Insert_ExceptionHandlerVeneer  VADC0_G3_2_IRQHandler
518                Insert_ExceptionHandlerVeneer  VADC0_G3_3_IRQHandler
519                Insert_ExceptionHandlerVeneer  DSD0_0_IRQHandler
520                Insert_ExceptionHandlerVeneer  DSD0_1_IRQHandler
521                Insert_ExceptionHandlerVeneer  DSD0_2_IRQHandler
522                Insert_ExceptionHandlerVeneer  DSD0_3_IRQHandler
523                Insert_ExceptionHandlerVeneer  DSD0_4_IRQHandler
524                Insert_ExceptionHandlerVeneer  DSD0_5_IRQHandler
525                Insert_ExceptionHandlerVeneer  DSD0_6_IRQHandler
526                Insert_ExceptionHandlerVeneer  DSD0_7_IRQHandler
527                Insert_ExceptionHandlerVeneer  DAC0_0_IRQHandler
528                Insert_ExceptionHandlerVeneer  DAC0_1_IRQHandler
529                Insert_ExceptionHandlerVeneer  CCU40_0_IRQHandler
530                Insert_ExceptionHandlerVeneer  CCU40_1_IRQHandler
531                Insert_ExceptionHandlerVeneer  CCU40_2_IRQHandler
532                Insert_ExceptionHandlerVeneer  CCU40_3_IRQHandler
533                Insert_ExceptionHandlerVeneer  CCU41_0_IRQHandler
534                Insert_ExceptionHandlerVeneer  CCU41_1_IRQHandler
535                Insert_ExceptionHandlerVeneer  CCU41_2_IRQHandler
536                Insert_ExceptionHandlerVeneer  CCU41_3_IRQHandler
537                Insert_ExceptionHandlerVeneer  CCU42_0_IRQHandler
538                Insert_ExceptionHandlerVeneer  CCU42_1_IRQHandler
539                Insert_ExceptionHandlerVeneer  CCU42_2_IRQHandler
540                Insert_ExceptionHandlerVeneer  CCU42_3_IRQHandler
541                Insert_ExceptionHandlerVeneer  CCU43_0_IRQHandler
542                Insert_ExceptionHandlerVeneer  CCU43_1_IRQHandler
543                Insert_ExceptionHandlerVeneer  CCU43_2_IRQHandler
544                Insert_ExceptionHandlerVeneer  CCU43_3_IRQHandler
545                Insert_ExceptionHandlerVeneer  CCU80_0_IRQHandler
546                Insert_ExceptionHandlerVeneer  CCU80_1_IRQHandler
547                Insert_ExceptionHandlerVeneer  CCU80_2_IRQHandler
548                Insert_ExceptionHandlerVeneer  CCU80_3_IRQHandler
549                Insert_ExceptionHandlerVeneer  CCU81_0_IRQHandler
550                Insert_ExceptionHandlerVeneer  CCU81_1_IRQHandler
551                Insert_ExceptionHandlerVeneer  CCU81_2_IRQHandler
552                Insert_ExceptionHandlerVeneer  CCU81_3_IRQHandler
553                Insert_ExceptionHandlerVeneer  POSIF0_0_IRQHandler
554                Insert_ExceptionHandlerVeneer  POSIF0_1_IRQHandler
555                Insert_ExceptionHandlerVeneer  POSIF1_0_IRQHandler
556                Insert_ExceptionHandlerVeneer  POSIF1_1_IRQHandler
557                Insert_ExceptionHandlerVeneer  USIC0_0_IRQHandler
558                Insert_ExceptionHandlerVeneer  USIC0_1_IRQHandler
559                Insert_ExceptionHandlerVeneer  USIC0_2_IRQHandler
560                Insert_ExceptionHandlerVeneer  USIC0_3_IRQHandler
561                Insert_ExceptionHandlerVeneer  USIC0_4_IRQHandler
562                Insert_ExceptionHandlerVeneer  USIC0_5_IRQHandler
563                Insert_ExceptionHandlerVeneer  USIC1_0_IRQHandler
564                Insert_ExceptionHandlerVeneer  USIC1_1_IRQHandler
565                Insert_ExceptionHandlerVeneer  USIC1_2_IRQHandler
566                Insert_ExceptionHandlerVeneer  USIC1_3_IRQHandler
567                Insert_ExceptionHandlerVeneer  USIC1_4_IRQHandler
568                Insert_ExceptionHandlerVeneer  USIC1_5_IRQHandler
569                Insert_ExceptionHandlerVeneer  USIC2_0_IRQHandler
570                Insert_ExceptionHandlerVeneer  USIC2_1_IRQHandler
571                Insert_ExceptionHandlerVeneer  USIC2_2_IRQHandler
572                Insert_ExceptionHandlerVeneer  USIC2_3_IRQHandler
573                Insert_ExceptionHandlerVeneer  USIC2_4_IRQHandler
574                Insert_ExceptionHandlerVeneer  USIC2_5_IRQHandler
575                Insert_ExceptionHandlerVeneer  LEDTS0_0_IRQHandler
576                Insert_ExceptionHandlerVeneer  FCE0_0_IRQHandler
577                Insert_ExceptionHandlerVeneer  GPDMA0_0_IRQHandler
578                Insert_ExceptionHandlerVeneer  SDMMC0_0_IRQHandler
579                Insert_ExceptionHandlerVeneer  GPDMA1_0_IRQHandler
580                ENDIF
581
582                ALIGN
583
584; User Initial Stack & Heap
585
586                IF      :DEF:__MICROLIB
587
588                EXPORT  __initial_sp
589                EXPORT  __heap_base
590                EXPORT  __heap_limit
591
592                ELSE
593
594                IMPORT  __use_two_region_memory
595                EXPORT  __user_initial_stackheap
596__user_initial_stackheap
597
598                LDR     R0, =  Heap_Mem
599                LDR     R1, =(Stack_Mem + Stack_Size)
600                LDR     R2, = (Heap_Mem +  Heap_Size)
601                LDR     R3, = Stack_Mem
602                BX      LR
603
604                ALIGN
605
606                ENDIF
607
608
609                END
610