1 /*****************************************************************************/
2 /* Startup_XMC4400.s: Startup file for XMC4400 device series */
3 /*****************************************************************************/
5 /* ********************* Version History *********************************** */
6 /* ***************************************************************************
7 V0.1 , Aug, 13, 2012 ES: initial version
8 V0.2 , Oct, 12, 2012 PKB: C++ support
9 V0.3 , Jan, 25, 2013 PKB: Prefetch bug workaround for STEP_AA
10 **************************************************************************** */
12 * @file Startup_XMC4400.s
13 * XMC4000 Device Series
17 Copyright (C) 2013 Infineon Technologies AG. All rights reserved.
21 * Infineon Technologies AG (Infineon) is supplying this software for use with
22 * Infineon's microcontrollers. This file can be freely distributed
23 * within development tools that are supporting such microcontrollers.
26 * THIS SOFTWARE IS PROVIDED AS IS. NO WARRANTIES, WHETHER EXPRESS, IMPLIED
27 * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
28 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
29 * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
30 * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
32 ******************************************************************************/
35 /* ===========START : MACRO DEFINITION MACRO DEFINITION ================== */
37 * STEP_AB and below have the prefetch bug. A veneer defined below will first
38 * be executed which in turn branches to the final exception handler.
40 * In addition to defining the veneers, the vector table must for these buggy
41 * devices contain the veneers.
44 /* A macro to setup a vector table entry based on STEP ID */
46 #if (UC_STEP > STEP_AA)
49 .long \Handler\()_Veneer
53 /* A macro to ease definition of the various handlers based on STEP ID */
54 #if (UC_STEP == STEP_AA)
55 /* First define the final exception handler */
56 .macro Insert_ExceptionHandler Handler_Func
58 .type \Handler_Func, %function
61 .size \Handler_Func, . - \Handler_Func
63 /* And then define a veneer that will branch to the final excp handler */
64 .weak \Handler_Func\()_Veneer
65 .type \Handler_Func\()_Veneer, %function
66 \Handler_Func\()_Veneer:
67 LDR R0, =\Handler_Func
71 .size \Handler_Func\()_Veneer, . - \Handler_Func\()_Veneer
74 /* No prefetch bug, hence define only the final exception handler */
75 .macro Insert_ExceptionHandler Handler_Func
77 .type \Handler_Func, %function
80 .size \Handler_Func, . - \Handler_Func
83 /* =============END : MACRO DEFINITION MACRO DEFINITION ================== */
84 /* ================== START OF VECTOR TABLE DEFINITION ====================== */
85 /* Vector Table - This gets programed into VTOR register by onchip BootROM */
88 .section ".Xmc4400.reset"
89 .globl __Xmc4400_interrupt_vector_cortex_m
90 .type __Xmc4400_interrupt_vector_cortex_m, %object
92 __Xmc4400_interrupt_vector_cortex_m:
93 .long __Xmc4400_stack /* Top of Stack */
94 .long __Xmc4400_reset_cortex_m /* Reset Handler */
96 Entry NMI_Handler /* NMI Handler */
97 Entry HardFault_Handler /* Hard Fault Handler */
98 Entry MemManage_Handler /* MPU Fault Handler */
99 Entry BusFault_Handler /* Bus Fault Handler */
100 Entry UsageFault_Handler /* Usage Fault Handler */
101 .long 0 /* Reserved */
102 .long 0 /* Reserved */
103 .long 0 /* Reserved */
104 .long 0 /* Reserved */
105 Entry SVC_Handler /* SVCall Handler */
106 Entry DebugMon_Handler /* Debug Monitor Handler */
107 .long 0 /* Reserved */
108 .long PendSV_Handler /* PendSV Handler */
109 Entry SysTick_Handler /* SysTick Handler */
111 /* Interrupt Handlers for Service Requests (SR) from XMC4400 Peripherals */
112 Entry SCU_0_IRQHandler /* Handler name for SR SCU_0 */
113 Entry ERU0_0_IRQHandler /* Handler name for SR ERU0_0 */
114 Entry ERU0_1_IRQHandler /* Handler name for SR ERU0_1 */
115 Entry ERU0_2_IRQHandler /* Handler name for SR ERU0_2 */
116 Entry ERU0_3_IRQHandler /* Handler name for SR ERU0_3 */
117 Entry ERU1_0_IRQHandler /* Handler name for SR ERU1_0 */
118 Entry ERU1_1_IRQHandler /* Handler name for SR ERU1_1 */
119 Entry ERU1_2_IRQHandler /* Handler name for SR ERU1_2 */
120 Entry ERU1_3_IRQHandler /* Handler name for SR ERU1_3 */
121 .long 0 /* Not Available */
122 .long 0 /* Not Available */
123 .long 0 /* Not Available */
124 Entry PMU0_0_IRQHandler /* Handler name for SR PMU0_0 */
125 .long 0 /* Not Available */
126 Entry VADC0_C0_0_IRQHandler /* Handler name for SR VADC0_C0_0 */
127 Entry VADC0_C0_1_IRQHandler /* Handler name for SR VADC0_C0_1 */
128 Entry VADC0_C0_2_IRQHandler /* Handler name for SR VADC0_C0_1 */
129 Entry VADC0_C0_3_IRQHandler /* Handler name for SR VADC0_C0_3 */
130 Entry VADC0_G0_0_IRQHandler /* Handler name for SR VADC0_G0_0 */
131 Entry VADC0_G0_1_IRQHandler /* Handler name for SR VADC0_G0_1 */
132 Entry VADC0_G0_2_IRQHandler /* Handler name for SR VADC0_G0_2 */
133 Entry VADC0_G0_3_IRQHandler /* Handler name for SR VADC0_G0_3 */
134 Entry VADC0_G1_0_IRQHandler /* Handler name for SR VADC0_G1_0 */
135 Entry VADC0_G1_1_IRQHandler /* Handler name for SR VADC0_G1_1 */
136 Entry VADC0_G1_2_IRQHandler /* Handler name for SR VADC0_G1_2 */
137 Entry VADC0_G1_3_IRQHandler /* Handler name for SR VADC0_G1_3 */
138 Entry VADC0_G2_0_IRQHandler /* Handler name for SR VADC0_G2_0 */
139 Entry VADC0_G2_1_IRQHandler /* Handler name for SR VADC0_G2_1 */
140 Entry VADC0_G2_2_IRQHandler /* Handler name for SR VADC0_G2_2 */
141 Entry VADC0_G2_3_IRQHandler /* Handler name for SR VADC0_G2_3 */
142 Entry VADC0_G3_0_IRQHandler /* Handler name for SR VADC0_G3_0 */
143 Entry VADC0_G3_1_IRQHandler /* Handler name for SR VADC0_G3_1 */
144 Entry VADC0_G3_2_IRQHandler /* Handler name for SR VADC0_G3_2 */
145 Entry VADC0_G3_3_IRQHandler /* Handler name for SR VADC0_G3_3 */
146 Entry DSD0_0_IRQHandler /* Handler name for SR DSD_SRM_0 */
147 Entry DSD0_1_IRQHandler /* Handler name for SR DSD_SRM_1 */
148 Entry DSD0_2_IRQHandler /* Handler name for SR DSD_SRM_2 */
149 Entry DSD0_3_IRQHandler /* Handler name for SR DSD_SRM_3 */
150 Entry DSD0_4_IRQHandler /* Handler name for SR DSD_SRA_0 */
151 Entry DSD0_5_IRQHandler /* Handler name for SR DSD_SRA_1 */
152 Entry DSD0_6_IRQHandler /* Handler name for SR DSD_SRA_2 */
153 Entry DSD0_7_IRQHandler /* Handler name for SR DSD_SRA_3 */
154 Entry DAC0_0_IRQHandler /* Handler name for SR DAC0_0 */
155 Entry DAC0_1_IRQHandler /* Handler name for SR DAC0_1 */
156 Entry CCU40_0_IRQHandler /* Handler name for SR CCU40_0 */
157 Entry CCU40_1_IRQHandler /* Handler name for SR CCU40_1 */
158 Entry CCU40_2_IRQHandler /* Handler name for SR CCU40_2 */
159 Entry CCU40_3_IRQHandler /* Handler name for SR CCU40_3 */
160 Entry CCU41_0_IRQHandler /* Handler name for SR CCU41_0 */
161 Entry CCU41_1_IRQHandler /* Handler name for SR CCU41_1 */
162 Entry CCU41_2_IRQHandler /* Handler name for SR CCU41_2 */
163 Entry CCU41_3_IRQHandler /* Handler name for SR CCU41_3 */
164 Entry CCU42_0_IRQHandler /* Handler name for SR CCU42_0 */
165 Entry CCU42_1_IRQHandler /* Handler name for SR CCU42_1 */
166 Entry CCU42_2_IRQHandler /* Handler name for SR CCU42_2 */
167 Entry CCU42_3_IRQHandler /* Handler name for SR CCU42_3 */
168 Entry CCU43_0_IRQHandler /* Handler name for SR CCU43_0 */
169 Entry CCU43_1_IRQHandler /* Handler name for SR CCU43_1 */
170 Entry CCU43_2_IRQHandler /* Handler name for SR CCU43_2 */
171 Entry CCU43_3_IRQHandler /* Handler name for SR CCU43_3 */
172 Entry CCU80_0_IRQHandler /* Handler name for SR CCU80_0 */
173 Entry CCU80_1_IRQHandler /* Handler name for SR CCU80_1 */
174 Entry CCU80_2_IRQHandler /* Handler name for SR CCU80_2 */
175 Entry CCU80_3_IRQHandler /* Handler name for SR CCU80_3 */
176 Entry CCU81_0_IRQHandler /* Handler name for SR CCU81_0 */
177 Entry CCU81_1_IRQHandler /* Handler name for SR CCU81_1 */
178 Entry CCU81_2_IRQHandler /* Handler name for SR CCU81_2 */
179 Entry CCU81_3_IRQHandler /* Handler name for SR CCU81_3 */
180 Entry POSIF0_0_IRQHandler /* Handler name for SR POSIF0_0 */
181 Entry POSIF0_1_IRQHandler /* Handler name for SR POSIF0_1 */
182 Entry POSIF1_0_IRQHandler /* Handler name for SR POSIF1_0 */
183 Entry POSIF1_1_IRQHandler /* Handler name for SR POSIF1_1 */
184 Entry HRPWM_0_IRQHandler /* Handler name for SR HRPWM_0 */
185 Entry HRPWM_1_IRQHandler /* Handler name for SR HRPWM_1 */
186 Entry HRPWM_2_IRQHandler /* Handler name for SR HRPWM_2 */
187 Entry HRPWM_3_IRQHandler /* Handler name for SR HRPWM_3 */
188 Entry CAN0_0_IRQHandler /* Handler name for SR CAN0_0 */
189 Entry CAN0_1_IRQHandler /* Handler name for SR CAN0_1 */
190 Entry CAN0_2_IRQHandler /* Handler name for SR CAN0_2 */
191 Entry CAN0_3_IRQHandler /* Handler name for SR CAN0_3 */
192 Entry CAN0_4_IRQHandler /* Handler name for SR CAN0_4 */
193 Entry CAN0_5_IRQHandler /* Handler name for SR CAN0_5 */
194 Entry CAN0_6_IRQHandler /* Handler name for SR CAN0_6 */
195 Entry CAN0_7_IRQHandler /* Handler name for SR CAN0_7 */
196 Entry USIC0_0_IRQHandler /* Handler name for SR USIC0_0 */
197 Entry USIC0_1_IRQHandler /* Handler name for SR USIC0_1 */
198 Entry USIC0_2_IRQHandler /* Handler name for SR USIC0_2 */
199 Entry USIC0_3_IRQHandler /* Handler name for SR USIC0_3 */
200 Entry USIC0_4_IRQHandler /* Handler name for SR USIC0_4 */
201 Entry USIC0_5_IRQHandler /* Handler name for SR USIC0_5 */
202 Entry USIC1_0_IRQHandler /* Handler name for SR USIC1_0 */
203 Entry USIC1_1_IRQHandler /* Handler name for SR USIC1_1 */
204 Entry USIC1_2_IRQHandler /* Handler name for SR USIC1_2 */
205 Entry USIC1_3_IRQHandler /* Handler name for SR USIC1_3 */
206 Entry USIC1_4_IRQHandler /* Handler name for SR USIC1_4 */
207 Entry USIC1_5_IRQHandler /* Handler name for SR USIC1_5 */
208 .long 0 /* Not Available */
209 .long 0 /* Not Available */
210 .long 0 /* Not Available */
211 .long 0 /* Not Available */
212 .long 0 /* Not Available */
213 .long 0 /* Not Available */
214 Entry LEDTS0_0_IRQHandler /* Handler name for SR LEDTS0_0 */
215 .long 0 /* Not Available */
216 Entry FCE0_0_IRQHandler /* Handler name for SR FCE0_0 */
217 Entry GPDMA0_0_IRQHandler /* Handler name for SR GPDMA0_0 */
218 .long 0 /* Not Available */
219 Entry USB0_0_IRQHandler /* Handler name for SR USB0_0 */
220 Entry ETH0_0_IRQHandler /* Handler name for SR ETH0_0 */
221 .long 0 /* Not Available */
222 .long 0 /* Not Available */
223 .long 0 /* Not Available */
225 .size __Xmc4400_interrupt_vector_cortex_m, . - __Xmc4400_interrupt_vector_cortex_m
226 /* ================== END OF VECTOR TABLE DEFINITION ======================= */
228 /* ================== START OF VECTOR ROUTINES ============================= */
230 /* ======================================================================== */
234 .globl __Xmc4400_reset_cortex_m
235 .type __Xmc4400_reset_cortex_m, %function
236 __Xmc4400_reset_cortex_m:
239 /* C routines are likely to be called. Setup the stack now */
240 /* This is already setup by BootROM,hence this step is optional */
241 LDR SP,=__Xmc4400_stack
243 /* Clock tree, External memory setup etc may be done here */
248 SystemInit_DAVE3() is provided by DAVE3 code generation engine. It is
249 weakly defined here though for a potential override.
251 LDR R0, =SystemInit_DAVE3
254 B __Xmc4400_Program_Loader
259 .size __Xmc4400_reset_cortex_m,.-__Xmc4400_reset_cortex_m
260 /* ======================================================================== */
261 /* __Xmc4400_reset must yield control to __Xmc4400_Program_Loader before control
262 to C land is given */
263 .section .Xmc4400.postreset,"x",%progbits
264 __Xmc4400_Program_Loader:
266 /* Memories are accessible now*/
269 /* R0 = Start address, R1 = Destination address, R2 = Size */
271 LDR R1, =__Xmc4400_sData
272 LDR R2, =__Xmc4400_Data_Size
274 /* Is there anything to be copied? */
278 /* For bytecount less than 4, at least 1 word must be copied */
282 /* Byte count < 4 ; so bump it up */
287 R2 contains byte count. Change it to word count. It is ensured in the
288 linker script that the length is always word aligned.
290 LSR R2,R2,#2 /* Divide by 4 to obtain word count */
292 /* The proverbial loop from the schooldays */
304 LDR R0, =__Xmc4400_sBSS /* Start of BSS */
305 LDR R1, =__Xmc4400_BSS_Size /* BSS size in bytes */
307 /* Find out if there are items assigned to BSS */
311 /* At least 1 word must be copied */
315 /* Byte count < 4 ; so bump it up to a word*/
319 LSR R1,R1,#2 /* BSS size in words */
330 /* Remap vector table */
331 /* This is already setup by BootROM,hence this step is optional */
332 LDR R0, =__Xmc4400_interrupt_vector_cortex_m
336 /* Update System Clock */
337 LDR R0,=SystemCoreClockUpdate
340 /* C++ : Call the global constructor */
341 LDR R0,=__libc_init_array
344 /* Reset stack pointer before zipping off to user application, Optional */
345 LDR SP,=__Xmc4400_stack
352 .size __Xmc4400_Program_Loader,.-__Xmc4400_Program_Loader
353 /* ======================================================================== */
354 /* ========== START OF EXCEPTION HANDLER DEFINITION ======================== */
356 /* Default exception Handlers - Users may override this default functionality by
357 defining handlers of the same name in their C code */
361 Insert_ExceptionHandler NMI_Handler
362 /* ======================================================================== */
363 Insert_ExceptionHandler HardFault_Handler
364 /* ======================================================================== */
365 Insert_ExceptionHandler MemManage_Handler
366 /* ======================================================================== */
367 Insert_ExceptionHandler BusFault_Handler
368 /* ======================================================================== */
369 Insert_ExceptionHandler UsageFault_Handler
370 /* ======================================================================== */
371 Insert_ExceptionHandler SVC_Handler
372 /* ======================================================================== */
373 Insert_ExceptionHandler DebugMon_Handler
374 /* ======================================================================== */
375 Insert_ExceptionHandler PendSV_Handler
376 /* ======================================================================== */
377 Insert_ExceptionHandler SysTick_Handler
378 /* ======================================================================== */
380 /* ============= END OF EXCEPTION HANDLER DEFINITION ======================== */
382 /* ============= START OF INTERRUPT HANDLER DEFINITION ====================== */
385 Insert_ExceptionHandler SCU_0_IRQHandler
386 /* ======================================================================== */
387 Insert_ExceptionHandler ERU0_0_IRQHandler
388 /* ======================================================================== */
389 Insert_ExceptionHandler ERU0_1_IRQHandler
390 /* ======================================================================== */
391 Insert_ExceptionHandler ERU0_2_IRQHandler
392 /* ======================================================================== */
393 Insert_ExceptionHandler ERU0_3_IRQHandler
394 /* ======================================================================== */
395 Insert_ExceptionHandler ERU1_0_IRQHandler
396 /* ======================================================================== */
397 Insert_ExceptionHandler ERU1_1_IRQHandler
398 /* ======================================================================== */
399 Insert_ExceptionHandler ERU1_2_IRQHandler
400 /* ======================================================================== */
401 Insert_ExceptionHandler ERU1_3_IRQHandler
402 /* ======================================================================== */
403 Insert_ExceptionHandler PMU0_0_IRQHandler
404 /* ======================================================================== */
405 Insert_ExceptionHandler VADC0_C0_0_IRQHandler
406 /* ======================================================================== */
407 Insert_ExceptionHandler VADC0_C0_1_IRQHandler
408 /* ======================================================================== */
409 Insert_ExceptionHandler VADC0_C0_2_IRQHandler
410 /* ======================================================================== */
411 Insert_ExceptionHandler VADC0_C0_3_IRQHandler
412 /* ======================================================================== */
413 Insert_ExceptionHandler VADC0_G0_0_IRQHandler
414 /* ======================================================================== */
415 Insert_ExceptionHandler VADC0_G0_1_IRQHandler
416 /* ======================================================================== */
417 Insert_ExceptionHandler VADC0_G0_2_IRQHandler
418 /* ======================================================================== */
419 Insert_ExceptionHandler VADC0_G0_3_IRQHandler
420 /* ======================================================================== */
421 Insert_ExceptionHandler VADC0_G1_0_IRQHandler
422 /* ======================================================================== */
423 Insert_ExceptionHandler VADC0_G1_1_IRQHandler
424 /* ======================================================================== */
425 Insert_ExceptionHandler VADC0_G1_2_IRQHandler
426 /* ======================================================================== */
427 Insert_ExceptionHandler VADC0_G1_3_IRQHandler
428 /* ======================================================================== */
429 Insert_ExceptionHandler VADC0_G2_0_IRQHandler
430 /* ======================================================================== */
431 Insert_ExceptionHandler VADC0_G2_1_IRQHandler
432 /* ======================================================================== */
433 Insert_ExceptionHandler VADC0_G2_2_IRQHandler
434 /* ======================================================================== */
435 Insert_ExceptionHandler VADC0_G2_3_IRQHandler
436 /* ======================================================================== */
437 Insert_ExceptionHandler VADC0_G3_0_IRQHandler
438 /* ======================================================================== */
439 Insert_ExceptionHandler VADC0_G3_1_IRQHandler
440 /* ======================================================================== */
441 Insert_ExceptionHandler VADC0_G3_2_IRQHandler
442 /* ======================================================================== */
443 Insert_ExceptionHandler VADC0_G3_3_IRQHandler
444 /* ======================================================================== */
445 Insert_ExceptionHandler DSD0_0_IRQHandler
446 /* ======================================================================== */
447 Insert_ExceptionHandler DSD0_1_IRQHandler
448 /* ======================================================================== */
449 Insert_ExceptionHandler DSD0_2_IRQHandler
450 /* ======================================================================== */
451 Insert_ExceptionHandler DSD0_3_IRQHandler
452 /* ======================================================================== */
453 Insert_ExceptionHandler DSD0_4_IRQHandler
454 /* ======================================================================== */
455 Insert_ExceptionHandler DSD0_5_IRQHandler
456 /* ======================================================================== */
457 Insert_ExceptionHandler DSD0_6_IRQHandler
458 /* ======================================================================== */
459 Insert_ExceptionHandler DSD0_7_IRQHandler
460 /* ======================================================================== */
461 Insert_ExceptionHandler DAC0_0_IRQHandler
462 /* ======================================================================== */
463 Insert_ExceptionHandler DAC0_1_IRQHandler
464 /* ======================================================================== */
465 Insert_ExceptionHandler CCU40_0_IRQHandler
466 /* ======================================================================== */
467 Insert_ExceptionHandler CCU40_1_IRQHandler
468 /* ======================================================================== */
469 Insert_ExceptionHandler CCU40_2_IRQHandler
470 /* ======================================================================== */
471 Insert_ExceptionHandler CCU40_3_IRQHandler
472 /* ======================================================================== */
473 Insert_ExceptionHandler CCU41_0_IRQHandler
474 /* ======================================================================== */
475 Insert_ExceptionHandler CCU41_1_IRQHandler
476 /* ======================================================================== */
477 Insert_ExceptionHandler CCU41_2_IRQHandler
478 /* ======================================================================== */
479 Insert_ExceptionHandler CCU41_3_IRQHandler
480 /* ======================================================================== */
481 Insert_ExceptionHandler CCU42_0_IRQHandler
482 /* ======================================================================== */
483 Insert_ExceptionHandler CCU42_1_IRQHandler
484 /* ======================================================================== */
485 Insert_ExceptionHandler CCU42_2_IRQHandler
486 /* ======================================================================== */
487 Insert_ExceptionHandler CCU42_3_IRQHandler
488 /* ======================================================================== */
489 Insert_ExceptionHandler CCU43_0_IRQHandler
490 /* ======================================================================== */
491 Insert_ExceptionHandler CCU43_1_IRQHandler
492 /* ======================================================================== */
493 Insert_ExceptionHandler CCU43_2_IRQHandler
494 /* ======================================================================== */
495 Insert_ExceptionHandler CCU43_3_IRQHandler
496 /* ======================================================================== */
497 Insert_ExceptionHandler CCU80_0_IRQHandler
498 /* ======================================================================== */
499 Insert_ExceptionHandler CCU80_1_IRQHandler
500 /* ======================================================================== */
501 Insert_ExceptionHandler CCU80_2_IRQHandler
502 /* ======================================================================== */
503 Insert_ExceptionHandler CCU80_3_IRQHandler
504 /* ======================================================================== */
505 Insert_ExceptionHandler CCU81_0_IRQHandler
506 /* ======================================================================== */
507 Insert_ExceptionHandler CCU81_1_IRQHandler
508 /* ======================================================================== */
509 Insert_ExceptionHandler CCU81_2_IRQHandler
510 /* ======================================================================== */
511 Insert_ExceptionHandler CCU81_3_IRQHandler
512 /* ======================================================================== */
513 Insert_ExceptionHandler POSIF0_0_IRQHandler
514 /* ======================================================================== */
515 Insert_ExceptionHandler POSIF0_1_IRQHandler
516 /* ======================================================================== */
517 Insert_ExceptionHandler POSIF1_0_IRQHandler
518 /* ======================================================================== */
519 Insert_ExceptionHandler POSIF1_1_IRQHandler
520 /* ======================================================================== */
521 Insert_ExceptionHandler HRPWM_0_IRQHandler
522 /* ======================================================================== */
523 Insert_ExceptionHandler HRPWM_1_IRQHandler
524 /* ======================================================================== */
525 Insert_ExceptionHandler HRPWM_2_IRQHandler
526 /* ======================================================================== */
527 Insert_ExceptionHandler HRPWM_3_IRQHandler
528 /* ======================================================================== */
529 Insert_ExceptionHandler CAN0_0_IRQHandler
530 /* ======================================================================== */
531 Insert_ExceptionHandler CAN0_1_IRQHandler
532 /* ======================================================================== */
533 Insert_ExceptionHandler CAN0_2_IRQHandler
534 /* ======================================================================== */
535 Insert_ExceptionHandler CAN0_3_IRQHandler
536 /* ======================================================================== */
537 Insert_ExceptionHandler CAN0_4_IRQHandler
538 /* ======================================================================== */
539 Insert_ExceptionHandler CAN0_5_IRQHandler
540 /* ======================================================================== */
541 Insert_ExceptionHandler CAN0_6_IRQHandler
542 /* ======================================================================== */
543 Insert_ExceptionHandler CAN0_7_IRQHandler
544 /* ======================================================================== */
545 Insert_ExceptionHandler USIC0_0_IRQHandler
546 /* ======================================================================== */
547 Insert_ExceptionHandler USIC0_1_IRQHandler
548 /* ======================================================================== */
549 Insert_ExceptionHandler USIC0_2_IRQHandler
550 /* ======================================================================== */
551 Insert_ExceptionHandler USIC0_3_IRQHandler
552 /* ======================================================================== */
553 Insert_ExceptionHandler USIC0_4_IRQHandler
554 /* ======================================================================== */
555 Insert_ExceptionHandler USIC0_5_IRQHandler
556 /* ======================================================================== */
557 Insert_ExceptionHandler USIC1_0_IRQHandler
558 /* ======================================================================== */
559 Insert_ExceptionHandler USIC1_1_IRQHandler
560 /* ======================================================================== */
561 Insert_ExceptionHandler USIC1_2_IRQHandler
562 /* ======================================================================== */
563 Insert_ExceptionHandler USIC1_3_IRQHandler
564 /* ======================================================================== */
565 Insert_ExceptionHandler USIC1_4_IRQHandler
566 /* ======================================================================== */
567 Insert_ExceptionHandler USIC1_5_IRQHandler
568 /* ======================================================================== */
569 Insert_ExceptionHandler LEDTS0_0_IRQHandler
570 /* ======================================================================== */
571 Insert_ExceptionHandler FCE0_0_IRQHandler
572 /* ======================================================================== */
573 Insert_ExceptionHandler GPDMA0_0_IRQHandler
574 /* ======================================================================== */
575 Insert_ExceptionHandler USB0_0_IRQHandler
576 /* ======================================================================== */
577 Insert_ExceptionHandler ETH0_0_IRQHandler
578 /* ======================================================================== */
579 /* ======================================================================== */
581 /* ============= END OF INTERRUPT HANDLER DEFINITION ======================== */
583 /* ========= Decision function queried by CMSIS startup for PLL setup ======== */
584 /* In the absence of DAVE code engine, CMSIS SystemInit() must perform clock
587 This decision routine defined here will always return TRUE.
589 When overridden by a definition defined in DAVE code engine, this routine
590 returns FALSE indicating that the code engine has performed the clock setup
592 .weak AllowPLLInitByStartup
593 .type AllowPLLInitByStartup, %function
594 AllowPLLInitByStartup:
597 .size AllowPLLInitByStartup, . - AllowPLLInitByStartup
599 /* ====== Definition of the default weak SystemInit_DAVE3 function =========
600 If DAVE3 requires an extended SystemInit it will create its own version of
601 SystemInit_DAVE3 which overrides this weak definition. Example includes
602 setting up of external memory interfaces.
604 .section ".XmcStartup"
605 .weak SystemInit_DAVE3
606 .type SystemInit_DAVE3, %function
610 .size SystemInit_DAVE3, . - SystemInit_DAVE3
611 /* ======================================================================== */
612 /* ======================================================================== */
614 /* ======================== Data references =============================== */
615 .equ SCB_VTOR, 0xE000ED08
616 .equ PREF_PCON, 0x58004000
617 .equ SCU_GCU_PEEN, 0x5000413C
618 .equ SCU_GCU_PEFLAG, 0x50004150
619 .equ FLASH_FCON, 0x58002014