1;/*!
2; * @file        startup_apm32e10x_hd.s
3; *
4; * @brief       CMSIS Cortex-M3 based Core Device Startup File for Device APM32E103
5; *
6; * @version     V1.0.1
7; *
8; * @date        2022-07-29
9; *
10; * @attention
11; *
12; *  Copyright (C) 2021-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 useful 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     TMR8_BRK_IRQHandler          ; TMR8 Break
103                DCD     TMR8_UP_IRQHandler           ; TMR8 Update
104                DCD     TMR8_TRG_COM_IRQHandler      ; TMR8 Trigger and Commutation
105                DCD     TMR8_CC_IRQHandler           ; TMR8 Capture Compare
106                DCD     ADC3_IRQHandler              ; ADC3
107                DCD     EMMC_IRQHandler              ; EMMC
108                DCD     SDIO_IRQHandler              ; SDIO
109                DCD     TMR5_IRQHandler              ; TMR5
110                DCD     SPI3_IRQHandler              ; SPI3
111                DCD     UART4_IRQHandler             ; UART4
112                DCD     UART5_IRQHandler             ; UART5
113                DCD     TMR6_IRQHandler              ; TMR6
114                DCD     TMR7_IRQHandler              ; TMR7
115                DCD     DMA2_Channel1_IRQHandler     ; DMA2 Channel1
116                DCD     DMA2_Channel2_IRQHandler     ; DMA2 Channel2
117                DCD     DMA2_Channel3_IRQHandler     ; DMA2 Channel3
118                DCD     DMA2_Channel4_5_IRQHandler   ; DMA2 Channel4 & Channel5
119                DCD     0                            ; Reserved
120                DCD     USBD2_HP_CAN2_TX_IRQHandler  ; USBD2 High Priority or CAN2 TX
121                DCD     USBD2_LP_CAN2_RX0_IRQHandler ; USBD2 Low  Priority or CAN2 RX0
122                DCD     CAN2_RX1_IRQHandler          ; CAN2 RX1
123                DCD     CAN2_SCE_IRQHandler          ; CAN2 SCE
124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
125;;
126;; Default interrupt handlers.
127;;
128        THUMB
129
130        PUBWEAK Reset_Handler
131        SECTION .text:CODE:REORDER:NOROOT(2)
132Reset_Handler
133        LDR     R0, =SystemInit
134        BLX     R0
135        LDR     R0, =__iar_program_start
136        BX      R0
137
138        PUBWEAK NMI_Handler
139        SECTION .text:CODE:REORDER:NOROOT(1)
140NMI_Handler
141        B NMI_Handler
142
143        PUBWEAK HardFault_Handler
144        SECTION .text:CODE:REORDER:NOROOT(1)
145HardFault_Handler
146        B HardFault_Handler
147
148        PUBWEAK MemManage_Handler
149        SECTION .text:CODE:REORDER:NOROOT(1)
150MemManage_Handler
151        B MemManage_Handler
152
153        PUBWEAK BusFault_Handler
154        SECTION .text:CODE:REORDER:NOROOT(1)
155BusFault_Handler
156        B BusFault_Handler
157
158        PUBWEAK UsageFault_Handler
159        SECTION .text:CODE:REORDER:NOROOT(1)
160UsageFault_Handler
161        B UsageFault_Handler
162
163        PUBWEAK SVC_Handler
164        SECTION .text:CODE:REORDER:NOROOT(1)
165SVC_Handler
166        B SVC_Handler
167
168        PUBWEAK DebugMon_Handler
169        SECTION .text:CODE:REORDER:NOROOT(1)
170DebugMon_Handler
171        B DebugMon_Handler
172
173        PUBWEAK PendSV_Handler
174        SECTION .text:CODE:REORDER:NOROOT(1)
175PendSV_Handler
176        B PendSV_Handler
177
178        PUBWEAK SysTick_Handler
179        SECTION .text:CODE:REORDER:NOROOT(1)
180SysTick_Handler
181        B SysTick_Handler
182
183        PUBWEAK WWDT_IRQHandler
184        SECTION .text:CODE:REORDER:NOROOT(1)
185WWDT_IRQHandler
186        B WWDT_IRQHandler
187
188        PUBWEAK PVD_IRQHandler
189        SECTION .text:CODE:REORDER:NOROOT(1)
190PVD_IRQHandler
191        B PVD_IRQHandler
192
193        PUBWEAK TAMPER_IRQHandler
194        SECTION .text:CODE:REORDER:NOROOT(1)
195TAMPER_IRQHandler
196        B TAMPER_IRQHandler
197
198        PUBWEAK RTC_IRQHandler
199        SECTION .text:CODE:REORDER:NOROOT(1)
200RTC_IRQHandler
201        B RTC_IRQHandler
202
203        PUBWEAK FLASH_IRQHandler
204        SECTION .text:CODE:REORDER:NOROOT(1)
205FLASH_IRQHandler
206        B FLASH_IRQHandler
207
208        PUBWEAK RCM_IRQHandler
209        SECTION .text:CODE:REORDER:NOROOT(1)
210RCM_IRQHandler
211        B RCM_IRQHandler
212
213        PUBWEAK EINT0_IRQHandler
214        SECTION .text:CODE:REORDER:NOROOT(1)
215EINT0_IRQHandler
216        B EINT0_IRQHandler
217
218        PUBWEAK EINT1_IRQHandler
219        SECTION .text:CODE:REORDER:NOROOT(1)
220EINT1_IRQHandler
221        B EINT1_IRQHandler
222
223        PUBWEAK EINT2_IRQHandler
224        SECTION .text:CODE:REORDER:NOROOT(1)
225EINT2_IRQHandler
226        B EINT2_IRQHandler
227
228        PUBWEAK EINT3_IRQHandler
229        SECTION .text:CODE:REORDER:NOROOT(1)
230EINT3_IRQHandler
231        B EINT3_IRQHandler
232
233        PUBWEAK EINT4_IRQHandler
234        SECTION .text:CODE:REORDER:NOROOT(1)
235EINT4_IRQHandler
236        B EINT4_IRQHandler
237
238        PUBWEAK DMA1_Channel1_IRQHandler
239        SECTION .text:CODE:REORDER:NOROOT(1)
240DMA1_Channel1_IRQHandler
241        B DMA1_Channel1_IRQHandler
242
243        PUBWEAK DMA1_Channel2_IRQHandler
244        SECTION .text:CODE:REORDER:NOROOT(1)
245DMA1_Channel2_IRQHandler
246        B DMA1_Channel2_IRQHandler
247
248        PUBWEAK DMA1_Channel3_IRQHandler
249        SECTION .text:CODE:REORDER:NOROOT(1)
250DMA1_Channel3_IRQHandler
251        B DMA1_Channel3_IRQHandler
252
253        PUBWEAK DMA1_Channel4_IRQHandler
254        SECTION .text:CODE:REORDER:NOROOT(1)
255DMA1_Channel4_IRQHandler
256        B DMA1_Channel4_IRQHandler
257
258        PUBWEAK DMA1_Channel5_IRQHandler
259        SECTION .text:CODE:REORDER:NOROOT(1)
260DMA1_Channel5_IRQHandler
261        B DMA1_Channel5_IRQHandler
262
263        PUBWEAK DMA1_Channel6_IRQHandler
264        SECTION .text:CODE:REORDER:NOROOT(1)
265DMA1_Channel6_IRQHandler
266        B DMA1_Channel6_IRQHandler
267
268        PUBWEAK DMA1_Channel7_IRQHandler
269        SECTION .text:CODE:REORDER:NOROOT(1)
270DMA1_Channel7_IRQHandler
271        B DMA1_Channel7_IRQHandler
272
273        PUBWEAK ADC1_2_IRQHandler
274        SECTION .text:CODE:REORDER:NOROOT(1)
275ADC1_2_IRQHandler
276        B ADC1_2_IRQHandler
277
278        PUBWEAK USBD1_HP_CAN1_TX_IRQHandler
279        SECTION .text:CODE:REORDER:NOROOT(1)
280USBD1_HP_CAN1_TX_IRQHandler
281        B USBD1_HP_CAN1_TX_IRQHandler
282
283        PUBWEAK USBD1_LP_CAN1_RX0_IRQHandler
284        SECTION .text:CODE:REORDER:NOROOT(1)
285USBD1_LP_CAN1_RX0_IRQHandler
286        B USBD1_LP_CAN1_RX0_IRQHandler
287
288        PUBWEAK CAN1_RX1_IRQHandler
289        SECTION .text:CODE:REORDER:NOROOT(1)
290CAN1_RX1_IRQHandler
291        B CAN1_RX1_IRQHandler
292
293        PUBWEAK CAN1_SCE_IRQHandler
294        SECTION .text:CODE:REORDER:NOROOT(1)
295CAN1_SCE_IRQHandler
296        B CAN1_SCE_IRQHandler
297
298        PUBWEAK EINT9_5_IRQHandler
299        SECTION .text:CODE:REORDER:NOROOT(1)
300EINT9_5_IRQHandler
301        B EINT9_5_IRQHandler
302
303        PUBWEAK TMR1_BRK_IRQHandler
304        SECTION .text:CODE:REORDER:NOROOT(1)
305TMR1_BRK_IRQHandler
306        B TMR1_BRK_IRQHandler
307
308        PUBWEAK TMR1_UP_IRQHandler
309        SECTION .text:CODE:REORDER:NOROOT(1)
310TMR1_UP_IRQHandler
311        B TMR1_UP_IRQHandler
312
313        PUBWEAK TMR1_TRG_COM_IRQHandler
314        SECTION .text:CODE:REORDER:NOROOT(1)
315TMR1_TRG_COM_IRQHandler
316        B TMR1_TRG_COM_IRQHandler
317
318        PUBWEAK TMR1_CC_IRQHandler
319        SECTION .text:CODE:REORDER:NOROOT(1)
320TMR1_CC_IRQHandler
321        B TMR1_CC_IRQHandler
322
323        PUBWEAK TMR2_IRQHandler
324        SECTION .text:CODE:REORDER:NOROOT(1)
325TMR2_IRQHandler
326        B TMR2_IRQHandler
327
328        PUBWEAK TMR3_IRQHandler
329        SECTION .text:CODE:REORDER:NOROOT(1)
330TMR3_IRQHandler
331        B TMR3_IRQHandler
332
333        PUBWEAK TMR4_IRQHandler
334        SECTION .text:CODE:REORDER:NOROOT(1)
335TMR4_IRQHandler
336        B TMR4_IRQHandler
337
338        PUBWEAK I2C1_EV_IRQHandler
339        SECTION .text:CODE:REORDER:NOROOT(1)
340I2C1_EV_IRQHandler
341        B I2C1_EV_IRQHandler
342
343        PUBWEAK I2C1_ER_IRQHandler
344        SECTION .text:CODE:REORDER:NOROOT(1)
345I2C1_ER_IRQHandler
346        B I2C1_ER_IRQHandler
347
348        PUBWEAK I2C2_EV_IRQHandler
349        SECTION .text:CODE:REORDER:NOROOT(1)
350I2C2_EV_IRQHandler
351        B I2C2_EV_IRQHandler
352
353        PUBWEAK I2C2_ER_IRQHandler
354        SECTION .text:CODE:REORDER:NOROOT(1)
355I2C2_ER_IRQHandler
356        B I2C2_ER_IRQHandler
357
358        PUBWEAK SPI1_IRQHandler
359        SECTION .text:CODE:REORDER:NOROOT(1)
360SPI1_IRQHandler
361        B SPI1_IRQHandler
362
363        PUBWEAK SPI2_IRQHandler
364        SECTION .text:CODE:REORDER:NOROOT(1)
365SPI2_IRQHandler
366        B SPI2_IRQHandler
367
368        PUBWEAK USART1_IRQHandler
369        SECTION .text:CODE:REORDER:NOROOT(1)
370USART1_IRQHandler
371        B USART1_IRQHandler
372
373        PUBWEAK USART2_IRQHandler
374        SECTION .text:CODE:REORDER:NOROOT(1)
375USART2_IRQHandler
376        B USART2_IRQHandler
377
378        PUBWEAK USART3_IRQHandler
379        SECTION .text:CODE:REORDER:NOROOT(1)
380USART3_IRQHandler
381        B USART3_IRQHandler
382
383        PUBWEAK EINT15_10_IRQHandler
384        SECTION .text:CODE:REORDER:NOROOT(1)
385EINT15_10_IRQHandler
386        B EINT15_10_IRQHandler
387
388        PUBWEAK RTCAlarm_IRQHandler
389        SECTION .text:CODE:REORDER:NOROOT(1)
390RTCAlarm_IRQHandler
391        B RTCAlarm_IRQHandler
392
393        PUBWEAK USBDWakeUp_IRQHandler
394        SECTION .text:CODE:REORDER:NOROOT(1)
395USBDWakeUp_IRQHandler
396        B USBDWakeUp_IRQHandler
397
398        PUBWEAK TMR8_BRK_IRQHandler
399        SECTION .text:CODE:REORDER:NOROOT(1)
400TMR8_BRK_IRQHandler
401        B TMR8_BRK_IRQHandler
402
403        PUBWEAK TMR8_UP_IRQHandler
404        SECTION .text:CODE:REORDER:NOROOT(1)
405TMR8_UP_IRQHandler
406        B TMR8_UP_IRQHandler
407
408        PUBWEAK TMR8_TRG_COM_IRQHandler
409        SECTION .text:CODE:REORDER:NOROOT(1)
410TMR8_TRG_COM_IRQHandler
411        B TMR8_TRG_COM_IRQHandler
412
413        PUBWEAK TMR8_CC_IRQHandler
414        SECTION .text:CODE:REORDER:NOROOT(1)
415TMR8_CC_IRQHandler
416        B TMR8_CC_IRQHandler
417
418        PUBWEAK ADC3_IRQHandler
419        SECTION .text:CODE:REORDER:NOROOT(1)
420ADC3_IRQHandler
421        B ADC3_IRQHandler
422
423        PUBWEAK EMMC_IRQHandler
424        SECTION .text:CODE:REORDER:NOROOT(1)
425EMMC_IRQHandler
426        B EMMC_IRQHandler
427
428        PUBWEAK SDIO_IRQHandler
429        SECTION .text:CODE:REORDER:NOROOT(1)
430SDIO_IRQHandler
431        B SDIO_IRQHandler
432
433        PUBWEAK TMR5_IRQHandler
434        SECTION .text:CODE:REORDER:NOROOT(1)
435TMR5_IRQHandler
436        B TMR5_IRQHandler
437
438        PUBWEAK SPI3_IRQHandler
439        SECTION .text:CODE:REORDER:NOROOT(1)
440SPI3_IRQHandler
441        B SPI3_IRQHandler
442
443        PUBWEAK UART4_IRQHandler
444        SECTION .text:CODE:REORDER:NOROOT(1)
445UART4_IRQHandler
446        B UART4_IRQHandler
447
448        PUBWEAK UART5_IRQHandler
449        SECTION .text:CODE:REORDER:NOROOT(1)
450UART5_IRQHandler
451        B UART5_IRQHandler
452
453        PUBWEAK TMR6_IRQHandler
454        SECTION .text:CODE:REORDER:NOROOT(1)
455TMR6_IRQHandler
456        B TMR6_IRQHandler
457
458        PUBWEAK TMR7_IRQHandler
459        SECTION .text:CODE:REORDER:NOROOT(1)
460TMR7_IRQHandler
461        B TMR7_IRQHandler
462
463        PUBWEAK DMA2_Channel1_IRQHandler
464        SECTION .text:CODE:REORDER:NOROOT(1)
465DMA2_Channel1_IRQHandler
466        B DMA2_Channel1_IRQHandler
467
468        PUBWEAK DMA2_Channel2_IRQHandler
469        SECTION .text:CODE:REORDER:NOROOT(1)
470DMA2_Channel2_IRQHandler
471        B DMA2_Channel2_IRQHandler
472
473        PUBWEAK DMA2_Channel3_IRQHandler
474        SECTION .text:CODE:REORDER:NOROOT(1)
475DMA2_Channel3_IRQHandler
476        B DMA2_Channel3_IRQHandler
477
478        PUBWEAK DMA2_Channel4_5_IRQHandler
479        SECTION .text:CODE:REORDER:NOROOT(1)
480DMA2_Channel4_5_IRQHandler
481        B DMA2_Channel4_5_IRQHandler
482
483        PUBWEAK USBD2_HP_CAN2_TX_IRQHandler
484        SECTION .text:CODE:REORDER:NOROOT(1)
485USBD2_HP_CAN2_TX_IRQHandler
486        B USBD2_HP_CAN2_TX_IRQHandler
487
488        PUBWEAK USBD2_LP_CAN2_RX0_IRQHandler
489        SECTION .text:CODE:REORDER:NOROOT(1)
490USBD2_LP_CAN2_RX0_IRQHandler
491        B USBD2_LP_CAN2_RX0_IRQHandler
492
493        PUBWEAK CAN2_RX1_IRQHandler
494        SECTION .text:CODE:REORDER:NOROOT(1)
495CAN2_RX1_IRQHandler
496        B CAN2_RX1_IRQHandler
497
498        PUBWEAK CAN2_SCE_IRQHandler
499        SECTION .text:CODE:REORDER:NOROOT(1)
500CAN2_SCE_IRQHandler
501        B CAN2_SCE_IRQHandler
502
503        END
504
505