;*****************************************************************************/
; * @file     startup_XMC4200.s
; * @brief    CMSIS Cortex-M4 Core Device Startup File for
; *           Infineon XMC4200 Device Series
; * @version  V1.00
; * @date     05. February 2013
; *
; * @note
; * Copyright (C) 2009-2013 ARM Limited. All rights reserved.
; *
; * @par
; * ARM Limited (ARM) is supplying this software for use with Cortex-M
; * processor based microcontrollers.  This file can be freely distributed
; * within development tools that are supporting such ARM based processors.
; *
; * @par
; * THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED
; * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
; * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
; * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
; * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
; *
; ******************************************************************************/

;/* ********************* Version History *********************************** */
;/* ***************************************************************************
; V0.1 , September 2012, First version
; V1.0 , February 2013, FIX for CPU prefetch bug implemented
;**************************************************************************** */


;*  <<< Use Configuration Wizard in Context Menu >>>

; Amount of memory (in bytes) allocated for Stack
; Tailor this value to your application needs
; <h> Stack Configuration
;   <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>

Stack_Size      EQU     0x00000400

                AREA    STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem       SPACE   Stack_Size
__initial_sp


; <h> Heap Configuration
;   <o>  Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>

Heap_Size       EQU     0x00000000

                AREA    HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem        SPACE   Heap_Size
__heap_limit

                PRESERVE8
                THUMB


;/* ===========START : MACRO DEFINITION MACRO DEFINITION ================== */
;/*
; * STEP_AB and below have the prefetch functional deviation (Errata id: PMU_CM.001).
; * A veneer defined below will first
; * be executed which in turn branches to the final exception handler.
; *
; * In addition to defining the veneers, the vector table must for these buggy
; * devices contain the veneers.
; */

;set WORKAROUND_PMU_CM001 under Options for target - Asm - Define
;or use define below
              GBLL WORKAROUND_PMU_CM001

;/* A macro to setup a vector table entry based on STEP ID */
              IF    :DEF:WORKAROUND_PMU_CM001
                MACRO
                ExcpVector $Handler
                  DCD   $Handler._Veneer
                MEND
              ELSE
                MACRO
                ExcpVector $Handler
                  DCD   $Handler
                MEND
              ENDIF

;/* A macro to ease definition of the various handlers based on STEP ID */
              IF     :DEF:WORKAROUND_PMU_CM001

                ;/* First define the final exception handler */
                MACRO
                ExcpHandler $Handler_Func
$Handler_Func\
                  PROC
                  EXPORT  $Handler_Func            [WEAK]
                  B       .
                  ENDP

                ;/* And then define a veneer that will branch to the final excp handler */
$Handler_Func._Veneer\
                  PROC
                  EXPORT  $Handler_Func._Veneer    [WEAK]
                  LDR     R0, =$Handler_Func
                  PUSH    {LR}
                  BLX     R0
                  POP     {PC}
                  ALIGN
                  LTORG
                  ENDP
                MEND

              ELSE

                ;/* No prefetch bug, hence define only the final exception handler */
                MACRO
                ExcpHandler $Handler_Func
$Handler_Func\
                  PROC
                  EXPORT  $Handler_Func            [WEAK]
                  B       .
                  ENDP
                MEND

              ENDIF
;/* ============= END OF MACRO DEFINITION MACRO DEFINITION ================== */


;* ================== START OF VECTOR TABLE DEFINITION ====================== */
;* Vector Table - This gets programed into VTOR register */
                AREA    RESET, DATA, READONLY
                EXPORT  __Vectors
                EXPORT  __Vectors_End
                EXPORT  __Vectors_Size



