]> begriffs open source - cmsis-dfp-stm32f4/blob - Source/Templates/iar/startup_stm32f410tx.s
Release v2.6.3
[cmsis-dfp-stm32f4] / Source / Templates / iar / startup_stm32f410tx.s
1 ;/******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
2 ;* File Name          : startup_stm32f410tx.s
3 ;* Author             : MCD Application Team
4 ;* Description        : STM32F410Tx devices vector table for EWARM toolchain.
5 ;*                      This module performs:
6 ;*                      - Set the initial SP
7 ;*                      - Set the initial PC == _iar_program_start,
8 ;*                      - Set the vector table entries with the exceptions ISR 
9 ;*                        address.
10 ;*                      - Configure the system clock
11 ;*                      - Branches to main in the C library (which eventually
12 ;*                        calls main()).
13 ;*                      After Reset the Cortex-M4 processor is in Thread mode,
14 ;*                      priority is Privileged, and the Stack is set to Main.
15 ;********************************************************************************
16 ;* 
17 ;* Redistribution and use in source and binary forms, with or without modification,
18 ;* are permitted provided that the following conditions are met:
19 ;*   1. Redistributions of source code must retain the above copyright notice,
20 ;*      this list of conditions and the following disclaimer.
21 ;*   2. Redistributions in binary form must reproduce the above copyright notice,
22 ;*      this list of conditions and the following disclaimer in the documentation
23 ;*      and/or other materials provided with the distribution.
24 ;*   3. Neither the name of STMicroelectronics nor the names of its contributors
25 ;*      may be used to endorse or promote products derived from this software
26 ;*      without specific prior written permission.
27 ;*
28 ;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
29 ;* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
30 ;* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
31 ;* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
32 ;* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
33 ;* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
34 ;* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
35 ;* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
36 ;* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
37 ;* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38 ;* 
39 ;*******************************************************************************
40 ;
41 ;
42 ; The modules in this file are included in the libraries, and may be replaced
43 ; by any user-defined modules that define the PUBLIC symbol _program_start or
44 ; a user defined start symbol.
45 ; To override the cstartup defined in the library, simply add your modified
46 ; version to the workbench project.
47 ;
48 ; The vector table is normally located at address 0.
49 ; When debugging in RAM, it can be located in RAM, aligned to at least 2^6.
50 ; The name "__vector_table" has special meaning for C-SPY:
51 ; it is where the SP start value is found, and the NVIC vector
52 ; table register (VTOR) is initialized to this address if != 0.
53 ;
54 ; Cortex-M version
55 ;
56
57         MODULE  ?cstartup
58
59         ;; Forward declaration of sections.
60         SECTION CSTACK:DATA:NOROOT(3)
61
62         SECTION .intvec:CODE:NOROOT(2)
63
64         EXTERN  __iar_program_start
65         EXTERN  SystemInit
66         PUBLIC  __vector_table
67
68         DATA
69 __vector_table
70         DCD     sfe(CSTACK)
71         DCD     Reset_Handler             ; Reset Handler
72
73         DCD     NMI_Handler               ; NMI Handler
74         DCD     HardFault_Handler         ; Hard Fault Handler
75         DCD     MemManage_Handler         ; MPU Fault Handler
76         DCD     BusFault_Handler          ; Bus Fault Handler
77         DCD     UsageFault_Handler        ; Usage Fault Handler
78         DCD     0                         ; Reserved
79         DCD     0                         ; Reserved
80         DCD     0                         ; Reserved
81         DCD     0                         ; Reserved
82         DCD     SVC_Handler               ; SVCall Handler
83         DCD     DebugMon_Handler          ; Debug Monitor Handler
84         DCD     0                         ; Reserved
85         DCD     PendSV_Handler            ; PendSV Handler
86         DCD     SysTick_Handler           ; SysTick Handler
87
88          ; External Interrupts
89         DCD     WWDG_IRQHandler                   ; Window WatchDog
90         DCD     PVD_IRQHandler                    ; PVD through EXTI Line detection
91         DCD     TAMP_STAMP_IRQHandler             ; Tamper and TimeStamps through the EXTI line
92         DCD     RTC_WKUP_IRQHandler               ; RTC Wakeup through the EXTI line
93         DCD     FLASH_IRQHandler                  ; FLASH
94         DCD     RCC_IRQHandler                    ; RCC
95         DCD     EXTI0_IRQHandler                  ; EXTI Line0
96         DCD     EXTI1_IRQHandler                  ; EXTI Line1
97         DCD     EXTI2_IRQHandler                  ; EXTI Line2
98         DCD     EXTI3_IRQHandler                  ; EXTI Line3
99         DCD     EXTI4_IRQHandler                  ; EXTI Line4
100         DCD     DMA1_Stream0_IRQHandler           ; DMA1 Stream 0
101         DCD     DMA1_Stream1_IRQHandler           ; DMA1 Stream 1
102         DCD     DMA1_Stream2_IRQHandler           ; DMA1 Stream 2
103         DCD     DMA1_Stream3_IRQHandler           ; DMA1 Stream 3
104         DCD     DMA1_Stream4_IRQHandler           ; DMA1 Stream 4
105         DCD     DMA1_Stream5_IRQHandler           ; DMA1 Stream 5
106         DCD     DMA1_Stream6_IRQHandler           ; DMA1 Stream 6
107         DCD     ADC_IRQHandler                    ; ADC1
108         DCD     0                                 ; Reserved
109         DCD     0                                 ; Reserved
110         DCD     0                                 ; Reserved
111         DCD     0                                 ; Reserved
112         DCD     EXTI9_5_IRQHandler                ; External Line[9:5]s
113         DCD     TIM1_BRK_TIM9_IRQHandler          ; TIM1 Break and TIM9
114         DCD     TIM1_UP_IRQHandler                ; TIM1 Update
115         DCD     TIM1_TRG_COM_TIM11_IRQHandler     ; TIM1 Trigger and Commutation and TIM11
116         DCD     TIM1_CC_IRQHandler                ; TIM1 Capture Compare
117         DCD     0                                 ; Reserved
118         DCD     0                                 ; Reserved
119         DCD     0                                 ; Reserved
120         DCD     I2C1_EV_IRQHandler                ; I2C1 Event
121         DCD     I2C1_ER_IRQHandler                ; I2C1 Error
122         DCD     I2C2_EV_IRQHandler                ; I2C2 Event
123         DCD     I2C2_ER_IRQHandler                ; I2C2 Error
124         DCD     SPI1_IRQHandler                   ; SPI1
125         DCD     0                                 ; Reserved
126         DCD     USART1_IRQHandler                 ; USART1
127         DCD     USART2_IRQHandler                 ; USART2
128         DCD     0                                 ; Reserved
129         DCD     EXTI15_10_IRQHandler              ; External Line[15:10]s
130         DCD     RTC_Alarm_IRQHandler              ; RTC Alarm (A and B) through EXTI Line
131         DCD     0                                 ; Reserved
132         DCD     0                                 ; Reserved
133         DCD     0                                 ; Reserved
134         DCD     0                                 ; Reserved
135         DCD     0                                 ; Reserved
136         DCD     DMA1_Stream7_IRQHandler           ; DMA1 Stream7
137         DCD     0                                 ; Reserved
138         DCD     0                                 ; Reserved
139         DCD     TIM5_IRQHandler                   ; TIM5
140         DCD     0                                 ; Reserved
141         DCD     0                                 ; Reserved
142         DCD     0                                 ; Reserved
143                 DCD     TIM6_DAC_IRQHandler               ; TIM6 and DAC
144         DCD     0                                 ; Reserved
145         DCD     DMA2_Stream0_IRQHandler           ; DMA2 Stream 0
146         DCD     DMA2_Stream1_IRQHandler           ; DMA2 Stream 1
147         DCD     DMA2_Stream2_IRQHandler           ; DMA2 Stream 2
148         DCD     DMA2_Stream3_IRQHandler           ; DMA2 Stream 3
149         DCD     DMA2_Stream4_IRQHandler           ; DMA2 Stream 4
150         DCD     0                                 ; Reserved
151         DCD     0                                 ; Reserved
152         DCD     0                                 ; Reserved
153         DCD     0                                 ; Reserved
154         DCD     0                                 ; Reserved
155         DCD     0                                 ; Reserved
156         DCD     0                                 ; Reserved
157         DCD     DMA2_Stream5_IRQHandler           ; DMA2 Stream 5
158         DCD     DMA2_Stream6_IRQHandler           ; DMA2 Stream 6
159         DCD     DMA2_Stream7_IRQHandler           ; DMA2 Stream 7
160         DCD     0                                 ; Reserved
161         DCD     0                                 ; Reserved
162         DCD     0                                 ; Reserved
163         DCD     0                                 ; Reserved
164         DCD     0                                 ; Reserved
165         DCD     0                                 ; Reserved
166         DCD     0                                 ; Reserved
167         DCD     0                                 ; Reserved
168         DCD     0                                 ; Reserved
169         DCD     RNG_IRQHandler                    ; RNG
170         DCD     FPU_IRQHandler                    ; FPU
171         DCD     0                                 ; Reserved
172         DCD     0                                 ; Reserved
173         DCD     0                                 ; Reserved
174         DCD     0                                 ; Reserved
175         DCD     0                                 ; Reserved
176         DCD     0                                 ; Reserved
177         DCD     0                                 ; Reserved
178         DCD     0                                 ; Reserved
179         DCD     0                                 ; Reserved
180         DCD     0                                 ; Reserved
181         DCD     0                                 ; Reserved
182         DCD     0                                 ; Reserved
183         DCD     0                                 ; Reserved
184         DCD     FMPI2C1_EV_IRQHandler             ; FMPI2C1 Event
185         DCD     FMPI2C1_ER_IRQHandler             ; FMPI2C1 Error
186         DCD     LPTIM1_IRQHandler                 ; LP TIM1
187
188 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
189 ;;
190 ;; Default interrupt handlers.
191 ;;
192         THUMB
193         PUBWEAK Reset_Handler
194         SECTION .text:CODE:REORDER:NOROOT(2)
195 Reset_Handler
196
197         LDR     R0, =SystemInit
198         BLX     R0
199         LDR     R0, =__iar_program_start
200         BX      R0
201
202         PUBWEAK NMI_Handler
203         SECTION .text:CODE:REORDER:NOROOT(1)
204 NMI_Handler
205         B NMI_Handler
206
207         PUBWEAK HardFault_Handler
208         SECTION .text:CODE:REORDER:NOROOT(1)
209 HardFault_Handler
210         B HardFault_Handler
211
212         PUBWEAK MemManage_Handler
213         SECTION .text:CODE:REORDER:NOROOT(1)
214 MemManage_Handler
215         B MemManage_Handler
216
217         PUBWEAK BusFault_Handler
218         SECTION .text:CODE:REORDER:NOROOT(1)
219 BusFault_Handler
220         B BusFault_Handler
221
222         PUBWEAK UsageFault_Handler
223         SECTION .text:CODE:REORDER:NOROOT(1)
224 UsageFault_Handler
225         B UsageFault_Handler
226
227         PUBWEAK SVC_Handler
228         SECTION .text:CODE:REORDER:NOROOT(1)
229 SVC_Handler
230         B SVC_Handler
231
232         PUBWEAK DebugMon_Handler
233         SECTION .text:CODE:REORDER:NOROOT(1)
234 DebugMon_Handler
235         B DebugMon_Handler
236
237         PUBWEAK PendSV_Handler
238         SECTION .text:CODE:REORDER:NOROOT(1)
239 PendSV_Handler
240         B PendSV_Handler
241
242         PUBWEAK SysTick_Handler
243         SECTION .text:CODE:REORDER:NOROOT(1)
244 SysTick_Handler
245         B SysTick_Handler
246
247         PUBWEAK WWDG_IRQHandler
248         SECTION .text:CODE:REORDER:NOROOT(1)
249 WWDG_IRQHandler  
250         B WWDG_IRQHandler
251
252         PUBWEAK PVD_IRQHandler
253         SECTION .text:CODE:REORDER:NOROOT(1)
254 PVD_IRQHandler  
255         B PVD_IRQHandler
256
257         PUBWEAK TAMP_STAMP_IRQHandler
258         SECTION .text:CODE:REORDER:NOROOT(1)
259 TAMP_STAMP_IRQHandler  
260         B TAMP_STAMP_IRQHandler
261
262         PUBWEAK RTC_WKUP_IRQHandler
263         SECTION .text:CODE:REORDER:NOROOT(1)
264 RTC_WKUP_IRQHandler  
265         B RTC_WKUP_IRQHandler
266
267         PUBWEAK FLASH_IRQHandler
268         SECTION .text:CODE:REORDER:NOROOT(1)
269 FLASH_IRQHandler  
270         B FLASH_IRQHandler
271
272         PUBWEAK RCC_IRQHandler
273         SECTION .text:CODE:REORDER:NOROOT(1)
274 RCC_IRQHandler  
275         B RCC_IRQHandler
276
277         PUBWEAK EXTI0_IRQHandler
278         SECTION .text:CODE:REORDER:NOROOT(1)
279 EXTI0_IRQHandler  
280         B EXTI0_IRQHandler
281
282         PUBWEAK EXTI1_IRQHandler
283         SECTION .text:CODE:REORDER:NOROOT(1)
284 EXTI1_IRQHandler  
285         B EXTI1_IRQHandler
286
287         PUBWEAK EXTI2_IRQHandler
288         SECTION .text:CODE:REORDER:NOROOT(1)
289 EXTI2_IRQHandler  
290         B EXTI2_IRQHandler
291
292         PUBWEAK EXTI3_IRQHandler
293         SECTION .text:CODE:REORDER:NOROOT(1)
294 EXTI3_IRQHandler
295         B EXTI3_IRQHandler
296
297         PUBWEAK EXTI4_IRQHandler
298         SECTION .text:CODE:REORDER:NOROOT(1)
299 EXTI4_IRQHandler  
300         B EXTI4_IRQHandler
301
302         PUBWEAK DMA1_Stream0_IRQHandler
303         SECTION .text:CODE:REORDER:NOROOT(1)
304 DMA1_Stream0_IRQHandler  
305         B DMA1_Stream0_IRQHandler
306
307         PUBWEAK DMA1_Stream1_IRQHandler
308         SECTION .text:CODE:REORDER:NOROOT(1)
309 DMA1_Stream1_IRQHandler  
310         B DMA1_Stream1_IRQHandler
311
312         PUBWEAK DMA1_Stream2_IRQHandler
313         SECTION .text:CODE:REORDER:NOROOT(1)
314 DMA1_Stream2_IRQHandler  
315         B DMA1_Stream2_IRQHandler
316
317         PUBWEAK DMA1_Stream3_IRQHandler
318         SECTION .text:CODE:REORDER:NOROOT(1)
319 DMA1_Stream3_IRQHandler  
320         B DMA1_Stream3_IRQHandler
321
322         PUBWEAK DMA1_Stream4_IRQHandler
323         SECTION .text:CODE:REORDER:NOROOT(1)
324 DMA1_Stream4_IRQHandler  
325         B DMA1_Stream4_IRQHandler
326
327         PUBWEAK DMA1_Stream5_IRQHandler
328         SECTION .text:CODE:REORDER:NOROOT(1)
329 DMA1_Stream5_IRQHandler  
330         B DMA1_Stream5_IRQHandler
331
332         PUBWEAK DMA1_Stream6_IRQHandler
333         SECTION .text:CODE:REORDER:NOROOT(1)
334 DMA1_Stream6_IRQHandler  
335         B DMA1_Stream6_IRQHandler
336
337         PUBWEAK ADC_IRQHandler
338         SECTION .text:CODE:REORDER:NOROOT(1)
339 ADC_IRQHandler  
340         B ADC_IRQHandler
341
342         PUBWEAK EXTI9_5_IRQHandler
343         SECTION .text:CODE:REORDER:NOROOT(1)
344 EXTI9_5_IRQHandler  
345         B EXTI9_5_IRQHandler
346
347         PUBWEAK TIM1_BRK_TIM9_IRQHandler
348         SECTION .text:CODE:REORDER:NOROOT(1)
349 TIM1_BRK_TIM9_IRQHandler  
350         B TIM1_BRK_TIM9_IRQHandler
351
352         PUBWEAK TIM1_UP_IRQHandler
353         SECTION .text:CODE:REORDER:NOROOT(1)
354 TIM1_UP_IRQHandler  
355         B TIM1_UP_IRQHandler
356
357         PUBWEAK TIM1_TRG_COM_TIM11_IRQHandler
358         SECTION .text:CODE:REORDER:NOROOT(1)
359 TIM1_TRG_COM_TIM11_IRQHandler  
360         B TIM1_TRG_COM_TIM11_IRQHandler
361         
362         PUBWEAK TIM1_CC_IRQHandler
363         SECTION .text:CODE:REORDER:NOROOT(1)
364 TIM1_CC_IRQHandler  
365         B TIM1_CC_IRQHandler
366
367         PUBWEAK I2C1_EV_IRQHandler
368         SECTION .text:CODE:REORDER:NOROOT(1)
369 I2C1_EV_IRQHandler  
370         B I2C1_EV_IRQHandler
371
372         PUBWEAK I2C1_ER_IRQHandler
373         SECTION .text:CODE:REORDER:NOROOT(1)
374 I2C1_ER_IRQHandler  
375         B I2C1_ER_IRQHandler
376
377         PUBWEAK I2C2_EV_IRQHandler
378         SECTION .text:CODE:REORDER:NOROOT(1)
379 I2C2_EV_IRQHandler  
380         B I2C2_EV_IRQHandler
381
382         PUBWEAK I2C2_ER_IRQHandler
383         SECTION .text:CODE:REORDER:NOROOT(1)
384 I2C2_ER_IRQHandler  
385         B I2C2_ER_IRQHandler
386
387         PUBWEAK SPI1_IRQHandler
388         SECTION .text:CODE:REORDER:NOROOT(1)
389 SPI1_IRQHandler  
390         B SPI1_IRQHandler
391
392         PUBWEAK USART1_IRQHandler
393         SECTION .text:CODE:REORDER:NOROOT(1)
394 USART1_IRQHandler  
395         B USART1_IRQHandler
396
397         PUBWEAK USART2_IRQHandler
398         SECTION .text:CODE:REORDER:NOROOT(1)
399 USART2_IRQHandler  
400         B USART2_IRQHandler
401
402         PUBWEAK EXTI15_10_IRQHandler
403         SECTION .text:CODE:REORDER:NOROOT(1)
404 EXTI15_10_IRQHandler  
405         B EXTI15_10_IRQHandler
406
407         PUBWEAK RTC_Alarm_IRQHandler
408         SECTION .text:CODE:REORDER:NOROOT(1)
409 RTC_Alarm_IRQHandler  
410         B RTC_Alarm_IRQHandler
411
412         PUBWEAK DMA1_Stream7_IRQHandler
413         SECTION .text:CODE:REORDER:NOROOT(1)
414 DMA1_Stream7_IRQHandler  
415         B DMA1_Stream7_IRQHandler
416
417         PUBWEAK TIM5_IRQHandler
418         SECTION .text:CODE:REORDER:NOROOT(1)
419 TIM5_IRQHandler  
420         B TIM5_IRQHandler
421
422         PUBWEAK TIM6_DAC_IRQHandler
423         SECTION .text:CODE:REORDER:NOROOT(1)
424 TIM6_DAC_IRQHandler  
425         B TIM6_DAC_IRQHandler
426
427         PUBWEAK DMA2_Stream0_IRQHandler
428         SECTION .text:CODE:REORDER:NOROOT(1)
429 DMA2_Stream0_IRQHandler  
430         B DMA2_Stream0_IRQHandler
431
432         PUBWEAK DMA2_Stream1_IRQHandler
433         SECTION .text:CODE:REORDER:NOROOT(1)
434 DMA2_Stream1_IRQHandler  
435         B DMA2_Stream1_IRQHandler
436
437         PUBWEAK DMA2_Stream2_IRQHandler
438         SECTION .text:CODE:REORDER:NOROOT(1)
439 DMA2_Stream2_IRQHandler  
440         B DMA2_Stream2_IRQHandler
441
442         PUBWEAK DMA2_Stream3_IRQHandler
443         SECTION .text:CODE:REORDER:NOROOT(1)
444 DMA2_Stream3_IRQHandler  
445         B DMA2_Stream3_IRQHandler
446
447         PUBWEAK DMA2_Stream4_IRQHandler
448         SECTION .text:CODE:REORDER:NOROOT(1)
449 DMA2_Stream4_IRQHandler  
450         B DMA2_Stream4_IRQHandler
451
452         PUBWEAK DMA2_Stream5_IRQHandler
453         SECTION .text:CODE:REORDER:NOROOT(1)
454 DMA2_Stream5_IRQHandler  
455         B DMA2_Stream5_IRQHandler
456
457         PUBWEAK DMA2_Stream6_IRQHandler
458         SECTION .text:CODE:REORDER:NOROOT(1)
459 DMA2_Stream6_IRQHandler  
460         B DMA2_Stream6_IRQHandler
461
462         PUBWEAK DMA2_Stream7_IRQHandler
463         SECTION .text:CODE:REORDER:NOROOT(1)
464 DMA2_Stream7_IRQHandler  
465         B DMA2_Stream7_IRQHandler
466
467         PUBWEAK RNG_IRQHandler
468         SECTION .text:CODE:REORDER:NOROOT(1)
469 RNG_IRQHandler
470         B RNG_IRQHandler
471
472         PUBWEAK FPU_IRQHandler
473         SECTION .text:CODE:REORDER:NOROOT(1)
474 FPU_IRQHandler  
475         B FPU_IRQHandler
476
477         PUBWEAK FMPI2C1_EV_IRQHandler
478         SECTION .text:CODE:REORDER:NOROOT(1)
479 FMPI2C1_EV_IRQHandler  
480         B FMPI2C1_EV_IRQHandler
481
482         PUBWEAK FMPI2C1_ER_IRQHandler
483         SECTION .text:CODE:REORDER:NOROOT(1)
484 FMPI2C1_ER_IRQHandler
485         B FMPI2C1_ER_IRQHandler
486
487         PUBWEAK LPTIM1_IRQHandler
488         SECTION .text:CODE:REORDER:NOROOT(1)
489 LPTIM1_IRQHandler
490         B LPTIM1_IRQHandler
491
492         END
493 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/