1;/*!
2; * @file        startup_apm32s10x_md.s
3; *
4; * @brief       CMSIS Cortex-M3 based Core Device Startup File for Device APM32S103
5; *
6; * @version     V1.0.0
7; *
8; * @date        2022-12-31
9; *
10; * @attention
11; *
12; *  Copyright (C) 2022-2023 Geehy Semiconductor
13; *
14; *  You may not use this file except in compliance with the
15; *  GEEHY COPYRIGHT NOTICE (GEEHY SOFTWARE PACKAGE LICENSE).
16; *
17; *  The program is only for reference, which is distributed in the hope
18; *  that it will be usefull and instructional for customers to develop
19; *  their software. Unless required by applicable law or agreed to in
20; *  writing, the program is distributed on an "AS IS" BASIS, WITHOUT
21; *  ANY WARRANTY OR CONDITIONS OF ANY KIND, either express or implied.
22; *  See the GEEHY SOFTWARE PACKAGE LICENSE for the governing permissions
23; *  and limitations under the License.
24; */
25
26    MODULE  ?cstartup
27
28        ;; Forward declaration of sections.
29        SECTION CSTACK:DATA:NOROOT(3)
30
31        SECTION .intvec:CODE:NOROOT(2)
32
33
34        EXTERN  __iar_program_start
35        EXTERN  SystemInit
36        PUBLIC  __vector_table
37
38        DATA
39
40__vector_table
41        DCD     sfe(CSTACK)
42                DCD     Reset_Handler                ; Reset Handler
43                DCD     NMI_Handler                  ; NMI Handler
44                DCD     HardFault_Handler            ; Hard Fault Handler
45                DCD     MemManage_Handler            ; MPU Fault Handler
46                DCD     BusFault_Handler             ; Bus Fault Handler
47                DCD     UsageFault_Handler           ; Usage Fault Handler
48                DCD     0                            ; Reserved
49                DCD     0                            ; Reserved
50                DCD     0                            ; Reserved
51                DCD     0                            ; Reserved
52                DCD     SVC_Handler                  ; SVCall Handler
53                DCD     DebugMon_Handler             ; Debug Monitor Handler
54                DCD     0                            ; Reserved
55                DCD     PendSV_Handler               ; PendSV Handler
56                DCD     SysTick_Handler              ; SysTick Handler
57
58                ; External Interrupts
59                DCD     WWDT_IRQHandler              ; Window Watchdog
60                DCD     PVD_IRQHandler               ; PVD through EINT Line detect
61                DCD     TAMPER_IRQHandler            ; Tamper
62                DCD     RTC_IRQHandler               ; RTC
63                DCD     FLASH_IRQHandler             ; Flash
64                DCD     RCM_IRQHandler               ; RCM
65                DCD     EINT0_IRQHandler             ; EINT Line 0
66                DCD     EINT1_IRQHandler             ; EINT Line 1
67                DCD     EINT2_IRQHandler             ; EINT Line 2
68                DCD     EINT3_IRQHandler             ; EINT Line 3
69                DCD     EINT4_IRQHandler             ; EINT Line 4
70                DCD     DMA1_Channel1_IRQHandler     ; DMA1 Channel 1
71                DCD     DMA1_Channel2_IRQHandler     ; DMA1 Channel 2
72                DCD     DMA1_Channel3_IRQHandler     ; DMA1 Channel 3
73                DCD     DMA1_Channel4_IRQHandler     ; DMA1 Channel 4
74                DCD     DMA1_Channel5_IRQHandler     ; DMA1 Channel 5
75                DCD     DMA1_Channel6_IRQHandler     ; DMA1 Channel 6
76                DCD     DMA1_Channel7_IRQHandler     ; DMA1 Channel 7
77                DCD     ADC1_2_IRQHandler            ; ADC1 & ADC2
78                DCD     USBD1_HP_CAN1_TX_IRQHandler  ; USBD1 High Priority or CAN1 TX
79                DCD     USBD1_LP_CAN1_RX0_IRQHandler ; USBD1 Low  Priority or CAN1 RX0
80                DCD     CAN1_RX1_IRQHandler          ; CAN1 RX1
81                DCD     CAN1_SCE_IRQHandler          ; CAN1 SCE
82                DCD     EINT9_5_IRQHandler           ; EINT Line 9..5
83                DCD     TMR1_BRK_IRQHandler          ; TMR1 Break
84                DCD     TMR1_UP_IRQHandler           ; TMR1 Update
85                DCD     TMR1_TRG_COM_IRQHandler      ; TMR1 Trigger and Commutation
86                DCD     TMR1_CC_IRQHandler           ; TMR1 Capture Compare
87                DCD     TMR2_IRQHandler              ; TMR2
88                DCD     TMR3_IRQHandler              ; TMR3
89                DCD     TMR4_IRQHandler              ; TMR4
90                DCD     I2C1_EV_IRQHandler           ; I2C1 Event
91                DCD     I2C1_ER_IRQHandler           ; I2C1 Error
92                DCD     I2C2_EV_IRQHandler           ; I2C2 Event
93                DCD     I2C2_ER_IRQHandler           ; I2C2 Error
94                DCD     SPI1_IRQHandler              ; SPI1
95                DCD     SPI2_IRQHandler              ; SPI2
96                DCD     USART1_IRQHandler            ; USART1
97                DCD     USART2_IRQHandler            ; USART2
98                DCD     USART3_IRQHandler            ; USART3
99                DCD     EINT15_10_IRQHandler         ; EINT Line 15..10
100                DCD     RTCAlarm_IRQHandler          ; RTC Alarm through EINT Line
101                DCD     USBDWakeUp_IRQHandler        ; USBD Wakeup from suspend
102                DCD     FPU_IRQHandler               ; FPU
103                DCD     QSPI_IRQHandler              ; QSPI
104                DCD     USBD2_HP_CAN2_TX_IRQHandler  ; USBD2 High Priority or CAN2 TX
105                DCD     USBD2_LP_CAN2_RX0_IRQHandler ; USBD2 Low  Priority or CAN2 RX0
106                DCD     CAN2_RX1_IRQHandler          ; CAN2 RX1
107                DCD     CAN2_SCE_IRQHandler          ; CAN2 SCE
108__Vectors_End
109
110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
111;;
112;; Default interrupt handlers.
113;;
114        THUMB
115
116        PUBWEAK Reset_Handler
117        SECTION .text:CODE:REORDER:NOROOT(2)
118Reset_Handler
119        LDR     R0, =SystemInit
120        BLX     R0
121        LDR     R0, =__iar_program_start
122        BX      R0
123
124        PUBWEAK NMI_Handler
125        SECTION .text:CODE:REORDER:NOROOT(1)
126NMI_Handler
127        B NMI_Handler
128
129        PUBWEAK HardFault_Handler
130        SECTION .text:CODE:REORDER:NOROOT(1)
131HardFault_Handler
132        B HardFault_Handler
133
134        PUBWEAK MemManage_Handler
135        SECTION .text:CODE:REORDER:NOROOT(1)
136MemManage_Handler
137        B MemManage_Handler
138
139        PUBWEAK BusFault_Handler
140        SECTION .text:CODE:REORDER:NOROOT(1)
141BusFault_Handler
142        B BusFault_Handler
143
144        PUBWEAK UsageFault_Handler
145        SECTION .text:CODE:REORDER:NOROOT(1)
146UsageFault_Handler
147        B UsageFault_Handler
148
149        PUBWEAK SVC_Handler
150        SECTION .text:CODE:REORDER:NOROOT(1)
151SVC_Handler
152        B SVC_Handler
153
154        PUBWEAK DebugMon_Handler
155        SECTION .text:CODE:REORDER:NOROOT(1)
156DebugMon_Handler
157        B DebugMon_Handler
158
159        PUBWEAK PendSV_Handler
160        SECTION .text:CODE:REORDER:NOROOT(1)
161PendSV_Handler
162        B PendSV_Handler
163
164        PUBWEAK SysTick_Handler
165        SECTION .text:CODE:REORDER:NOROOT(1)
166SysTick_Handler
167        B SysTick_Handler
168
169        PUBWEAK WWDT_IRQHandler
170        SECTION .text:CODE:REORDER:NOROOT(1)
171WWDT_IRQHandler
172        B WWDT_IRQHandler
173
174        PUBWEAK PVD_IRQHandler
175        SECTION .text:CODE:REORDER:NOROOT(1)
176PVD_IRQHandler
177        B PVD_IRQHandler
178
179        PUBWEAK TAMPER_IRQHandler
180        SECTION .text:CODE:REORDER:NOROOT(1)
181TAMPER_IRQHandler
182        B TAMPER_IRQHandler
183
184        PUBWEAK RTC_IRQHandler
185        SECTION .text:CODE:REORDER:NOROOT(1)
186RTC_IRQHandler
187        B RTC_IRQHandler
188
189        PUBWEAK FLASH_IRQHandler
190        SECTION .text:CODE:REORDER:NOROOT(1)
191FLASH_IRQHandler
192        B FLASH_IRQHandler
193
194        PUBWEAK RCM_IRQHandler
195        SECTION .text:CODE:REORDER:NOROOT(1)
196RCM_IRQHandler
197        B RCM_IRQHandler
198
199        PUBWEAK EINT0_IRQHandler
200        SECTION .text:CODE:REORDER:NOROOT(1)
201EINT0_IRQHandler
202        B EINT0_IRQHandler
203
204        PUBWEAK EINT1_IRQHandler
205        SECTION .text:CODE:REORDER:NOROOT(1)
206EINT1_IRQHandler
207        B EINT1_IRQHandler
208
209        PUBWEAK EINT2_IRQHandler
210        SECTION .text:CODE:REORDER:NOROOT(1)
211EINT2_IRQHandler
212        B EINT2_IRQHandler
213
214        PUBWEAK EINT3_IRQHandler
215        SECTION .text:CODE:REORDER:NOROOT(1)
216EINT3_IRQHandler
217        B EINT3_IRQHandler
218
219        PUBWEAK EINT4_IRQHandler
220        SECTION .text:CODE:REORDER:NOROOT(1)
221EINT4_IRQHandler
222        B EINT4_IRQHandler
223
224        PUBWEAK DMA1_Channel1_IRQHandler
225        SECTION .text:CODE:REORDER:NOROOT(1)
226DMA1_Channel1_IRQHandler
227        B DMA1_Channel1_IRQHandler
228
229        PUBWEAK DMA1_Channel2_IRQHandler
230        SECTION .text:CODE:REORDER:NOROOT(1)
231DMA1_Channel2_IRQHandler
232        B DMA1_Channel2_IRQHandler
233
234        PUBWEAK DMA1_Channel3_IRQHandler
235        SECTION .text:CODE:REORDER:NOROOT(1)
236DMA1_Channel3_IRQHandler
237        B DMA1_Channel3_IRQHandler
238
239        PUBWEAK DMA1_Channel4_IRQHandler
240        SECTION .text:CODE:REORDER:NOROOT(1)
241DMA1_Channel4_IRQHandler
242        B DMA1_Channel4_IRQHandler
243
244        PUBWEAK DMA1_Channel5_IRQHandler
245        SECTION .text:CODE:REORDER:NOROOT(1)
246DMA1_Channel5_IRQHandler
247        B DMA1_Channel5_IRQHandler
248
249        PUBWEAK DMA1_Channel6_IRQHandler
250        SECTION .text:CODE:REORDER:NOROOT(1)
251DMA1_Channel6_IRQHandler
252        B DMA1_Channel6_IRQHandler
253
254        PUBWEAK DMA1_Channel7_IRQHandler
255        SECTION .text:CODE:REORDER:NOROOT(1)
256DMA1_Channel7_IRQHandler
257        B DMA1_Channel7_IRQHandler
258
259        PUBWEAK ADC1_2_IRQHandler
260        SECTION .text:CODE:REORDER:NOROOT(1)
261ADC1_2_IRQHandler
262        B ADC1_2_IRQHandler
263
264        PUBWEAK USBD1_HP_CAN1_TX_IRQHandler
265        SECTION .text:CODE:REORDER:NOROOT(1)
266USBD1_HP_CAN1_TX_IRQHandler
267        B USBD1_HP_CAN1_TX_IRQHandler
268
269        PUBWEAK USBD1_LP_CAN1_RX0_IRQHandler
270        SECTION .text:CODE:REORDER:NOROOT(1)
271USBD1_LP_CAN1_RX0_IRQHandler
272        B USBD1_LP_CAN1_RX0_IRQHandler
273
274        PUBWEAK CAN1_RX1_IRQHandler
275        SECTION .text:CODE:REORDER:NOROOT(1)
276CAN1_RX1_IRQHandler
277        B CAN1_RX1_IRQHandler
278
279        PUBWEAK CAN1_SCE_IRQHandler
280        SECTION .text:CODE:REORDER:NOROOT(1)
281CAN1_SCE_IRQHandler
282        B CAN1_SCE_IRQHandler
283
284        PUBWEAK EINT9_5_IRQHandler
285        SECTION .text:CODE:REORDER:NOROOT(1)
286EINT9_5_IRQHandler
287        B EINT9_5_IRQHandler
288
289        PUBWEAK TMR1_BRK_IRQHandler
290        SECTION .text:CODE:REORDER:NOROOT(1)
291TMR1_BRK_IRQHandler
292        B TMR1_BRK_IRQHandler
293
294        PUBWEAK TMR1_UP_IRQHandler
295        SECTION .text:CODE:REORDER:NOROOT(1)
296TMR1_UP_IRQHandler
297        B TMR1_UP_IRQHandler
298
299        PUBWEAK TMR1_TRG_COM_IRQHandler
300        SECTION .text:CODE:REORDER:NOROOT(1)
301TMR1_TRG_COM_IRQHandler
302        B TMR1_TRG_COM_IRQHandler
303
304        PUBWEAK TMR1_CC_IRQHandler
305        SECTION .text:CODE:REORDER:NOROOT(1)
306TMR1_CC_IRQHandler
307        B TMR1_CC_IRQHandler
308
309        PUBWEAK TMR2_IRQHandler
310        SECTION .text:CODE:REORDER:NOROOT(1)
311TMR2_IRQHandler
312        B TMR2_IRQHandler
313
314        PUBWEAK TMR3_IRQHandler
315        SECTION .text:CODE:REORDER:NOROOT(1)
316TMR3_IRQHandler
317        B TMR3_IRQHandler
318
319        PUBWEAK TMR4_IRQHandler
320        SECTION .text:CODE:REORDER:NOROOT(1)
321TMR4_IRQHandler
322        B TMR4_IRQHandler
323
324        PUBWEAK I2C1_EV_IRQHandler
325        SECTION .text:CODE:REORDER:NOROOT(1)
326I2C1_EV_IRQHandler
327        B I2C1_EV_IRQHandler
328
329        PUBWEAK I2C1_ER_IRQHandler
330        SECTION .text:CODE:REORDER:NOROOT(1)
331I2C1_ER_IRQHandler
332        B I2C1_ER_IRQHandler
333
334        PUBWEAK I2C2_EV_IRQHandler
335        SECTION .text:CODE:REORDER:NOROOT(1)
336I2C2_EV_IRQHandler
337        B I2C2_EV_IRQHandler
338
339        PUBWEAK I2C2_ER_IRQHandler
340        SECTION .text:CODE:REORDER:NOROOT(1)
341I2C2_ER_IRQHandler
342        B I2C2_ER_IRQHandler
343
344        PUBWEAK SPI1_IRQHandler
345        SECTION .text:CODE:REORDER:NOROOT(1)
346SPI1_IRQHandler
347        B SPI1_IRQHandler
348
349        PUBWEAK SPI2_IRQHandler
350        SECTION .text:CODE:REORDER:NOROOT(1)
351SPI2_IRQHandler
352        B SPI2_IRQHandler
353
354        PUBWEAK USART1_IRQHandler
355        SECTION .text:CODE:REORDER:NOROOT(1)
356USART1_IRQHandler
357        B USART1_IRQHandler
358
359        PUBWEAK USART2_IRQHandler
360        SECTION .text:CODE:REORDER:NOROOT(1)
361USART2_IRQHandler
362        B USART2_IRQHandler
363
364        PUBWEAK USART3_IRQHandler
365        SECTION .text:CODE:REORDER:NOROOT(1)
366USART3_IRQHandler
367        B USART3_IRQHandler
368
369        PUBWEAK EINT15_10_IRQHandler
370        SECTION .text:CODE:REORDER:NOROOT(1)
371EINT15_10_IRQHandler
372        B EINT15_10_IRQHandler
373
374        PUBWEAK RTCAlarm_IRQHandler
375        SECTION .text:CODE:REORDER:NOROOT(1)
376RTCAlarm_IRQHandler
377        B RTCAlarm_IRQHandler
378
379        PUBWEAK USBDWakeUp_IRQHandler
380        SECTION .text:CODE:REORDER:NOROOT(1)
381USBDWakeUp_IRQHandler
382        B USBDWakeUp_IRQHandler
383
384        PUBWEAK FPU_IRQHandler
385        SECTION .text:CODE:REORDER:NOROOT(1)
386FPU_IRQHandler
387        B FPU_IRQHandler
388
389        PUBWEAK QSPI_IRQHandler
390        SECTION .text:CODE:REORDER:NOROOT(1)
391QSPI_IRQHandler
392        B QSPI_IRQHandler
393
394        PUBWEAK USBD2_HP_CAN2_TX_IRQHandler
395        SECTION .text:CODE:REORDER:NOROOT(1)
396USBD2_HP_CAN2_TX_IRQHandler
397        B USBD2_HP_CAN2_TX_IRQHandler
398
399        PUBWEAK USBD2_LP_CAN2_RX0_IRQHandler
400        SECTION .text:CODE:REORDER:NOROOT(1)
401USBD2_LP_CAN2_RX0_IRQHandler
402        B USBD2_LP_CAN2_RX0_IRQHandler
403
404        PUBWEAK CAN2_RX1_IRQHandler
405        SECTION .text:CODE:REORDER:NOROOT(1)
406CAN2_RX1_IRQHandler
407        B CAN2_RX1_IRQHandler
408
409        PUBWEAK CAN2_SCE_IRQHandler
410        SECTION .text:CODE:REORDER:NOROOT(1)
411CAN2_SCE_IRQHandler
412        B CAN2_SCE_IRQHandler
413
414        END
415
416