__Vectors
    DCD          __initial_sp               ; Top of Stack
    DCD          Reset_Handler              ; Reset Handler

    ExcpVector   NMI_Handler                ; NMI Handler
    ExcpVector   HardFault_Handler          ; Hard Fault Handler
    ExcpVector   MemManage_Handler          ; MPU Fault Handler
    ExcpVector   BusFault_Handler           ; Bus Fault Handler
    ExcpVector   UsageFault_Handler         ; Usage Fault Handler
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    ExcpVector   SVC_Handler                ; SVCall Handler
    ExcpVector   DebugMon_Handler           ; Debug Monitor Handler
    DCD          0                          ; Reserved
    ExcpVector   PendSV_Handler             ; PendSV Handler
    ExcpVector   SysTick_Handler            ; SysTick Handler

    ; Interrupt Handlers for Service Requests (SR) from XMC4200 Peripherals
    ExcpVector   SCU_0_IRQHandler           ; Handler name for SR SCU_0
    ExcpVector   ERU0_0_IRQHandler          ; Handler name for SR ERU0_0
    ExcpVector   ERU0_1_IRQHandler          ; Handler name for SR ERU0_1
    ExcpVector   ERU0_2_IRQHandler          ; Handler name for SR ERU0_2
    ExcpVector   ERU0_3_IRQHandler          ; Handler name for SR ERU0_3
    ExcpVector   ERU1_0_IRQHandler          ; Handler name for SR ERU1_0
    ExcpVector   ERU1_1_IRQHandler          ; Handler name for SR ERU1_1
    ExcpVector   ERU1_2_IRQHandler          ; Handler name for SR ERU1_2
    ExcpVector   ERU1_3_IRQHandler          ; Handler name for SR ERU1_3
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    ExcpVector   PMU0_0_IRQHandler          ; Handler name for SR PMU0_0
    DCD          0                          ; Reserved
    ExcpVector   VADC0_C0_0_IRQHandler      ; Handler name for SR VADC0_C0_0
    ExcpVector   VADC0_C0_1_IRQHandler      ; Handler name for SR VADC0_C0_1
    ExcpVector   VADC0_C0_2_IRQHandler      ; Handler name for SR VADC0_C0_1
    ExcpVector   VADC0_C0_3_IRQHandler      ; Handler name for SR VADC0_C0_3
    ExcpVector   VADC0_G0_0_IRQHandler      ; Handler name for SR VADC0_G0_0
    ExcpVector   VADC0_G0_1_IRQHandler      ; Handler name for SR VADC0_G0_1
    ExcpVector   VADC0_G0_2_IRQHandler      ; Handler name for SR VADC0_G0_2
    ExcpVector   VADC0_G0_3_IRQHandler      ; Handler name for SR VADC0_G0_3
    ExcpVector   VADC0_G1_0_IRQHandler      ; Handler name for SR VADC0_G1_0
    ExcpVector   VADC0_G1_1_IRQHandler      ; Handler name for SR VADC0_G1_1
    ExcpVector   VADC0_G1_2_IRQHandler      ; Handler name for SR VADC0_G1_2
    ExcpVector   VADC0_G1_3_IRQHandler      ; Handler name for SR VADC0_G1_3
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    ExcpVector   DAC0_0_IRQHandler          ; Handler name for SR DAC0_0
    ExcpVector   DAC0_1_IRQHandler          ; Handler name for SR DAC0_1
    ExcpVector   CCU40_0_IRQHandler         ; Handler name for SR CCU40_0
    ExcpVector   CCU40_1_IRQHandler         ; Handler name for SR CCU40_1
    ExcpVector   CCU40_2_IRQHandler         ; Handler name for SR CCU40_2
    ExcpVector   CCU40_3_IRQHandler         ; Handler name for SR CCU40_3
    ExcpVector   CCU41_0_IRQHandler         ; Handler name for SR CCU41_0
    ExcpVector   CCU41_1_IRQHandler         ; Handler name for SR CCU41_1
    ExcpVector   CCU41_2_IRQHandler         ; Handler name for SR CCU41_2
    ExcpVector   CCU41_3_IRQHandler         ; Handler name for SR CCU41_3
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    ExcpVector   CCU80_0_IRQHandler         ; Handler name for SR CCU80_0
    ExcpVector   CCU80_1_IRQHandler         ; Handler name for SR CCU80_1
    ExcpVector   CCU80_2_IRQHandler         ; Handler name for SR CCU80_2
    ExcpVector   CCU80_3_IRQHandler         ; Handler name for SR CCU80_3
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    ExcpVector   POSIF0_0_IRQHandler        ; Handler name for SR POSIF0_0
    ExcpVector   POSIF0_1_IRQHandler        ; Handler name for SR POSIF0_1
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    ExcpVector   HRPWM_0_IRQHandler         ; Handler name for SR HRPWM_0
    ExcpVector   HRPWM_1_IRQHandler         ; Handler name for SR HRPWM_1
    ExcpVector   HRPWM_2_IRQHandler         ; Handler name for SR HRPWM_2
    ExcpVector   HRPWM_3_IRQHandler         ; Handler name for SR HRPWM_3
    ExcpVector   CAN0_0_IRQHandler          ; Handler name for SR CAN0_0
    ExcpVector   CAN0_1_IRQHandler          ; Handler name for SR CAN0_1
    ExcpVector   CAN0_2_IRQHandler          ; Handler name for SR CAN0_2
    ExcpVector   CAN0_3_IRQHandler          ; Handler name for SR CAN0_3
    ExcpVector   CAN0_4_IRQHandler          ; Handler name for SR CAN0_4
    ExcpVector   CAN0_5_IRQHandler          ; Handler name for SR CAN0_5
    ExcpVector   CAN0_6_IRQHandler          ; Handler name for SR CAN0_6
    ExcpVector   CAN0_7_IRQHandler          ; Handler name for SR CAN0_7
    ExcpVector   USIC0_0_IRQHandler         ; Handler name for SR USIC0_0
    ExcpVector   USIC0_1_IRQHandler         ; Handler name for SR USIC0_1
    ExcpVector   USIC0_2_IRQHandler         ; Handler name for SR USIC0_2
    ExcpVector   USIC0_3_IRQHandler         ; Handler name for SR USIC0_3
    ExcpVector   USIC0_4_IRQHandler         ; Handler name for SR USIC0_4
    ExcpVector   USIC0_5_IRQHandler         ; Handler name for SR USIC0_5
    ExcpVector   USIC1_0_IRQHandler         ; Handler name for SR USIC1_0
    ExcpVector   USIC1_1_IRQHandler         ; Handler name for SR USIC1_1
    ExcpVector   USIC1_2_IRQHandler         ; Handler name for SR USIC1_2
    ExcpVector   USIC1_3_IRQHandler         ; Handler name for SR USIC1_3
    ExcpVector   USIC1_4_IRQHandler         ; Handler name for SR USIC1_4
    ExcpVector   USIC1_5_IRQHandler         ; Handler name for SR USIC1_5
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    ExcpVector   LEDTS0_0_IRQHandler        ; Handler name for SR LEDTS0_0
    DCD          0                          ; Reserved
    ExcpVector   FCE0_0_IRQHandler          ; Handler name for SR FCE0_0
    ExcpVector   GPDMA0_0_IRQHandler        ; Handler name for SR GPDMA0_0
    DCD          0                          ; Reserved
    ExcpVector   USB0_0_IRQHandler          ; Handler name for SR USB0_0
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
    DCD          0                          ; Reserved
