1;********************************************************************************
2;* File Name          : Startup_ACM32F4.s
3;* Description        : This module performs:
4;*                      - Set the initial SP
5;*                      - Set the initial PC == _iar_program_start,
6;*                      - Set the vector table entries with the exceptions ISR
7;*                        address.
8;*                      - Branches to main in the C library (which eventually
9;*                        calls main()).
10;*                      After Reset the Cortex-M33 processor is in Thread mode,
11;*                      priority is Privileged, and the Stack is set to Main.
12;********************************************************************************
13;*
14;* <h2><center>&copy; Copyright (c) 2021 Aisinochip.
15;* All rights reserved.</center></h2>
16;*
17;*******************************************************************************
18
19
20        MODULE  ?cstartup
21
22        ;; Forward declaration of sections.
23        SECTION CSTACK:DATA:NOROOT(3)
24
25        SECTION .intvec:CODE:NOROOT(2)
26
27        EXTERN  __iar_program_start
28        PUBLIC  __vector_table
29        PUBLIC  __Vectors
30        PUBLIC  __Vectors_End
31        PUBLIC  __Vectors_Size
32
33        DATA
34__vector_table
35        DCD     sfe(CSTACK)
36        DCD     Reset_Handler              ; Reset Handler
37        DCD     NMI_Handler                ; NMI Handler
38        DCD     HardFault_Handler          ; Hard Fault Handler
39        DCD     MemManage_Handler          ; MPU Fault Handler
40        DCD     BusFault_Handler           ; Bus Fault Handler
41        DCD     UsageFault_Handler         ; Usage Fault Handler
42        DCD     0                          ; Reserved
43        DCD     0                          ; Reserved
44        DCD     0                          ; Reserved
45        DCD     0                          ; Reserved
46        DCD     SVC_Handler                ; SVCall Handler
47        DCD     DebugMon_Handler           ; Debug Monitor Handler
48        DCD     0                          ; Reserved
49        DCD     PendSV_Handler             ; PendSV Handler
50        DCD     SysTick_Handler            ; SysTick Handler
51
52         ; External Interrupts
53        DCD     WDT_IRQHandler                    ; WDT_IRQHandle
54        DCD     RTC_IRQHandler                    ; RTC_IRQHandler
55        DCD     EFC_IRQHandler                    ; EFC_IRQHandler
56        DCD     GPIOAB_IRQHandler                 ; GPIOAB_IRQHandler
57        DCD     GPIOCD_IRQHandler                 ; GPIOCD_IRQHandler
58        DCD     EXTI_IRQHandler                   ; EXTI_IRQHandler
59        DCD     SRAM_PARITY_IRQHandler            ; SRAM_PARITY_IRQHandler
60        DCD     CLKRDY_IRQHandler                 ; CLKRDY_IRQHandler
61        DCD     UART4_IRQHandler                  ; UART4_IRQHandler
62        DCD     DMA_IRQHandler                    ; DMA_IRQHandler
63        DCD     UART3_IRQHandler                  ; UART3_IRQHandler
64        DCD     RSV_IRQHandler                    ; RSV_IRQHandler
65        DCD     ADC_IRQHandler                    ; ADC_IRQHandler
66        DCD     TIM1_BRK_UP_TRG_COM_IRQHandler    ; TIM1_BRK_UP_TRG_COM_IRQHandler
67        DCD     TIM1_CC_IRQHandler                ; TIM1_CC_IRQHandler
68        DCD     TIM2_IRQHandler                   ; TIM2_IRQHandler
69        DCD     TIM3_IRQHandler                   ; TIM3_IRQHandler
70        DCD     TIM6_IRQHandler                   ; TIM6_IRQHandler
71        DCD     TIM7_IRQHandler                   ; TIM7_IRQHandler
72        DCD     TIM14_IRQHandler                  ; TIM14_IRQHandler
73        DCD     TIM15_IRQHandler                  ; TIM15_IRQHandler
74        DCD     TIM16_IRQHandler                  ; TIM16_IRQHandler
75        DCD     TIM17_IRQHandler                  ; TIM17_IRQHandler
76        DCD     I2C1_IRQHandler                   ; I2C1_IRQHandler
77        DCD     I2C2_IRQHandler                   ; I2C2_IRQHandler
78        DCD     SPI1_IRQHandler                   ; SPI1_IRQHandler
79        DCD     SPI2_IRQHandler                   ; SPI2_IRQHandler
80        DCD     UART1_IRQHandler                  ; UART1_IRQHandler
81        DCD     UART2_IRQHandler                  ; UART2_IRQHandler
82        DCD     LPUART_IRQHandler                 ; LPUART_IRQHandler
83        DCD     SPI3_IRQHandler                   ; SPI3_IRQHandler
84        DCD     AES_IRQHandler                    ; AES_IRQHandler
85        DCD     USB_IRQHandler                    ; USB_IRQHandler
86        DCD     DAC_IRQHandler                    ; DAC_IRQHandler
87        DCD     I2S_IRQHandler                    ; I2S_IRQHandler
88        DCD     GPIOEF_IRQHandler                 ; GPIOEF_IRQHandler
89        DCD     CAN1_IRQHandler                   ; CAN1_IRQHandler
90        DCD     CAN2_IRQHandler                   ; CAN2_IRQHandler
91        DCD     FPU_IRQHandler                    ; FPU_IRQHandler
92        DCD     TIM4_IRQHandler                   ; TIM4_IRQHandler
93        DCD     SPI4_IRQHandler                   ; SPI4_IRQHandler
94__Vectors_End
95
96__Vectors       EQU   __vector_table
97__Vectors_Size  EQU   __Vectors_End - __Vectors
98
99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
100;;
101;; Default interrupt handlers.
102;;
103        THUMB
104        PUBWEAK Reset_Handler
105        SECTION .text:CODE:NOROOT:REORDER(2)
106Reset_Handler
107        LDR     R0, =__iar_program_start
108        BX      R0
109
110        PUBWEAK NMI_Handler
111        SECTION .text:CODE:NOROOT:REORDER(1)
112NMI_Handler
113        B NMI_Handler
114
115        PUBWEAK HardFault_Handler
116        SECTION .text:CODE:NOROOT:REORDER(1)
117HardFault_Handler
118        B HardFault_Handler
119
120        PUBWEAK MemManage_Handler
121        SECTION .text:CODE:NOROOT:REORDER(1)
122MemManage_Handler
123        B MemManage_Handler
124
125        PUBWEAK BusFault_Handler
126        SECTION .text:CODE:NOROOT:REORDER(1)
127BusFault_Handler
128        B BusFault_Handler
129
130        PUBWEAK UsageFault_Handler
131        SECTION .text:CODE:NOROOT:REORDER(1)
132UsageFault_Handler
133        B UsageFault_Handler
134
135        PUBWEAK SVC_Handler
136        SECTION .text:CODE:NOROOT:REORDER(1)
137SVC_Handler
138        B SVC_Handler
139
140        PUBWEAK DebugMon_Handler
141        SECTION .text:CODE:NOROOT:REORDER(1)
142DebugMon_Handler
143        B DebugMon_Handler
144
145        PUBWEAK PendSV_Handler
146        SECTION .text:CODE:NOROOT:REORDER(1)
147PendSV_Handler
148        B PendSV_Handler
149
150        PUBWEAK SysTick_Handler
151        SECTION .text:CODE:NOROOT:REORDER(1)
152SysTick_Handler
153        B SysTick_Handler
154
155        PUBWEAK WDT_IRQHandler
156        SECTION .text:CODE:NOROOT:REORDER(1)
157WDT_IRQHandler
158        B WDT_IRQHandler
159
160        PUBWEAK RTC_IRQHandler
161        SECTION .text:CODE:NOROOT:REORDER(1)
162RTC_IRQHandler
163        B RTC_IRQHandler
164
165        PUBWEAK EFC_IRQHandler
166        SECTION .text:CODE:NOROOT:REORDER(1)
167EFC_IRQHandler
168        B EFC_IRQHandler
169
170        PUBWEAK GPIOAB_IRQHandler
171        SECTION .text:CODE:NOROOT:REORDER(1)
172GPIOAB_IRQHandler
173        B GPIOAB_IRQHandler
174
175        PUBWEAK GPIOCD_IRQHandler
176        SECTION .text:CODE:NOROOT:REORDER(1)
177GPIOCD_IRQHandler
178        B GPIOCD_IRQHandler
179
180        PUBWEAK EXTI_IRQHandler
181        SECTION .text:CODE:NOROOT:REORDER(1)
182EXTI_IRQHandler
183        B EXTI_IRQHandler
184
185        PUBWEAK SRAM_PARITY_IRQHandler
186        SECTION .text:CODE:NOROOT:REORDER(1)
187SRAM_PARITY_IRQHandler
188        B SRAM_PARITY_IRQHandler
189
190        PUBWEAK CLKRDY_IRQHandler
191        SECTION .text:CODE:NOROOT:REORDER(1)
192CLKRDY_IRQHandler
193        B CLKRDY_IRQHandler
194
195        PUBWEAK UART4_IRQHandler
196        SECTION .text:CODE:NOROOT:REORDER(1)
197UART4_IRQHandler
198        B UART4_IRQHandler
199
200        PUBWEAK DMA_IRQHandler
201        SECTION .text:CODE:NOROOT:REORDER(1)
202DMA_IRQHandler
203        B DMA_IRQHandler
204
205        PUBWEAK UART3_IRQHandler
206        SECTION .text:CODE:NOROOT:REORDER(1)
207UART3_IRQHandler
208        B UART3_IRQHandler
209
210        PUBWEAK RSV_IRQHandler
211        SECTION .text:CODE:NOROOT:REORDER(1)
212RSV_IRQHandler
213        B RSV_IRQHandler
214
215        PUBWEAK ADC_IRQHandler
216        SECTION .text:CODE:NOROOT:REORDER(1)
217ADC_IRQHandler
218        B ADC_IRQHandler
219
220        PUBWEAK TIM1_BRK_UP_TRG_COM_IRQHandler
221        SECTION .text:CODE:NOROOT:REORDER(1)
222TIM1_BRK_UP_TRG_COM_IRQHandler
223        B TIM1_BRK_UP_TRG_COM_IRQHandler
224
225        PUBWEAK TIM1_CC_IRQHandler
226        SECTION .text:CODE:NOROOT:REORDER(1)
227TIM1_CC_IRQHandler
228        B TIM1_CC_IRQHandler
229
230        PUBWEAK TIM2_IRQHandler
231        SECTION .text:CODE:NOROOT:REORDER(1)
232TIM2_IRQHandler
233        B TIM2_IRQHandler
234
235        PUBWEAK TIM3_IRQHandler
236        SECTION .text:CODE:NOROOT:REORDER(1)
237TIM3_IRQHandler
238        B TIM3_IRQHandler
239
240        PUBWEAK TIM6_IRQHandler
241        SECTION .text:CODE:NOROOT:REORDER(1)
242TIM6_IRQHandler
243        B TIM6_IRQHandler
244
245        PUBWEAK TIM7_IRQHandler
246        SECTION .text:CODE:NOROOT:REORDER(1)
247TIM7_IRQHandler
248        B TIM7_IRQHandler
249
250        PUBWEAK TIM14_IRQHandler
251        SECTION .text:CODE:NOROOT:REORDER(1)
252TIM14_IRQHandler
253        B TIM14_IRQHandler
254
255        PUBWEAK TIM15_IRQHandler
256        SECTION .text:CODE:NOROOT:REORDER(1)
257TIM15_IRQHandler
258        B TIM15_IRQHandler
259
260        PUBWEAK TIM16_IRQHandler
261        SECTION .text:CODE:NOROOT:REORDER(1)
262TIM16_IRQHandler
263        B TIM16_IRQHandler
264
265        PUBWEAK TIM17_IRQHandler
266        SECTION .text:CODE:NOROOT:REORDER(1)
267TIM17_IRQHandler
268        B TIM17_IRQHandler
269
270        PUBWEAK I2C1_IRQHandler
271        SECTION .text:CODE:NOROOT:REORDER(1)
272I2C1_IRQHandler
273        B I2C1_IRQHandler
274
275        PUBWEAK I2C2_IRQHandler
276        SECTION .text:CODE:NOROOT:REORDER(1)
277I2C2_IRQHandler
278        B I2C2_IRQHandler
279
280        PUBWEAK SPI1_IRQHandler
281        SECTION .text:CODE:NOROOT:REORDER(1)
282SPI1_IRQHandler
283        B SPI1_IRQHandler
284
285        PUBWEAK SPI2_IRQHandler
286        SECTION .text:CODE:NOROOT:REORDER(1)
287SPI2_IRQHandler
288        B SPI2_IRQHandler
289
290        PUBWEAK UART1_IRQHandler
291        SECTION .text:CODE:NOROOT:REORDER(1)
292UART1_IRQHandler
293        B UART1_IRQHandler
294
295        PUBWEAK UART2_IRQHandler
296        SECTION .text:CODE:NOROOT:REORDER(1)
297UART2_IRQHandler
298        B UART2_IRQHandler
299
300        PUBWEAK LPUART_IRQHandler
301        SECTION .text:CODE:NOROOT:REORDER(1)
302LPUART_IRQHandler
303        B LPUART_IRQHandler
304
305        PUBWEAK SPI3_IRQHandler
306        SECTION .text:CODE:NOROOT:REORDER(1)
307SPI3_IRQHandler
308        B SPI3_IRQHandler
309
310        PUBWEAK AES_IRQHandler
311        SECTION .text:CODE:NOROOT:REORDER(1)
312AES_IRQHandler
313        B AES_IRQHandler
314
315        PUBWEAK USB_IRQHandler
316        SECTION .text:CODE:NOROOT:REORDER(1)
317USB_IRQHandler
318        B USB_IRQHandler
319
320        PUBWEAK DAC_IRQHandler
321        SECTION .text:CODE:NOROOT:REORDER(1)
322DAC_IRQHandler
323        B DAC_IRQHandler
324
325        PUBWEAK I2S_IRQHandler
326        SECTION .text:CODE:NOROOT:REORDER(1)
327I2S_IRQHandler
328        B I2S_IRQHandler
329
330        PUBWEAK GPIOEF_IRQHandler
331        SECTION .text:CODE:NOROOT:REORDER(1)
332GPIOEF_IRQHandler
333        B GPIOEF_IRQHandler
334
335        PUBWEAK CAN1_IRQHandler
336        SECTION .text:CODE:NOROOT:REORDER(1)
337CAN1_IRQHandler
338        B CAN1_IRQHandler
339
340        PUBWEAK CAN2_IRQHandler
341        SECTION .text:CODE:NOROOT:REORDER(1)
342CAN2_IRQHandler
343        B CAN2_IRQHandler
344
345        PUBWEAK FPU_IRQHandler
346        SECTION .text:CODE:NOROOT:REORDER(1)
347FPU_IRQHandler
348        B FPU_IRQHandler
349
350        PUBWEAK TIM4_IRQHandler
351        SECTION .text:CODE:NOROOT:REORDER(1)
352TIM4_IRQHandler
353        B TIM4_IRQHandler
354
355        PUBWEAK SPI4_IRQHandler
356        SECTION .text:CODE:NOROOT:REORDER(1)
357SPI4_IRQHandler
358        B SPI4_IRQHandler
359
360
361        END
362/************************ (C) COPYRIGHT Aisinochip *****END OF FILE****/
363