1/**************************************************************************//**
2 * @file
3 * @brief    CMSIS Core Device Startup File for
4 *           Energy Micro 'EFM32G' Device Series
5 ******************************************************************************
6 *
7 * Version: Sourcery G++ 4.4-180
8 * Support: https://support.codesourcery.com/GNUToolchain/
9 *
10 * Copyright (c) 2007, 2008, 2009, 2010 CodeSourcery, Inc.
11 *
12 * The authors hereby grant permission to use, copy, modify, distribute,
13 * and license this software and its documentation for any purpose, provided
14 * that existing copyright notices are retained in all copies and that this
15 * notice is included verbatim in any distributions.  No written agreement,
16 * license, or royalty fee is required for any of the authorized uses.
17 * Modifications to this software may be copyrighted by their authors
18 * and need not follow the licensing terms described here, provided that
19 * the new terms are clearly indicated on the first page of each file where
20 * they apply.
21 *
22 *******************************************************************************
23 * Energy Micro release version
24 * @version 3.0.0
25 ******************************************************************************/
26
27/* Vector Table */
28
29    .section ".cs3.interrupt_vector"
30    .globl  __cs3_interrupt_vector_em
31    .type   __cs3_interrupt_vector_em, %object
32
33__cs3_interrupt_vector_em:
34    .long   __cs3_stack                 /* Top of Stack                 */
35    .long   __cs3_reset                 /* Reset Handler                */
36    .long   NMI_Handler                 /* NMI Handler                  */
37    .long   HardFault_Handler           /* Hard Fault Handler           */
38    .long   MemManage_Handler           /* MPU Fault Handler            */
39    .long   BusFault_Handler            /* Bus Fault Handler            */
40    .long   UsageFault_Handler          /* Usage Fault Handler          */
41    .long   Reserved7_Handler           /* Reserved                     */
42    .long   Reserved8_Handler           /* Reserved                     */
43    .long   Reserved9_Handler           /* Reserved                     */
44    .long   Reserved10_Handler          /* Reserved                     */
45    .long   SVC_Handler                 /* SVCall Handler               */
46    .long   DebugMon_Handler            /* Debug Monitor Handler        */
47    .long   Reserved13_Handler          /* Reserved                     */
48    .long   PendSV_Handler              /* PendSV Handler               */
49    .long   SysTick_Handler             /* SysTick Handler              */
50
51    /* External Interrupts */
52    .long   DMA_IRQHandler
53    .long   GPIO_EVEN_IRQHandler
54    .long   TIMER0_IRQHandler
55    .long   USART0_RX_IRQHandler
56    .long   USART0_TX_IRQHandler
57    .long   ACMP0_IRQHandler
58    .long   ADC0_IRQHandler
59    .long   DAC0_IRQHandler
60    .long   I2C0_IRQHandler
61    .long   GPIO_ODD_IRQHandler
62    .long   TIMER1_IRQHandler
63    .long   TIMER2_IRQHandler
64    .long   USART1_RX_IRQHandler
65    .long   USART1_TX_IRQHandler
66    .long   USART2_RX_IRQHandler
67    .long   USART2_TX_IRQHandler
68    .long   UART0_RX_IRQHandler
69    .long   UART0_TX_IRQHandler
70    .long   LEUART0_IRQHandler
71    .long   LEUART1_IRQHandler
72    .long   LETIMER0_IRQHandler
73    .long   PCNT0_IRQHandler
74    .long   PCNT1_IRQHandler
75    .long   PCNT2_IRQHandler
76    .long   RTC_IRQHandler
77    .long   CMU_IRQHandler
78    .long   VCMP_IRQHandler
79    .long   LCD_IRQHandler
80    .long   MSC_IRQHandler
81    .long   AES_IRQHandler
82
83    .size   __cs3_interrupt_vector_em, . - __cs3_interrupt_vector_em
84
85    .thumb
86
87
88/* Reset Handler */
89
90    .section .cs3.reset,"x",%progbits
91    .thumb_func
92    .globl  __cs3_reset_em
93    .type   __cs3_reset_em, %function
94__cs3_reset_em:
95     /* jump to common start code */
96    ldr     r0, =SystemInit
97    blx     r0
98    ldr     r0,=__cs3_start_asm
99    bx      r0
100    .pool
101    .size   __cs3_reset_em,.-__cs3_reset_em
102    .thumb
103
104    .globl  _IRQHandlerinterrupt
105    .type   _IRQHandlerinterrupt, %function
106_IRQHandlerinterrupt:
107    b .
108    .size   _IRQHandlerinterrupt, . - _IRQHandlerinterrupt
109
110    .weak   NMI_Handler
111    .globl  NMI_Handler
112    .set    NMI_Handler, _IRQHandlerinterrupt
113    .weak   HardFault_Handler
114    .globl  HardFault_Handler
115    .set    HardFault_Handler, _IRQHandlerinterrupt
116    .weak   MemManage_Handler
117    .globl  MemManage_Handler
118    .set    MemManage_Handler, _IRQHandlerinterrupt
119    .weak   BusFault_Handler
120    .globl  BusFault_Handler
121    .set    BusFault_Handler, _IRQHandlerinterrupt
122    .weak   UsageFault_Handler
123    .globl  UsageFault_Handler
124    .set    UsageFault_Handler, _IRQHandlerinterrupt
125    .weak   Reserved7_Handler
126    .globl  Reserved7_Handler
127    .set    Reserved7_Handler, _IRQHandlerinterrupt
128    .weak   Reserved8_Handler
129    .globl  Reserved8_Handler
130    .set    Reserved8_Handler, _IRQHandlerinterrupt
131    .weak   Reserved9_Handler
132    .globl  Reserved9_Handler
133    .set    Reserved9_Handler, _IRQHandlerinterrupt
134    .weak   Reserved10_Handler
135    .globl  Reserved10_Handler
136    .set    Reserved10_Handler, _IRQHandlerinterrupt
137    .weak   SVC_Handler
138    .globl  SVC_Handler
139    .set    SVC_Handler, _IRQHandlerinterrupt
140    .weak   DebugMon_Handler
141    .globl  DebugMon_Handler
142    .set    DebugMon_Handler, _IRQHandlerinterrupt
143    .weak   Reserved13_Handler
144    .globl  Reserved13_Handler
145    .set    Reserved13_Handler, _IRQHandlerinterrupt
146    .weak   PendSV_Handler
147    .globl  PendSV_Handler
148    .set    PendSV_Handler, _IRQHandlerinterrupt
149    .weak   SysTick_Handler
150    .globl  SysTick_Handler
151    .set    SysTick_Handler, _IRQHandlerinterrupt
152
153    .weak   DMA_IRQHandler
154    .globl  DMA_IRQHandler
155    .set    DMA_IRQHandler, _IRQHandlerinterrupt
156    .weak   GPIO_EVEN_IRQHandler
157    .globl  GPIO_EVEN_IRQHandler
158    .set    GPIO_EVEN_IRQHandler, _IRQHandlerinterrupt
159    .weak   TIMER0_IRQHandler
160    .globl  TIMER0_IRQHandler
161    .set    TIMER0_IRQHandler, _IRQHandlerinterrupt
162    .weak   USART0_RX_IRQHandler
163    .globl  USART0_RX_IRQHandler
164    .set    USART0_RX_IRQHandler, _IRQHandlerinterrupt
165    .weak   USART0_TX_IRQHandler
166    .globl  USART0_TX_IRQHandler
167    .set    USART0_TX_IRQHandler, _IRQHandlerinterrupt
168    .weak   ACMP0_IRQHandler
169    .globl  ACMP0_IRQHandler
170    .set    ACMP0_IRQHandler, _IRQHandlerinterrupt
171    .weak   ADC0_IRQHandler
172    .globl  ADC0_IRQHandler
173    .set    ADC0_IRQHandler, _IRQHandlerinterrupt
174    .weak   DAC0_IRQHandler
175    .globl  DAC0_IRQHandler
176    .set    DAC0_IRQHandler, _IRQHandlerinterrupt
177    .weak   I2C0_IRQHandler
178    .globl  I2C0_IRQHandler
179    .set    I2C0_IRQHandler, _IRQHandlerinterrupt
180    .weak   GPIO_ODD_IRQHandler
181    .globl  GPIO_ODD_IRQHandler
182    .set    GPIO_ODD_IRQHandler, _IRQHandlerinterrupt
183    .weak   TIMER1_IRQHandler
184    .globl  TIMER1_IRQHandler
185    .set    TIMER1_IRQHandler, _IRQHandlerinterrupt
186    .weak   TIMER2_IRQHandler
187    .globl  TIMER2_IRQHandler
188    .set    TIMER2_IRQHandler, _IRQHandlerinterrupt
189    .weak   USART1_RX_IRQHandler
190    .globl  USART1_RX_IRQHandler
191    .set    USART1_RX_IRQHandler, _IRQHandlerinterrupt
192    .weak   USART1_TX_IRQHandler
193    .globl  USART1_TX_IRQHandler
194    .set    USART1_TX_IRQHandler, _IRQHandlerinterrupt
195    .weak   USART2_RX_IRQHandler
196    .globl  USART2_RX_IRQHandler
197    .set    USART2_RX_IRQHandler, _IRQHandlerinterrupt
198    .weak   USART2_TX_IRQHandler
199    .globl  USART2_TX_IRQHandler
200    .set    USART2_TX_IRQHandler, _IRQHandlerinterrupt
201    .weak   UART0_RX_IRQHandler
202    .globl  UART0_RX_IRQHandler
203    .set    UART0_RX_IRQHandler, _IRQHandlerinterrupt
204    .weak   UART0_TX_IRQHandler
205    .globl  UART0_TX_IRQHandler
206    .set    UART0_TX_IRQHandler, _IRQHandlerinterrupt
207    .weak   LEUART0_IRQHandler
208    .globl  LEUART0_IRQHandler
209    .set    LEUART0_IRQHandler, _IRQHandlerinterrupt
210    .weak   LEUART1_IRQHandler
211    .globl  LEUART1_IRQHandler
212    .set    LEUART1_IRQHandler, _IRQHandlerinterrupt
213    .weak   LETIMER0_IRQHandler
214    .globl  LETIMER0_IRQHandler
215    .set    LETIMER0_IRQHandler, _IRQHandlerinterrupt
216    .weak   PCNT0_IRQHandler
217    .globl  PCNT0_IRQHandler
218    .set    PCNT0_IRQHandler, _IRQHandlerinterrupt
219    .weak   PCNT1_IRQHandler
220    .globl  PCNT1_IRQHandler
221    .set    PCNT1_IRQHandler, _IRQHandlerinterrupt
222    .weak   PCNT2_IRQHandler
223    .globl  PCNT2_IRQHandler
224    .set    PCNT2_IRQHandler, _IRQHandlerinterrupt
225    .weak   RTC_IRQHandler
226    .globl  RTC_IRQHandler
227    .set    RTC_IRQHandler, _IRQHandlerinterrupt
228    .weak   CMU_IRQHandler
229    .globl  CMU_IRQHandler
230    .set    CMU_IRQHandler, _IRQHandlerinterrupt
231    .weak   VCMP_IRQHandler
232    .globl  VCMP_IRQHandler
233    .set    VCMP_IRQHandler, _IRQHandlerinterrupt
234    .weak   LCD_IRQHandler
235    .globl  LCD_IRQHandler
236    .set    LCD_IRQHandler, _IRQHandlerinterrupt
237    .weak   MSC_IRQHandler
238    .globl  MSC_IRQHandler
239    .set    MSC_IRQHandler, _IRQHandlerinterrupt
240    .weak   AES_IRQHandler
241    .globl  AES_IRQHandler
242    .set    AES_IRQHandler, _IRQHandlerinterrupt
243
244
245    .end
246