;/**************************************************************************//**
; * @file startup_efm32pg12b.s
; * @brief    CMSIS Core Device Startup File for
; *           Silicon Labs EFM32PG12B Device Series
; * @version 5.6.0
; * @date     02. March 2016
; *****************************************************************************/
;/*
; * Copyright (c) 2009-2016 ARM Limited. All rights reserved.
; *
; * SPDX-License-Identifier: Apache-2.0
; *
; * Licensed under the Apache License, Version 2.0 (the License); you may
; * not use this file except in compliance with the License.
; * You may obtain a copy of the License at
; *
; * www.apache.org/licenses/LICENSE-2.0
; *
; * Unless required by applicable law or agreed to in writing, software
; * distributed under the License is distributed on an AS IS BASIS, WITHOUT
; * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
; * See the License for the specific language governing permissions and
; * limitations under the License.
; */

;/*
;//-------- <<< Use Configuration Wizard in Context Menu >>> ------------------
;*/

; <h> Stack Configuration
;   <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>
                IF :DEF: __STACK_SIZE
Stack_Size      EQU     __STACK_SIZE
                ELSE
Stack_Size      EQU     0x00000400
                ENDIF

                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>
                IF :DEF: __HEAP_SIZE
Heap_Size       EQU     __HEAP_SIZE
                ELSE
Heap_Size       EQU     0x00000C00
                ENDIF

                AREA    HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem        SPACE   Heap_Size
__heap_limit


                PRESERVE8
                THUMB


; Vector Table Mapped to Address 0 at Reset

                AREA    RESET, DATA, READONLY, ALIGN=8
                EXPORT  __Vectors
                EXPORT  __Vectors_End
                EXPORT  __Vectors_Size

__Vectors       DCD     __initial_sp              ; 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     EMU_IRQHandler            ; 0: EMU Interrupt
                DCD     0                         ; 1: Reserved
                DCD     WDOG0_IRQHandler          ; 2: WDOG0 Interrupt
                DCD     WDOG1_IRQHandler          ; 3: WDOG1 Interrupt
                DCD     0                         ; 4: Reserved
                DCD     0                         ; 5: Reserved
                DCD     0                         ; 6: Reserved
                DCD     0                         ; 7: Reserved
                DCD     0                         ; 8: Reserved
                DCD     LDMA_IRQHandler           ; 9: LDMA Interrupt
                DCD     GPIO_EVEN_IRQHandler      ; 10: GPIO_EVEN Interrupt
                DCD     TIMER0_IRQHandler         ; 11: TIMER0 Interrupt
                DCD     USART0_RX_IRQHandler      ; 12: USART0_RX Interrupt
                DCD     USART0_TX_IRQHandler      ; 13: USART0_TX Interrupt
                DCD     ACMP0_IRQHandler          ; 14: ACMP0 Interrupt
                DCD     ADC0_IRQHandler           ; 15: ADC0 Interrupt
                DCD     IDAC0_IRQHandler          ; 16: IDAC0 Interrupt
                DCD     I2C0_IRQHandler           ; 17: I2C0 Interrupt
                DCD     GPIO_ODD_IRQHandler       ; 18: GPIO_ODD Interrupt
                DCD     TIMER1_IRQHandler         ; 19: TIMER1 Interrupt
                DCD     USART1_RX_IRQHandler      ; 20: USART1_RX Interrupt
                DCD     USART1_TX_IRQHandler      ; 21: USART1_TX Interrupt
                DCD     LEUART0_IRQHandler        ; 22: LEUART0 Interrupt
                DCD     PCNT0_IRQHandler          ; 23: PCNT0 Interrupt
                DCD     CMU_IRQHandler            ; 24: CMU Interrupt
                DCD     MSC_IRQHandler            ; 25: MSC Interrupt
                DCD     CRYPTO0_IRQHandler        ; 26: CRYPTO0 Interrupt
                DCD     LETIMER0_IRQHandler       ; 27: LETIMER0 Interrupt
                DCD     0                         ; 28: Reserved
                DCD     0                         ; 29: Reserved
                DCD     RTCC_IRQHandler           ; 30: RTCC Interrupt
                DCD     0                         ; 31: Reserved
                DCD     CRYOTIMER_IRQHandler      ; 32: CRYOTIMER Interrupt
                DCD     0                         ; 33: Reserved
                DCD     FPUEH_IRQHandler          ; 34: FPUEH Interrupt
                DCD     SMU_IRQHandler            ; 35: SMU Interrupt
                DCD     WTIMER0_IRQHandler        ; 36: WTIMER0 Interrupt
                DCD     WTIMER1_IRQHandler        ; 37: WTIMER1 Interrupt
                DCD     PCNT1_IRQHandler          ; 38: PCNT1 Interrupt
                DCD     PCNT2_IRQHandler          ; 39: PCNT2 Interrupt
                DCD     USART2_RX_IRQHandler      ; 40: USART2_RX Interrupt
                DCD     USART2_TX_IRQHandler      ; 41: USART2_TX Interrupt
                DCD     I2C1_IRQHandler           ; 42: I2C1 Interrupt
                DCD     USART3_RX_IRQHandler      ; 43: USART3_RX Interrupt
                DCD     USART3_TX_IRQHandler      ; 44: USART3_TX Interrupt
                DCD     VDAC0_IRQHandler          ; 45: VDAC0 Interrupt
                DCD     CSEN_IRQHandler           ; 46: CSEN Interrupt
                DCD     LESENSE_IRQHandler        ; 47: LESENSE Interrupt
                DCD     CRYPTO1_IRQHandler        ; 48: CRYPTO1 Interrupt
                DCD     TRNG0_IRQHandler          ; 49: TRNG0 Interrupt
                DCD     0                         ; 50: Reserved

