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