__Vectors_End

__Vectors_Size  EQU  __Vectors_End - __Vectors

;* ================== END OF VECTOR TABLE DEFINITION ======================= */

;* ================== START OF VECTOR ROUTINES ============================= */

                AREA    |.text|, CODE, READONLY

;* Reset Handler */
Reset_Handler    PROC
                 EXPORT  Reset_Handler             [WEAK]
        IMPORT  SystemInit
        IMPORT  __main

        ; Remap vector table
        LDR     R0, =__Vectors
        LDR     R1, =0xE000ED08 ;*VTOR register
        STR     R0,[R1]

        ;* C routines are likely to be called. Setup the stack now
        LDR     SP,=__initial_sp

        LDR     R0, = SystemInit
        BLX     R0

        ;SystemInit_DAVE3() is provided by DAVE3 code generation engine. It is
        ;weakly defined here though for a potential override.

        LDR     R0, = SystemInit_DAVE3
        BLX     R0

        ;* Reset stack pointer before zipping off to user application
        LDR     SP,=__initial_sp

        LDR     R0, =__main
        BX      R0

        ALIGN
        ENDP




;* ========== START OF EXCEPTION HANDLER DEFINITION ======================== */



;/* Default exception Handlers - Users may override this default functionality by
;   defining handlers of the same name in their C code */

    ExcpHandler   NMI_Handler
    ExcpHandler   HardFault_Handler
    ExcpHandler   MemManage_Handler
    ExcpHandler   BusFault_Handler
    ExcpHandler   UsageFault_Handler
    ExcpHandler   SVC_Handler
    ExcpHandler   DebugMon_Handler
    ExcpHandler   PendSV_Handler
    ExcpHandler   SysTick_Handler

;* ============= END OF EXCEPTION HANDLER DEFINITION ======================== */

;* ============= START OF INTERRUPT HANDLER DEFINITION ====================== */