__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
                LDR     R0, =SystemInit
                BLX     R0
                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

Default_Handler PROC

                EXPORT  EMU_IRQHandler            [WEAK]
                EXPORT  WDOG0_IRQHandler          [WEAK]
                EXPORT  WDOG1_IRQHandler          [WEAK]
                EXPORT  LDMA_IRQHandler           [WEAK]
                EXPORT  GPIO_EVEN_IRQHandler      [WEAK]
                EXPORT  TIMER0_IRQHandler         [WEAK]
                EXPORT  USART0_RX_IRQHandler      [WEAK]
                EXPORT  USART0_TX_IRQHandler      [WEAK]
                EXPORT  ACMP0_IRQHandler          [WEAK]
                EXPORT  ADC0_IRQHandler           [WEAK]
                EXPORT  IDAC0_IRQHandler          [WEAK]
                EXPORT  I2C0_IRQHandler           [WEAK]
                EXPORT  GPIO_ODD_IRQHandler       [WEAK]
                EXPORT  TIMER1_IRQHandler         [WEAK]
                EXPORT  USART1_RX_IRQHandler      [WEAK]
                EXPORT  USART1_TX_IRQHandler      [WEAK]
                EXPORT  LEUART0_IRQHandler        [WEAK]
                EXPORT  PCNT0_IRQHandler          [WEAK]
                EXPORT  CMU_IRQHandler            [WEAK]
                EXPORT  MSC_IRQHandler            [WEAK]
                EXPORT  CRYPTO0_IRQHandler        [WEAK]
                EXPORT  LETIMER0_IRQHandler       [WEAK]
                EXPORT  RTCC_IRQHandler           [WEAK]
                EXPORT  CRYOTIMER_IRQHandler      [WEAK]
                EXPORT  FPUEH_IRQHandler          [WEAK]
                EXPORT  SMU_IRQHandler            [WEAK]
                EXPORT  WTIMER0_IRQHandler        [WEAK]
                EXPORT  WTIMER1_IRQHandler        [WEAK]
                EXPORT  PCNT1_IRQHandler          [WEAK]
                EXPORT  PCNT2_IRQHandler          [WEAK]
                EXPORT  USART2_RX_IRQHandler      [WEAK]
                EXPORT  USART2_TX_IRQHandler      [WEAK]
                EXPORT  I2C1_IRQHandler           [WEAK]
                EXPORT  USART3_RX_IRQHandler      [WEAK]
                EXPORT  USART3_TX_IRQHandler      [WEAK]
                EXPORT  VDAC0_IRQHandler          [WEAK]
                EXPORT  CSEN_IRQHandler           [WEAK]
                EXPORT  LESENSE_IRQHandler        [WEAK]
                EXPORT  CRYPTO1_IRQHandler        [WEAK]
                EXPORT  TRNG0_IRQHandler          [WEAK]


EMU_IRQHandler
WDOG0_IRQHandler
WDOG1_IRQHandler
LDMA_IRQHandler
GPIO_EVEN_IRQHandler
TIMER0_IRQHandler
USART0_RX_IRQHandler
USART0_TX_IRQHandler
ACMP0_IRQHandler
ADC0_IRQHandler
IDAC0_IRQHandler
I2C0_IRQHandler
GPIO_ODD_IRQHandler
TIMER1_IRQHandler
USART1_RX_IRQHandler
USART1_TX_IRQHandler
LEUART0_IRQHandler
PCNT0_IRQHandler
CMU_IRQHandler
MSC_IRQHandler
CRYPTO0_IRQHandler
LETIMER0_IRQHandler
RTCC_IRQHandler
CRYOTIMER_IRQHandler
FPUEH_IRQHandler
SMU_IRQHandler
WTIMER0_IRQHandler
WTIMER1_IRQHandler
PCNT1_IRQHandler
PCNT2_IRQHandler
USART2_RX_IRQHandler
USART2_TX_IRQHandler
I2C1_IRQHandler
USART3_RX_IRQHandler
USART3_TX_IRQHandler
VDAC0_IRQHandler
CSEN_IRQHandler
LESENSE_IRQHandler
CRYPTO1_IRQHandler
TRNG0_IRQHandler
                B       .
                ENDP

                ALIGN

; User Initial Stack & Heap

                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 PROC
                LDR     R0, =  Heap_Mem
                LDR     R1, =(Stack_Mem + Stack_Size)
                LDR     R2, = (Heap_Mem +  Heap_Size)
                LDR     R3, = Stack_Mem
                BX      LR
                ENDP

                ALIGN

                ENDIF

                END
