summaryrefslogtreecommitdiff
path: root/bsp/efm32/libraries/Device/EnergyMicro/EFM32G/Source/G++/startup_efm32g.s
blob: e7c71d15ce7fff7f2301f19dfd55b0faa2d4bc93 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
/**************************************************************************//**
 * @file     
 * @brief    CMSIS Core Device Startup File for
 *           Energy Micro 'EFM32G' Device Series
 ******************************************************************************
 *
 * Version: Sourcery G++ 4.4-180
 * Support: https://support.codesourcery.com/GNUToolchain/
 *
 * Copyright (c) 2007, 2008, 2009, 2010 CodeSourcery, Inc.
 *
 * The authors hereby grant permission to use, copy, modify, distribute,
 * and license this software and its documentation for any purpose, provided
 * that existing copyright notices are retained in all copies and that this
 * notice is included verbatim in any distributions.  No written agreement,
 * license, or royalty fee is required for any of the authorized uses.
 * Modifications to this software may be copyrighted by their authors
 * and need not follow the licensing terms described here, provided that
 * the new terms are clearly indicated on the first page of each file where
 * they apply.
 *
 *******************************************************************************
 * Energy Micro release version
 * @version 3.0.0
 ******************************************************************************/

/* Vector Table */

    .section ".cs3.interrupt_vector"
    .globl  __cs3_interrupt_vector_em
    .type   __cs3_interrupt_vector_em, %object

__cs3_interrupt_vector_em:
    .long   __cs3_stack                 /* Top of Stack                 */
    .long   __cs3_reset                 /* Reset Handler                */
    .long   NMI_Handler                 /* NMI Handler                  */
    .long   HardFault_Handler           /* Hard Fault Handler           */
    .long   MemManage_Handler           /* MPU Fault Handler            */
    .long   BusFault_Handler            /* Bus Fault Handler            */
    .long   UsageFault_Handler          /* Usage Fault Handler          */
    .long   Reserved7_Handler           /* Reserved                     */
    .long   Reserved8_Handler           /* Reserved                     */
    .long   Reserved9_Handler           /* Reserved                     */
    .long   Reserved10_Handler          /* Reserved                     */
    .long   SVC_Handler                 /* SVCall Handler               */
    .long   DebugMon_Handler            /* Debug Monitor Handler        */
    .long   Reserved13_Handler          /* Reserved                     */
    .long   PendSV_Handler              /* PendSV Handler               */
    .long   SysTick_Handler             /* SysTick Handler              */

    /* External Interrupts */
    .long   DMA_IRQHandler
    .long   GPIO_EVEN_IRQHandler
    .long   TIMER0_IRQHandler
    .long   USART0_RX_IRQHandler
    .long   USART0_TX_IRQHandler
    .long   ACMP0_IRQHandler
    .long   ADC0_IRQHandler
    .long   DAC0_IRQHandler
    .long   I2C0_IRQHandler
    .long   GPIO_ODD_IRQHandler
    .long   TIMER1_IRQHandler
    .long   TIMER2_IRQHandler
    .long   USART1_RX_IRQHandler
    .long   USART1_TX_IRQHandler
    .long   USART2_RX_IRQHandler
    .long   USART2_TX_IRQHandler
    .long   UART0_RX_IRQHandler
    .long   UART0_TX_IRQHandler
    .long   LEUART0_IRQHandler
    .long   LEUART1_IRQHandler
    .long   LETIMER0_IRQHandler
    .long   PCNT0_IRQHandler
    .long   PCNT1_IRQHandler
    .long   PCNT2_IRQHandler
    .long   RTC_IRQHandler
    .long   CMU_IRQHandler
    .long   VCMP_IRQHandler
    .long   LCD_IRQHandler
    .long   MSC_IRQHandler
    .long   AES_IRQHandler

    .size   __cs3_interrupt_vector_em, . - __cs3_interrupt_vector_em

    .thumb