;* IRQ Handlers */
    ExcpHandler   SCU_0_IRQHandler
    ExcpHandler   ERU0_0_IRQHandler
    ExcpHandler   ERU0_1_IRQHandler
    ExcpHandler   ERU0_2_IRQHandler
    ExcpHandler   ERU0_3_IRQHandler
    ExcpHandler   ERU1_0_IRQHandler
    ExcpHandler   ERU1_1_IRQHandler
    ExcpHandler   ERU1_2_IRQHandler
    ExcpHandler   ERU1_3_IRQHandler
    ExcpHandler   PMU0_0_IRQHandler
    ExcpHandler   VADC0_C0_0_IRQHandler
    ExcpHandler   VADC0_C0_1_IRQHandler
    ExcpHandler   VADC0_C0_2_IRQHandler
    ExcpHandler   VADC0_C0_3_IRQHandler
    ExcpHandler   VADC0_G0_0_IRQHandler
    ExcpHandler   VADC0_G0_1_IRQHandler
    ExcpHandler   VADC0_G0_2_IRQHandler
    ExcpHandler   VADC0_G0_3_IRQHandler
    ExcpHandler   VADC0_G1_0_IRQHandler
    ExcpHandler   VADC0_G1_1_IRQHandler
    ExcpHandler   VADC0_G1_2_IRQHandler
    ExcpHandler   VADC0_G1_3_IRQHandler
    ExcpHandler   DAC0_0_IRQHandler
    ExcpHandler   DAC0_1_IRQHandler
    ExcpHandler   CCU40_0_IRQHandler
    ExcpHandler   CCU40_1_IRQHandler
    ExcpHandler   CCU40_2_IRQHandler
    ExcpHandler   CCU40_3_IRQHandler
    ExcpHandler   CCU41_0_IRQHandler
    ExcpHandler   CCU41_1_IRQHandler
    ExcpHandler   CCU41_2_IRQHandler
    ExcpHandler   CCU41_3_IRQHandler
    ExcpHandler   CCU80_0_IRQHandler
    ExcpHandler   CCU80_1_IRQHandler
    ExcpHandler   CCU80_2_IRQHandler
    ExcpHandler   CCU80_3_IRQHandler
    ExcpHandler   POSIF0_0_IRQHandler
    ExcpHandler   POSIF0_1_IRQHandler
    ExcpHandler   HRPWM_0_IRQHandler
    ExcpHandler   HRPWM_1_IRQHandler
    ExcpHandler   HRPWM_2_IRQHandler
    ExcpHandler   HRPWM_3_IRQHandler
    ExcpHandler   CAN0_0_IRQHandler
    ExcpHandler   CAN0_1_IRQHandler
    ExcpHandler   CAN0_2_IRQHandler
    ExcpHandler   CAN0_3_IRQHandler
    ExcpHandler   CAN0_4_IRQHandler
    ExcpHandler   CAN0_5_IRQHandler
    ExcpHandler   CAN0_6_IRQHandler
    ExcpHandler   CAN0_7_IRQHandler
    ExcpHandler   USIC0_0_IRQHandler
    ExcpHandler   USIC0_1_IRQHandler
    ExcpHandler   USIC0_2_IRQHandler
    ExcpHandler   USIC0_3_IRQHandler
    ExcpHandler   USIC0_4_IRQHandler
    ExcpHandler   USIC0_5_IRQHandler
    ExcpHandler   USIC1_0_IRQHandler
    ExcpHandler   USIC1_1_IRQHandler
    ExcpHandler   USIC1_2_IRQHandler
    ExcpHandler   USIC1_3_IRQHandler
    ExcpHandler   USIC1_4_IRQHandler
    ExcpHandler   USIC1_5_IRQHandler
    ExcpHandler   LEDTS0_0_IRQHandler
    ExcpHandler   FCE0_0_IRQHandler
    ExcpHandler   GPDMA0_0_IRQHandler
    ExcpHandler   USB0_0_IRQHandler

;* ============= END OF INTERRUPT HANDLER DEFINITION ======================== */

;*  Definition of the default weak SystemInit_DAVE3 function.
;*  This function will be called by the CMSIS SystemInit function.
;*  If DAVE3 requires an extended SystemInit it will create its own SystemInit_DAVE3
;*  which will overule this weak definition
SystemInit_DAVE3  PROC
                  EXPORT  SystemInit_DAVE3             [WEAK]
                  NOP
                  BX     LR
                  ENDP

;*  Definition of the default weak DAVE3 function for clock App usage.
;* AllowPLLInitByStartup Handler */
AllowPLLInitByStartup    PROC
                  EXPORT  AllowPLLInitByStartup        [WEAK]
                  MOV    R0,#1
                  BX     LR
                  ENDP

                  ALIGN

;*******************************************************************************
; User Stack and Heap initialization
;*******************************************************************************
                 IF      :DEF:__MICROLIB

                 EXPORT  __initial_sp
                 EXPORT  __heap_base
                 EXPORT  __heap_limit

                 ELSE

                 IMPORT  __use_two_region_memory
                 EXPORT  __user_initial_stackheap

__user_initial_stackheap

                 LDR     R0, =  Heap_Mem
                 LDR     R1, =(Stack_Mem + Stack_Size)
                 LDR     R2, = (Heap_Mem +  Heap_Size)
                 LDR     R3, = Stack_Mem
                 BX      LR

                 ALIGN

                 ENDIF

                 END

;******************* Copyright (C) 2009-2013 ARM Limited *****END OF FILE*****
