1 ;********************************************************************************
2 ;* File Name : startup_stm32f429xx.s
3 ;* Author : MCD Application Team
4 ;* Description : STM32F429xx 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
10 ;* - Branches to main in the C library (which eventually
12 ;* After Reset the Cortex-M4 processor is in Thread mode,
13 ;* priority is Privileged, and the Stack is set to Main.
14 ;*******************************************************************************
17 ;* Copyright (c) 2017 STMicroelectronics.
18 ;* All rights reserved.
20 ;* This software is licensed under terms that can be found in the LICENSE file
21 ;* in the root directory of this software component.
22 ;* If no LICENSE file comes with this software, it is provided AS-IS.
24 ;*******************************************************************************
27 ; The modules in this file are included in the libraries, and may be replaced
28 ; by any user-defined modules that define the PUBLIC symbol _program_start or
29 ; a user defined start symbol.
30 ; To override the cstartup defined in the library, simply add your modified
31 ; version to the workbench project.
33 ; The vector table is normally located at address 0.
34 ; When debugging in RAM, it can be located in RAM, aligned to at least 2^6.
35 ; The name "__vector_table" has special meaning for C-SPY:
36 ; it is where the SP start value is found, and the NVIC vector
37 ; table register (VTOR) is initialized to this address if != 0.
44 ;; Forward declaration of sections.
45 SECTION CSTACK:DATA:NOROOT(3)
47 SECTION .intvec:CODE:NOROOT(2)
49 EXTERN __iar_program_start
56 DCD Reset_Handler ; Reset Handler
58 DCD NMI_Handler ; NMI Handler
59 DCD HardFault_Handler ; Hard Fault Handler
60 DCD MemManage_Handler ; MPU Fault Handler
61 DCD BusFault_Handler ; Bus Fault Handler
62 DCD UsageFault_Handler ; Usage Fault Handler
67 DCD SVC_Handler ; SVCall Handler
68 DCD DebugMon_Handler ; Debug Monitor Handler
70 DCD PendSV_Handler ; PendSV Handler
71 DCD SysTick_Handler ; SysTick Handler
74 DCD WWDG_IRQHandler ; Window WatchDog
75 DCD PVD_IRQHandler ; PVD through EXTI Line detection
76 DCD TAMP_STAMP_IRQHandler ; Tamper and TimeStamps through the EXTI line
77 DCD RTC_WKUP_IRQHandler ; RTC Wakeup through the EXTI line
78 DCD FLASH_IRQHandler ; FLASH
79 DCD RCC_IRQHandler ; RCC
80 DCD EXTI0_IRQHandler ; EXTI Line0
81 DCD EXTI1_IRQHandler ; EXTI Line1
82 DCD EXTI2_IRQHandler ; EXTI Line2
83 DCD EXTI3_IRQHandler ; EXTI Line3
84 DCD EXTI4_IRQHandler ; EXTI Line4
85 DCD DMA1_Stream0_IRQHandler ; DMA1 Stream 0
86 DCD DMA1_Stream1_IRQHandler ; DMA1 Stream 1
87 DCD DMA1_Stream2_IRQHandler ; DMA1 Stream 2
88 DCD DMA1_Stream3_IRQHandler ; DMA1 Stream 3
89 DCD DMA1_Stream4_IRQHandler ; DMA1 Stream 4
90 DCD DMA1_Stream5_IRQHandler ; DMA1 Stream 5
91 DCD DMA1_Stream6_IRQHandler ; DMA1 Stream 6
92 DCD ADC_IRQHandler ; ADC1, ADC2 and ADC3s
93 DCD CAN1_TX_IRQHandler ; CAN1 TX
94 DCD CAN1_RX0_IRQHandler ; CAN1 RX0
95 DCD CAN1_RX1_IRQHandler ; CAN1 RX1
96 DCD CAN1_SCE_IRQHandler ; CAN1 SCE
97 DCD EXTI9_5_IRQHandler ; External Line[9:5]s
98 DCD TIM1_BRK_TIM9_IRQHandler ; TIM1 Break and TIM9
99 DCD TIM1_UP_TIM10_IRQHandler ; TIM1 Update and TIM10
100 DCD TIM1_TRG_COM_TIM11_IRQHandler ; TIM1 Trigger and Commutation and TIM11
101 DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare
102 DCD TIM2_IRQHandler ; TIM2
103 DCD TIM3_IRQHandler ; TIM3
104 DCD TIM4_IRQHandler ; TIM4
105 DCD I2C1_EV_IRQHandler ; I2C1 Event
106 DCD I2C1_ER_IRQHandler ; I2C1 Error
107 DCD I2C2_EV_IRQHandler ; I2C2 Event
108 DCD I2C2_ER_IRQHandler ; I2C2 Error
109 DCD SPI1_IRQHandler ; SPI1
110 DCD SPI2_IRQHandler ; SPI2
111 DCD USART1_IRQHandler ; USART1
112 DCD USART2_IRQHandler ; USART2
113 DCD USART3_IRQHandler ; USART3
114 DCD EXTI15_10_IRQHandler ; External Line[15:10]s
115 DCD RTC_Alarm_IRQHandler ; RTC Alarm (A and B) through EXTI Line
116 DCD OTG_FS_WKUP_IRQHandler ; USB OTG FS Wakeup through EXTI line
117 DCD TIM8_BRK_TIM12_IRQHandler ; TIM8 Break and TIM12
118 DCD TIM8_UP_TIM13_IRQHandler ; TIM8 Update and TIM13
119 DCD TIM8_TRG_COM_TIM14_IRQHandler ; TIM8 Trigger and Commutation and TIM14
120 DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare
121 DCD DMA1_Stream7_IRQHandler ; DMA1 Stream7
122 DCD FMC_IRQHandler ; FMC
123 DCD SDIO_IRQHandler ; SDIO
124 DCD TIM5_IRQHandler ; TIM5
125 DCD SPI3_IRQHandler ; SPI3
126 DCD UART4_IRQHandler ; UART4
127 DCD UART5_IRQHandler ; UART5
128 DCD TIM6_DAC_IRQHandler ; TIM6 and DAC1&2 underrun errors
129 DCD TIM7_IRQHandler ; TIM7
130 DCD DMA2_Stream0_IRQHandler ; DMA2 Stream 0
131 DCD DMA2_Stream1_IRQHandler ; DMA2 Stream 1
132 DCD DMA2_Stream2_IRQHandler ; DMA2 Stream 2
133 DCD DMA2_Stream3_IRQHandler ; DMA2 Stream 3
134 DCD DMA2_Stream4_IRQHandler ; DMA2 Stream 4
135 DCD ETH_IRQHandler ; Ethernet
136 DCD ETH_WKUP_IRQHandler ; Ethernet Wakeup through EXTI line
137 DCD CAN2_TX_IRQHandler ; CAN2 TX
138 DCD CAN2_RX0_IRQHandler ; CAN2 RX0
139 DCD CAN2_RX1_IRQHandler ; CAN2 RX1
140 DCD CAN2_SCE_IRQHandler ; CAN2 SCE
141 DCD OTG_FS_IRQHandler ; USB OTG FS
142 DCD DMA2_Stream5_IRQHandler ; DMA2 Stream 5
143 DCD DMA2_Stream6_IRQHandler ; DMA2 Stream 6
144 DCD DMA2_Stream7_IRQHandler ; DMA2 Stream 7
145 DCD USART6_IRQHandler ; USART6
146 DCD I2C3_EV_IRQHandler ; I2C3 event
147 DCD I2C3_ER_IRQHandler ; I2C3 error
148 DCD OTG_HS_EP1_OUT_IRQHandler ; USB OTG HS End Point 1 Out
149 DCD OTG_HS_EP1_IN_IRQHandler ; USB OTG HS End Point 1 In
150 DCD OTG_HS_WKUP_IRQHandler ; USB OTG HS Wakeup through EXTI
151 DCD OTG_HS_IRQHandler ; USB OTG HS
152 DCD DCMI_IRQHandler ; DCMI
154 DCD HASH_RNG_IRQHandler ; Hash and Rng
155 DCD FPU_IRQHandler ; FPU
156 DCD UART7_IRQHandler ; UART7
157 DCD UART8_IRQHandler ; UART8
158 DCD SPI4_IRQHandler ; SPI4
159 DCD SPI5_IRQHandler ; SPI5
160 DCD SPI6_IRQHandler ; SPI6
161 DCD SAI1_IRQHandler ; SAI1
162 DCD LTDC_IRQHandler ; LTDC
163 DCD LTDC_ER_IRQHandler ; LTDC error
164 DCD DMA2D_IRQHandler ; DMA2D
166 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
168 ;; Default interrupt handlers.
171 PUBWEAK Reset_Handler
172 SECTION .text:CODE:REORDER:NOROOT(2)
177 LDR R0, =__iar_program_start
181 SECTION .text:CODE:REORDER:NOROOT(1)
185 PUBWEAK HardFault_Handler
186 SECTION .text:CODE:REORDER:NOROOT(1)
190 PUBWEAK MemManage_Handler
191 SECTION .text:CODE:REORDER:NOROOT(1)
195 PUBWEAK BusFault_Handler
196 SECTION .text:CODE:REORDER:NOROOT(1)
200 PUBWEAK UsageFault_Handler
201 SECTION .text:CODE:REORDER:NOROOT(1)
206 SECTION .text:CODE:REORDER:NOROOT(1)
210 PUBWEAK DebugMon_Handler
211 SECTION .text:CODE:REORDER:NOROOT(1)
215 PUBWEAK PendSV_Handler
216 SECTION .text:CODE:REORDER:NOROOT(1)
220 PUBWEAK SysTick_Handler
221 SECTION .text:CODE:REORDER:NOROOT(1)
225 PUBWEAK WWDG_IRQHandler
226 SECTION .text:CODE:REORDER:NOROOT(1)
230 PUBWEAK PVD_IRQHandler
231 SECTION .text:CODE:REORDER:NOROOT(1)
235 PUBWEAK TAMP_STAMP_IRQHandler
236 SECTION .text:CODE:REORDER:NOROOT(1)
237 TAMP_STAMP_IRQHandler
238 B TAMP_STAMP_IRQHandler
240 PUBWEAK RTC_WKUP_IRQHandler
241 SECTION .text:CODE:REORDER:NOROOT(1)
243 B RTC_WKUP_IRQHandler
245 PUBWEAK FLASH_IRQHandler
246 SECTION .text:CODE:REORDER:NOROOT(1)
250 PUBWEAK RCC_IRQHandler
251 SECTION .text:CODE:REORDER:NOROOT(1)
255 PUBWEAK EXTI0_IRQHandler
256 SECTION .text:CODE:REORDER:NOROOT(1)
260 PUBWEAK EXTI1_IRQHandler
261 SECTION .text:CODE:REORDER:NOROOT(1)
265 PUBWEAK EXTI2_IRQHandler
266 SECTION .text:CODE:REORDER:NOROOT(1)
270 PUBWEAK EXTI3_IRQHandler
271 SECTION .text:CODE:REORDER:NOROOT(1)
275 PUBWEAK EXTI4_IRQHandler
276 SECTION .text:CODE:REORDER:NOROOT(1)
280 PUBWEAK DMA1_Stream0_IRQHandler
281 SECTION .text:CODE:REORDER:NOROOT(1)
282 DMA1_Stream0_IRQHandler
283 B DMA1_Stream0_IRQHandler
285 PUBWEAK DMA1_Stream1_IRQHandler
286 SECTION .text:CODE:REORDER:NOROOT(1)
287 DMA1_Stream1_IRQHandler
288 B DMA1_Stream1_IRQHandler
290 PUBWEAK DMA1_Stream2_IRQHandler
291 SECTION .text:CODE:REORDER:NOROOT(1)
292 DMA1_Stream2_IRQHandler
293 B DMA1_Stream2_IRQHandler
295 PUBWEAK DMA1_Stream3_IRQHandler
296 SECTION .text:CODE:REORDER:NOROOT(1)
297 DMA1_Stream3_IRQHandler
298 B DMA1_Stream3_IRQHandler
300 PUBWEAK DMA1_Stream4_IRQHandler
301 SECTION .text:CODE:REORDER:NOROOT(1)
302 DMA1_Stream4_IRQHandler
303 B DMA1_Stream4_IRQHandler
305 PUBWEAK DMA1_Stream5_IRQHandler
306 SECTION .text:CODE:REORDER:NOROOT(1)
307 DMA1_Stream5_IRQHandler
308 B DMA1_Stream5_IRQHandler
310 PUBWEAK DMA1_Stream6_IRQHandler
311 SECTION .text:CODE:REORDER:NOROOT(1)
312 DMA1_Stream6_IRQHandler
313 B DMA1_Stream6_IRQHandler
315 PUBWEAK ADC_IRQHandler
316 SECTION .text:CODE:REORDER:NOROOT(1)
320 PUBWEAK CAN1_TX_IRQHandler
321 SECTION .text:CODE:REORDER:NOROOT(1)
325 PUBWEAK CAN1_RX0_IRQHandler
326 SECTION .text:CODE:REORDER:NOROOT(1)
328 B CAN1_RX0_IRQHandler
330 PUBWEAK CAN1_RX1_IRQHandler
331 SECTION .text:CODE:REORDER:NOROOT(1)
333 B CAN1_RX1_IRQHandler
335 PUBWEAK CAN1_SCE_IRQHandler
336 SECTION .text:CODE:REORDER:NOROOT(1)
338 B CAN1_SCE_IRQHandler
340 PUBWEAK EXTI9_5_IRQHandler
341 SECTION .text:CODE:REORDER:NOROOT(1)
345 PUBWEAK TIM1_BRK_TIM9_IRQHandler
346 SECTION .text:CODE:REORDER:NOROOT(1)
347 TIM1_BRK_TIM9_IRQHandler
348 B TIM1_BRK_TIM9_IRQHandler
350 PUBWEAK TIM1_UP_TIM10_IRQHandler
351 SECTION .text:CODE:REORDER:NOROOT(1)
352 TIM1_UP_TIM10_IRQHandler
353 B TIM1_UP_TIM10_IRQHandler
355 PUBWEAK TIM1_TRG_COM_TIM11_IRQHandler
356 SECTION .text:CODE:REORDER:NOROOT(1)
357 TIM1_TRG_COM_TIM11_IRQHandler
358 B TIM1_TRG_COM_TIM11_IRQHandler
360 PUBWEAK TIM1_CC_IRQHandler
361 SECTION .text:CODE:REORDER:NOROOT(1)
365 PUBWEAK TIM2_IRQHandler
366 SECTION .text:CODE:REORDER:NOROOT(1)
370 PUBWEAK TIM3_IRQHandler
371 SECTION .text:CODE:REORDER:NOROOT(1)
375 PUBWEAK TIM4_IRQHandler
376 SECTION .text:CODE:REORDER:NOROOT(1)
380 PUBWEAK I2C1_EV_IRQHandler
381 SECTION .text:CODE:REORDER:NOROOT(1)
385 PUBWEAK I2C1_ER_IRQHandler
386 SECTION .text:CODE:REORDER:NOROOT(1)
390 PUBWEAK I2C2_EV_IRQHandler
391 SECTION .text:CODE:REORDER:NOROOT(1)
395 PUBWEAK I2C2_ER_IRQHandler
396 SECTION .text:CODE:REORDER:NOROOT(1)
400 PUBWEAK SPI1_IRQHandler
401 SECTION .text:CODE:REORDER:NOROOT(1)
405 PUBWEAK SPI2_IRQHandler
406 SECTION .text:CODE:REORDER:NOROOT(1)
410 PUBWEAK USART1_IRQHandler
411 SECTION .text:CODE:REORDER:NOROOT(1)
415 PUBWEAK USART2_IRQHandler
416 SECTION .text:CODE:REORDER:NOROOT(1)
420 PUBWEAK USART3_IRQHandler
421 SECTION .text:CODE:REORDER:NOROOT(1)
425 PUBWEAK EXTI15_10_IRQHandler
426 SECTION .text:CODE:REORDER:NOROOT(1)
428 B EXTI15_10_IRQHandler
430 PUBWEAK RTC_Alarm_IRQHandler
431 SECTION .text:CODE:REORDER:NOROOT(1)
433 B RTC_Alarm_IRQHandler
435 PUBWEAK OTG_FS_WKUP_IRQHandler
436 SECTION .text:CODE:REORDER:NOROOT(1)
437 OTG_FS_WKUP_IRQHandler
438 B OTG_FS_WKUP_IRQHandler
440 PUBWEAK TIM8_BRK_TIM12_IRQHandler
441 SECTION .text:CODE:REORDER:NOROOT(1)
442 TIM8_BRK_TIM12_IRQHandler
443 B TIM8_BRK_TIM12_IRQHandler
445 PUBWEAK TIM8_UP_TIM13_IRQHandler
446 SECTION .text:CODE:REORDER:NOROOT(1)
447 TIM8_UP_TIM13_IRQHandler
448 B TIM8_UP_TIM13_IRQHandler
450 PUBWEAK TIM8_TRG_COM_TIM14_IRQHandler
451 SECTION .text:CODE:REORDER:NOROOT(1)
452 TIM8_TRG_COM_TIM14_IRQHandler
453 B TIM8_TRG_COM_TIM14_IRQHandler
455 PUBWEAK TIM8_CC_IRQHandler
456 SECTION .text:CODE:REORDER:NOROOT(1)
460 PUBWEAK DMA1_Stream7_IRQHandler
461 SECTION .text:CODE:REORDER:NOROOT(1)
462 DMA1_Stream7_IRQHandler
463 B DMA1_Stream7_IRQHandler
465 PUBWEAK FMC_IRQHandler
466 SECTION .text:CODE:REORDER:NOROOT(1)
470 PUBWEAK SDIO_IRQHandler
471 SECTION .text:CODE:REORDER:NOROOT(1)
475 PUBWEAK TIM5_IRQHandler
476 SECTION .text:CODE:REORDER:NOROOT(1)
480 PUBWEAK SPI3_IRQHandler
481 SECTION .text:CODE:REORDER:NOROOT(1)
485 PUBWEAK UART4_IRQHandler
486 SECTION .text:CODE:REORDER:NOROOT(1)
490 PUBWEAK UART5_IRQHandler
491 SECTION .text:CODE:REORDER:NOROOT(1)
495 PUBWEAK TIM6_DAC_IRQHandler
496 SECTION .text:CODE:REORDER:NOROOT(1)
498 B TIM6_DAC_IRQHandler
500 PUBWEAK TIM7_IRQHandler
501 SECTION .text:CODE:REORDER:NOROOT(1)
505 PUBWEAK DMA2_Stream0_IRQHandler
506 SECTION .text:CODE:REORDER:NOROOT(1)
507 DMA2_Stream0_IRQHandler
508 B DMA2_Stream0_IRQHandler
510 PUBWEAK DMA2_Stream1_IRQHandler
511 SECTION .text:CODE:REORDER:NOROOT(1)
512 DMA2_Stream1_IRQHandler
513 B DMA2_Stream1_IRQHandler
515 PUBWEAK DMA2_Stream2_IRQHandler
516 SECTION .text:CODE:REORDER:NOROOT(1)
517 DMA2_Stream2_IRQHandler
518 B DMA2_Stream2_IRQHandler
520 PUBWEAK DMA2_Stream3_IRQHandler
521 SECTION .text:CODE:REORDER:NOROOT(1)
522 DMA2_Stream3_IRQHandler
523 B DMA2_Stream3_IRQHandler
525 PUBWEAK DMA2_Stream4_IRQHandler
526 SECTION .text:CODE:REORDER:NOROOT(1)
527 DMA2_Stream4_IRQHandler
528 B DMA2_Stream4_IRQHandler
530 PUBWEAK ETH_IRQHandler
531 SECTION .text:CODE:REORDER:NOROOT(1)
535 PUBWEAK ETH_WKUP_IRQHandler
536 SECTION .text:CODE:REORDER:NOROOT(1)
538 B ETH_WKUP_IRQHandler
540 PUBWEAK CAN2_TX_IRQHandler
541 SECTION .text:CODE:REORDER:NOROOT(1)
545 PUBWEAK CAN2_RX0_IRQHandler
546 SECTION .text:CODE:REORDER:NOROOT(1)
548 B CAN2_RX0_IRQHandler
550 PUBWEAK CAN2_RX1_IRQHandler
551 SECTION .text:CODE:REORDER:NOROOT(1)
553 B CAN2_RX1_IRQHandler
555 PUBWEAK CAN2_SCE_IRQHandler
556 SECTION .text:CODE:REORDER:NOROOT(1)
558 B CAN2_SCE_IRQHandler
560 PUBWEAK OTG_FS_IRQHandler
561 SECTION .text:CODE:REORDER:NOROOT(1)
565 PUBWEAK DMA2_Stream5_IRQHandler
566 SECTION .text:CODE:REORDER:NOROOT(1)
567 DMA2_Stream5_IRQHandler
568 B DMA2_Stream5_IRQHandler
570 PUBWEAK DMA2_Stream6_IRQHandler
571 SECTION .text:CODE:REORDER:NOROOT(1)
572 DMA2_Stream6_IRQHandler
573 B DMA2_Stream6_IRQHandler
575 PUBWEAK DMA2_Stream7_IRQHandler
576 SECTION .text:CODE:REORDER:NOROOT(1)
577 DMA2_Stream7_IRQHandler
578 B DMA2_Stream7_IRQHandler
580 PUBWEAK USART6_IRQHandler
581 SECTION .text:CODE:REORDER:NOROOT(1)
585 PUBWEAK I2C3_EV_IRQHandler
586 SECTION .text:CODE:REORDER:NOROOT(1)
590 PUBWEAK I2C3_ER_IRQHandler
591 SECTION .text:CODE:REORDER:NOROOT(1)
595 PUBWEAK OTG_HS_EP1_OUT_IRQHandler
596 SECTION .text:CODE:REORDER:NOROOT(1)
597 OTG_HS_EP1_OUT_IRQHandler
598 B OTG_HS_EP1_OUT_IRQHandler
600 PUBWEAK OTG_HS_EP1_IN_IRQHandler
601 SECTION .text:CODE:REORDER:NOROOT(1)
602 OTG_HS_EP1_IN_IRQHandler
603 B OTG_HS_EP1_IN_IRQHandler
605 PUBWEAK OTG_HS_WKUP_IRQHandler
606 SECTION .text:CODE:REORDER:NOROOT(1)
607 OTG_HS_WKUP_IRQHandler
608 B OTG_HS_WKUP_IRQHandler
610 PUBWEAK OTG_HS_IRQHandler
611 SECTION .text:CODE:REORDER:NOROOT(1)
615 PUBWEAK DCMI_IRQHandler
616 SECTION .text:CODE:REORDER:NOROOT(1)
620 PUBWEAK HASH_RNG_IRQHandler
621 SECTION .text:CODE:REORDER:NOROOT(1)
623 B HASH_RNG_IRQHandler
625 PUBWEAK FPU_IRQHandler
626 SECTION .text:CODE:REORDER:NOROOT(1)
630 PUBWEAK UART7_IRQHandler
631 SECTION .text:CODE:REORDER:NOROOT(1)
635 PUBWEAK UART8_IRQHandler
636 SECTION .text:CODE:REORDER:NOROOT(1)
640 PUBWEAK SPI4_IRQHandler
641 SECTION .text:CODE:REORDER:NOROOT(1)
645 PUBWEAK SPI5_IRQHandler
646 SECTION .text:CODE:REORDER:NOROOT(1)
650 PUBWEAK SPI6_IRQHandler
651 SECTION .text:CODE:REORDER:NOROOT(1)
655 PUBWEAK SAI1_IRQHandler
656 SECTION .text:CODE:REORDER:NOROOT(1)
660 PUBWEAK LTDC_IRQHandler
661 SECTION .text:CODE:REORDER:NOROOT(1)
665 PUBWEAK LTDC_ER_IRQHandler
666 SECTION .text:CODE:REORDER:NOROOT(1)
670 PUBWEAK DMA2D_IRQHandler
671 SECTION .text:CODE:REORDER:NOROOT(1)