/* Reset Handler */

    .section .cs3.reset,"x",%progbits
    .thumb_func
    .globl  __cs3_reset_em
    .type   __cs3_reset_em, %function
__cs3_reset_em:
     /* jump to common start code */
    ldr     r0, =SystemInit
    blx     r0
    ldr     r0,=__cs3_start_asm
    bx      r0
    .pool
    .size   __cs3_reset_em,.-__cs3_reset_em
    .thumb

    .globl  _IRQHandlerinterrupt
    .type   _IRQHandlerinterrupt, %function
_IRQHandlerinterrupt:
    b .
    .size   _IRQHandlerinterrupt, . - _IRQHandlerinterrupt

    .weak   NMI_Handler
    .globl  NMI_Handler
    .set    NMI_Handler, _IRQHandlerinterrupt
    .weak   HardFault_Handler
    .globl  HardFault_Handler
    .set    HardFault_Handler, _IRQHandlerinterrupt
    .weak   MemManage_Handler
    .globl  MemManage_Handler
    .set    MemManage_Handler, _IRQHandlerinterrupt
    .weak   BusFault_Handler
    .globl  BusFault_Handler
    .set    BusFault_Handler, _IRQHandlerinterrupt
    .weak   UsageFault_Handler
    .globl  UsageFault_Handler
    .set    UsageFault_Handler, _IRQHandlerinterrupt
    .weak   Reserved7_Handler
    .globl  Reserved7_Handler
    .set    Reserved7_Handler, _IRQHandlerinterrupt
    .weak   Reserved8_Handler
    .globl  Reserved8_Handler
    .set    Reserved8_Handler, _IRQHandlerinterrupt
    .weak   Reserved9_Handler
    .globl  Reserved9_Handler
    .set    Reserved9_Handler, _IRQHandlerinterrupt
    .weak   Reserved10_Handler
    .globl  Reserved10_Handler
    .set    Reserved10_Handler, _IRQHandlerinterrupt
    .weak   SVC_Handler
    .globl  SVC_Handler
    .set    SVC_Handler, _IRQHandlerinterrupt
    .weak   DebugMon_Handler
    .globl  DebugMon_Handler
    .set    DebugMon_Handler, _IRQHandlerinterrupt
    .weak   Reserved13_Handler
    .globl  Reserved13_Handler
    .set    Reserved13_Handler, _IRQHandlerinterrupt
    .weak   PendSV_Handler
    .globl  PendSV_Handler
    .set    PendSV_Handler, _IRQHandlerinterrupt
    .weak   SysTick_Handler
    .globl  SysTick_Handler
    .set    SysTick_Handler, _IRQHandlerinterrupt

    .weak   DMA_IRQHandler
    .globl  DMA_IRQHandler
    .set    DMA_IRQHandler, _IRQHandlerinterrupt
    .weak   GPIO_EVEN_IRQHandler
    .globl  GPIO_EVEN_IRQHandler
    .set    GPIO_EVEN_IRQHandler, _IRQHandlerinterrupt
    .weak   TIMER0_IRQHandler
    .globl  TIMER0_IRQHandler
    .set    TIMER0_IRQHandler, _IRQHandlerinterrupt
    .weak   USART0_RX_IRQHandler
    .globl  USART0_RX_IRQHandler
    .set    USART0_RX_IRQHandler, _IRQHandlerinterrupt
    .weak   USART0_TX_IRQHandler
    .globl  USART0_TX_IRQHandler
    .set    USART0_TX_IRQHandler, _IRQHandlerinterrupt
    .weak   ACMP0_IRQHandler
    .globl  ACMP0_IRQHandler
    .set    ACMP0_IRQHandler, _IRQHandlerinterrupt
    .weak   ADC0_IRQHandler
    .globl  ADC0_IRQHandler
    .set    ADC0_IRQHandler, _IRQHandlerinterrupt
    .weak   DAC0_IRQHandler
    .globl  DAC0_IRQHandler
    .set    DAC0_IRQHandler, _IRQHandlerinterrupt
    .weak   I2C0_IRQHandler
    .globl  I2C0_IRQHandler
    .set    I2C0_IRQHandler, _IRQHandlerinterrupt
    .weak   GPIO_ODD_IRQHandler
    .globl  GPIO_ODD_IRQHandler
    .set    GPIO_ODD_IRQHandler, _IRQHandlerinterrupt
    .weak   TIMER1_IRQHandler
    .globl  TIMER1_IRQHandler
    .set    TIMER1_IRQHandler, _IRQHandlerinterrupt
    .weak   TIMER2_IRQHandler
    .globl  TIMER2_IRQHandler
    .set    TIMER2_IRQHandler, _IRQHandlerinterrupt
    .weak   USART1_RX_IRQHandler
    .globl  USART1_RX_IRQHandler
    .set    USART1_RX_IRQHandler, _IRQHandlerinterrupt
    .weak   USART1_TX_IRQHandler
    .globl  USART1_TX_IRQHandler
    .set    USART1_TX_IRQHandler, _IRQHandlerinterrupt
    .weak   USART2_RX_IRQHandler
    .globl  USART2_RX_IRQHandler
    .set    USART2_RX_IRQHandler, _IRQHandlerinterrupt
    .weak   USART2_TX_IRQHandler
    .globl  USART2_TX_IRQHandler
    .set    USART2_TX_IRQHandler, _IRQHandlerinterrupt
    .weak   UART0_RX_IRQHandler
    .globl  UART0_RX_IRQHandler
    .set    UART0_RX_IRQHandler, _IRQHandlerinterrupt
    .weak   UART0_TX_IRQHandler
    .globl  UART0_TX_IRQHandler
    .set    UART0_TX_IRQHandler, _IRQHandlerinterrupt
    .weak   LEUART0_IRQHandler
    .globl  LEUART0_IRQHandler
    .set    LEUART0_IRQHandler, _IRQHandlerinterrupt
    .weak   LEUART1_IRQHandler
    .globl  LEUART1_IRQHandler
    .set    LEUART1_IRQHandler, _IRQHandlerinterrupt
    .weak   LETIMER0_IRQHandler
    .globl  LETIMER0_IRQHandler
    .set    LETIMER0_IRQHandler, _IRQHandlerinterrupt
    .weak   PCNT0_IRQHandler
    .globl  PCNT0_IRQHandler
    .set    PCNT0_IRQHandler, _IRQHandlerinterrupt
    .weak   PCNT1_IRQHandler
    .globl  PCNT1_IRQHandler
    .set    PCNT1_IRQHandler, _IRQHandlerinterrupt
    .weak   PCNT2_IRQHandler
    .globl  PCNT2_IRQHandler
    .set    PCNT2_IRQHandler, _IRQHandlerinterrupt
    .weak   RTC_IRQHandler
    .globl  RTC_IRQHandler
    .set    RTC_IRQHandler, _IRQHandlerinterrupt
    .weak   CMU_IRQHandler
    .globl  CMU_IRQHandler
    .set    CMU_IRQHandler, _IRQHandlerinterrupt
    .weak   VCMP_IRQHandler
    .globl  VCMP_IRQHandler
    .set    VCMP_IRQHandler, _IRQHandlerinterrupt
    .weak   LCD_IRQHandler
    .globl  LCD_IRQHandler
    .set    LCD_IRQHandler, _IRQHandlerinterrupt
    .weak   MSC_IRQHandler
    .globl  MSC_IRQHandler
    .set    MSC_IRQHandler, _IRQHandlerinterrupt
    .weak   AES_IRQHandler
    .globl  AES_IRQHandler
    .set    AES_IRQHandler, _IRQHandlerinterrupt


    .end