1 ;********************************************************************************
2 ;* File Name : startup_stm32f437xx.s
3 ;* Author : MCD Application Team
4 ;* Description : STM32F437xx 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 ;* <h2><center>© Copyright (c) 2017 STMicroelectronics.
18 ;* All rights reserved.</center></h2>
20 ;* This software component is licensed by ST under BSD 3-Clause license,
21 ;* the "License"; You may not use this file except in compliance with the
22 ;* License. You may obtain a copy of the License at:
23 ;* opensource.org/licenses/BSD-3-Clause
25 ;*******************************************************************************
28 ; The modules in this file are included in the libraries, and may be replaced
29 ; by any user-defined modules that define the PUBLIC symbol _program_start or
30 ; a user defined start symbol.
31 ; To override the cstartup defined in the library, simply add your modified
32 ; version to the workbench project.
34 ; The vector table is normally located at address 0.
35 ; When debugging in RAM, it can be located in RAM, aligned to at least 2^6.
36 ; The name "__vector_table" has special meaning for C-SPY:
37 ; it is where the SP start value is found, and the NVIC vector
38 ; table register (VTOR) is initialized to this address if != 0.
45 ;; Forward declaration of sections.
46 SECTION CSTACK:DATA:NOROOT(3)
48 SECTION .intvec:CODE:NOROOT(2)
50 EXTERN __iar_program_start
57 DCD Reset_Handler ; Reset Handler
59 DCD NMI_Handler ; NMI Handler
60 DCD HardFault_Handler ; Hard Fault Handler
61 DCD MemManage_Handler ; MPU Fault Handler
62 DCD BusFault_Handler ; Bus Fault Handler
63 DCD UsageFault_Handler ; Usage Fault Handler
68 DCD SVC_Handler ; SVCall Handler
69 DCD DebugMon_Handler ; Debug Monitor Handler
71 DCD PendSV_Handler ; PendSV Handler
72 DCD SysTick_Handler ; SysTick Handler
75 DCD WWDG_IRQHandler ; Window WatchDog
76 DCD PVD_IRQHandler ; PVD through EXTI Line detection
77 DCD TAMP_STAMP_IRQHandler ; Tamper and TimeStamps through the EXTI line
78 DCD RTC_WKUP_IRQHandler ; RTC Wakeup through the EXTI line
79 DCD FLASH_IRQHandler ; FLASH
80 DCD RCC_IRQHandler ; RCC
81 DCD EXTI0_IRQHandler ; EXTI Line0
82 DCD EXTI1_IRQHandler ; EXTI Line1
83 DCD EXTI2_IRQHandler ; EXTI Line2
84 DCD EXTI3_IRQHandler ; EXTI Line3
85 DCD EXTI4_IRQHandler ; EXTI Line4
86 DCD DMA1_Stream0_IRQHandler ; DMA1 Stream 0
87 DCD DMA1_Stream1_IRQHandler ; DMA1 Stream 1
88 DCD DMA1_Stream2_IRQHandler ; DMA1 Stream 2
89 DCD DMA1_Stream3_IRQHandler ; DMA1 Stream 3
90 DCD DMA1_Stream4_IRQHandler ; DMA1 Stream 4
91 DCD DMA1_Stream5_IRQHandler ; DMA1 Stream 5
92 DCD DMA1_Stream6_IRQHandler ; DMA1 Stream 6
93 DCD ADC_IRQHandler ; ADC1, ADC2 and ADC3s
94 DCD CAN1_TX_IRQHandler ; CAN1 TX
95 DCD CAN1_RX0_IRQHandler ; CAN1 RX0
96 DCD CAN1_RX1_IRQHandler ; CAN1 RX1
97 DCD CAN1_SCE_IRQHandler ; CAN1 SCE
98 DCD EXTI9_5_IRQHandler ; External Line[9:5]s
99 DCD TIM1_BRK_TIM9_IRQHandler ; TIM1 Break and TIM9
100 DCD TIM1_UP_TIM10_IRQHandler ; TIM1 Update and TIM10
101 DCD TIM1_TRG_COM_TIM11_IRQHandler ; TIM1 Trigger and Commutation and TIM11
102 DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare
103 DCD TIM2_IRQHandler ; TIM2
104 DCD TIM3_IRQHandler ; TIM3
105 DCD TIM4_IRQHandler ; TIM4
106 DCD I2C1_EV_IRQHandler ; I2C1 Event
107 DCD I2C1_ER_IRQHandler ; I2C1 Error
108 DCD I2C2_EV_IRQHandler ; I2C2 Event
109 DCD I2C2_ER_IRQHandler ; I2C2 Error
110 DCD SPI1_IRQHandler ; SPI1
111 DCD SPI2_IRQHandler ; SPI2
112 DCD USART1_IRQHandler ; USART1
113 DCD USART2_IRQHandler ; USART2
114 DCD USART3_IRQHandler ; USART3
115 DCD EXTI15_10_IRQHandler ; External Line[15:10]s
116 DCD RTC_Alarm_IRQHandler ; RTC Alarm (A and B) through EXTI Line
117 DCD OTG_FS_WKUP_IRQHandler ; USB OTG FS Wakeup through EXTI line
118 DCD TIM8_BRK_TIM12_IRQHandler ; TIM8 Break and TIM12
119 DCD TIM8_UP_TIM13_IRQHandler ; TIM8 Update and TIM13
120 DCD TIM8_TRG_COM_TIM14_IRQHandler ; TIM8 Trigger and Commutation and TIM14
121 DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare
122 DCD DMA1_Stream7_IRQHandler ; DMA1 Stream7
123 DCD FMC_IRQHandler ; FMC
124 DCD SDIO_IRQHandler ; SDIO
125 DCD TIM5_IRQHandler ; TIM5
126 DCD SPI3_IRQHandler ; SPI3
127 DCD UART4_IRQHandler ; UART4
128 DCD UART5_IRQHandler ; UART5
129 DCD TIM6_DAC_IRQHandler ; TIM6 and DAC1&2 underrun errors
130 DCD TIM7_IRQHandler ; TIM7
131 DCD DMA2_Stream0_IRQHandler ; DMA2 Stream 0
132 DCD DMA2_Stream1_IRQHandler ; DMA2 Stream 1
133 DCD DMA2_Stream2_IRQHandler ; DMA2 Stream 2
134 DCD DMA2_Stream3_IRQHandler ; DMA2 Stream 3
135 DCD DMA2_Stream4_IRQHandler ; DMA2 Stream 4
136 DCD ETH_IRQHandler ; Ethernet
137 DCD ETH_WKUP_IRQHandler ; Ethernet Wakeup through EXTI line
138 DCD CAN2_TX_IRQHandler ; CAN2 TX
139 DCD CAN2_RX0_IRQHandler ; CAN2 RX0
140 DCD CAN2_RX1_IRQHandler ; CAN2 RX1
141 DCD CAN2_SCE_IRQHandler ; CAN2 SCE
142 DCD OTG_FS_IRQHandler ; USB OTG FS
143 DCD DMA2_Stream5_IRQHandler ; DMA2 Stream 5
144 DCD DMA2_Stream6_IRQHandler ; DMA2 Stream 6
145 DCD DMA2_Stream7_IRQHandler ; DMA2 Stream 7
146 DCD USART6_IRQHandler ; USART6
147 DCD I2C3_EV_IRQHandler ; I2C3 event
148 DCD I2C3_ER_IRQHandler ; I2C3 error
149 DCD OTG_HS_EP1_OUT_IRQHandler ; USB OTG HS End Point 1 Out
150 DCD OTG_HS_EP1_IN_IRQHandler ; USB OTG HS End Point 1 In
151 DCD OTG_HS_WKUP_IRQHandler ; USB OTG HS Wakeup through EXTI
152 DCD OTG_HS_IRQHandler ; USB OTG HS
153 DCD DCMI_IRQHandler ; DCMI
154 DCD CRYP_IRQHandler ; CRYP crypto
155 DCD HASH_RNG_IRQHandler ; Hash and Rng
156 DCD FPU_IRQHandler ; FPU
157 DCD UART7_IRQHandler ; UART7
158 DCD UART8_IRQHandler ; UART8
159 DCD SPI4_IRQHandler ; SPI4
160 DCD SPI5_IRQHandler ; SPI5
161 DCD SPI6_IRQHandler ; SPI6
162 DCD SAI1_IRQHandler ; SAI1
165 DCD DMA2D_IRQHandler ; DMA2D
167 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
169 ;; Default interrupt handlers.
172 PUBWEAK Reset_Handler
173 SECTION .text:CODE:REORDER:NOROOT(2)
178 LDR R0, =__iar_program_start
182 SECTION .text:CODE:REORDER:NOROOT(1)
186 PUBWEAK HardFault_Handler
187 SECTION .text:CODE:REORDER:NOROOT(1)
191 PUBWEAK MemManage_Handler
192 SECTION .text:CODE:REORDER:NOROOT(1)
196 PUBWEAK BusFault_Handler
197 SECTION .text:CODE:REORDER:NOROOT(1)
201 PUBWEAK UsageFault_Handler
202 SECTION .text:CODE:REORDER:NOROOT(1)
207 SECTION .text:CODE:REORDER:NOROOT(1)
211 PUBWEAK DebugMon_Handler
212 SECTION .text:CODE:REORDER:NOROOT(1)
216 PUBWEAK PendSV_Handler
217 SECTION .text:CODE:REORDER:NOROOT(1)
221 PUBWEAK SysTick_Handler
222 SECTION .text:CODE:REORDER:NOROOT(1)
226 PUBWEAK WWDG_IRQHandler
227 SECTION .text:CODE:REORDER:NOROOT(1)
231 PUBWEAK PVD_IRQHandler
232 SECTION .text:CODE:REORDER:NOROOT(1)
236 PUBWEAK TAMP_STAMP_IRQHandler
237 SECTION .text:CODE:REORDER:NOROOT(1)
238 TAMP_STAMP_IRQHandler
239 B TAMP_STAMP_IRQHandler
241 PUBWEAK RTC_WKUP_IRQHandler
242 SECTION .text:CODE:REORDER:NOROOT(1)
244 B RTC_WKUP_IRQHandler
246 PUBWEAK FLASH_IRQHandler
247 SECTION .text:CODE:REORDER:NOROOT(1)
251 PUBWEAK RCC_IRQHandler
252 SECTION .text:CODE:REORDER:NOROOT(1)
256 PUBWEAK EXTI0_IRQHandler
257 SECTION .text:CODE:REORDER:NOROOT(1)
261 PUBWEAK EXTI1_IRQHandler
262 SECTION .text:CODE:REORDER:NOROOT(1)
266 PUBWEAK EXTI2_IRQHandler
267 SECTION .text:CODE:REORDER:NOROOT(1)
271 PUBWEAK EXTI3_IRQHandler
272 SECTION .text:CODE:REORDER:NOROOT(1)
276 PUBWEAK EXTI4_IRQHandler
277 SECTION .text:CODE:REORDER:NOROOT(1)
281 PUBWEAK DMA1_Stream0_IRQHandler
282 SECTION .text:CODE:REORDER:NOROOT(1)
283 DMA1_Stream0_IRQHandler
284 B DMA1_Stream0_IRQHandler
286 PUBWEAK DMA1_Stream1_IRQHandler
287 SECTION .text:CODE:REORDER:NOROOT(1)
288 DMA1_Stream1_IRQHandler
289 B DMA1_Stream1_IRQHandler
291 PUBWEAK DMA1_Stream2_IRQHandler
292 SECTION .text:CODE:REORDER:NOROOT(1)
293 DMA1_Stream2_IRQHandler
294 B DMA1_Stream2_IRQHandler
296 PUBWEAK DMA1_Stream3_IRQHandler
297 SECTION .text:CODE:REORDER:NOROOT(1)
298 DMA1_Stream3_IRQHandler
299 B DMA1_Stream3_IRQHandler
301 PUBWEAK DMA1_Stream4_IRQHandler
302 SECTION .text:CODE:REORDER:NOROOT(1)
303 DMA1_Stream4_IRQHandler
304 B DMA1_Stream4_IRQHandler
306 PUBWEAK DMA1_Stream5_IRQHandler
307 SECTION .text:CODE:REORDER:NOROOT(1)
308 DMA1_Stream5_IRQHandler
309 B DMA1_Stream5_IRQHandler
311 PUBWEAK DMA1_Stream6_IRQHandler
312 SECTION .text:CODE:REORDER:NOROOT(1)
313 DMA1_Stream6_IRQHandler
314 B DMA1_Stream6_IRQHandler
316 PUBWEAK ADC_IRQHandler
317 SECTION .text:CODE:REORDER:NOROOT(1)
321 PUBWEAK CAN1_TX_IRQHandler
322 SECTION .text:CODE:REORDER:NOROOT(1)
326 PUBWEAK CAN1_RX0_IRQHandler
327 SECTION .text:CODE:REORDER:NOROOT(1)
329 B CAN1_RX0_IRQHandler
331 PUBWEAK CAN1_RX1_IRQHandler
332 SECTION .text:CODE:REORDER:NOROOT(1)
334 B CAN1_RX1_IRQHandler
336 PUBWEAK CAN1_SCE_IRQHandler
337 SECTION .text:CODE:REORDER:NOROOT(1)
339 B CAN1_SCE_IRQHandler
341 PUBWEAK EXTI9_5_IRQHandler
342 SECTION .text:CODE:REORDER:NOROOT(1)
346 PUBWEAK TIM1_BRK_TIM9_IRQHandler
347 SECTION .text:CODE:REORDER:NOROOT(1)
348 TIM1_BRK_TIM9_IRQHandler
349 B TIM1_BRK_TIM9_IRQHandler
351 PUBWEAK TIM1_UP_TIM10_IRQHandler
352 SECTION .text:CODE:REORDER:NOROOT(1)
353 TIM1_UP_TIM10_IRQHandler
354 B TIM1_UP_TIM10_IRQHandler
356 PUBWEAK TIM1_TRG_COM_TIM11_IRQHandler
357 SECTION .text:CODE:REORDER:NOROOT(1)
358 TIM1_TRG_COM_TIM11_IRQHandler
359 B TIM1_TRG_COM_TIM11_IRQHandler
361 PUBWEAK TIM1_CC_IRQHandler
362 SECTION .text:CODE:REORDER:NOROOT(1)
366 PUBWEAK TIM2_IRQHandler
367 SECTION .text:CODE:REORDER:NOROOT(1)
371 PUBWEAK TIM3_IRQHandler
372 SECTION .text:CODE:REORDER:NOROOT(1)
376 PUBWEAK TIM4_IRQHandler
377 SECTION .text:CODE:REORDER:NOROOT(1)
381 PUBWEAK I2C1_EV_IRQHandler
382 SECTION .text:CODE:REORDER:NOROOT(1)
386 PUBWEAK I2C1_ER_IRQHandler
387 SECTION .text:CODE:REORDER:NOROOT(1)
391 PUBWEAK I2C2_EV_IRQHandler
392 SECTION .text:CODE:REORDER:NOROOT(1)
396 PUBWEAK I2C2_ER_IRQHandler
397 SECTION .text:CODE:REORDER:NOROOT(1)
401 PUBWEAK SPI1_IRQHandler
402 SECTION .text:CODE:REORDER:NOROOT(1)
406 PUBWEAK SPI2_IRQHandler
407 SECTION .text:CODE:REORDER:NOROOT(1)
411 PUBWEAK USART1_IRQHandler
412 SECTION .text:CODE:REORDER:NOROOT(1)
416 PUBWEAK USART2_IRQHandler
417 SECTION .text:CODE:REORDER:NOROOT(1)
421 PUBWEAK USART3_IRQHandler
422 SECTION .text:CODE:REORDER:NOROOT(1)
426 PUBWEAK EXTI15_10_IRQHandler
427 SECTION .text:CODE:REORDER:NOROOT(1)
429 B EXTI15_10_IRQHandler
431 PUBWEAK RTC_Alarm_IRQHandler
432 SECTION .text:CODE:REORDER:NOROOT(1)
434 B RTC_Alarm_IRQHandler
436 PUBWEAK OTG_FS_WKUP_IRQHandler
437 SECTION .text:CODE:REORDER:NOROOT(1)
438 OTG_FS_WKUP_IRQHandler
439 B OTG_FS_WKUP_IRQHandler
441 PUBWEAK TIM8_BRK_TIM12_IRQHandler
442 SECTION .text:CODE:REORDER:NOROOT(1)
443 TIM8_BRK_TIM12_IRQHandler
444 B TIM8_BRK_TIM12_IRQHandler
446 PUBWEAK TIM8_UP_TIM13_IRQHandler
447 SECTION .text:CODE:REORDER:NOROOT(1)
448 TIM8_UP_TIM13_IRQHandler
449 B TIM8_UP_TIM13_IRQHandler
451 PUBWEAK TIM8_TRG_COM_TIM14_IRQHandler
452 SECTION .text:CODE:REORDER:NOROOT(1)
453 TIM8_TRG_COM_TIM14_IRQHandler
454 B TIM8_TRG_COM_TIM14_IRQHandler
456 PUBWEAK TIM8_CC_IRQHandler
457 SECTION .text:CODE:REORDER:NOROOT(1)
461 PUBWEAK DMA1_Stream7_IRQHandler
462 SECTION .text:CODE:REORDER:NOROOT(1)
463 DMA1_Stream7_IRQHandler
464 B DMA1_Stream7_IRQHandler
466 PUBWEAK FMC_IRQHandler
467 SECTION .text:CODE:REORDER:NOROOT(1)
471 PUBWEAK SDIO_IRQHandler
472 SECTION .text:CODE:REORDER:NOROOT(1)
476 PUBWEAK TIM5_IRQHandler
477 SECTION .text:CODE:REORDER:NOROOT(1)
481 PUBWEAK SPI3_IRQHandler
482 SECTION .text:CODE:REORDER:NOROOT(1)
486 PUBWEAK UART4_IRQHandler
487 SECTION .text:CODE:REORDER:NOROOT(1)
491 PUBWEAK UART5_IRQHandler
492 SECTION .text:CODE:REORDER:NOROOT(1)
496 PUBWEAK TIM6_DAC_IRQHandler
497 SECTION .text:CODE:REORDER:NOROOT(1)
499 B TIM6_DAC_IRQHandler
501 PUBWEAK TIM7_IRQHandler
502 SECTION .text:CODE:REORDER:NOROOT(1)
506 PUBWEAK DMA2_Stream0_IRQHandler
507 SECTION .text:CODE:REORDER:NOROOT(1)
508 DMA2_Stream0_IRQHandler
509 B DMA2_Stream0_IRQHandler
511 PUBWEAK DMA2_Stream1_IRQHandler
512 SECTION .text:CODE:REORDER:NOROOT(1)
513 DMA2_Stream1_IRQHandler
514 B DMA2_Stream1_IRQHandler
516 PUBWEAK DMA2_Stream2_IRQHandler
517 SECTION .text:CODE:REORDER:NOROOT(1)
518 DMA2_Stream2_IRQHandler
519 B DMA2_Stream2_IRQHandler
521 PUBWEAK DMA2_Stream3_IRQHandler
522 SECTION .text:CODE:REORDER:NOROOT(1)
523 DMA2_Stream3_IRQHandler
524 B DMA2_Stream3_IRQHandler
526 PUBWEAK DMA2_Stream4_IRQHandler
527 SECTION .text:CODE:REORDER:NOROOT(1)
528 DMA2_Stream4_IRQHandler
529 B DMA2_Stream4_IRQHandler
531 PUBWEAK ETH_IRQHandler
532 SECTION .text:CODE:REORDER:NOROOT(1)
536 PUBWEAK ETH_WKUP_IRQHandler
537 SECTION .text:CODE:REORDER:NOROOT(1)
539 B ETH_WKUP_IRQHandler
541 PUBWEAK CAN2_TX_IRQHandler
542 SECTION .text:CODE:REORDER:NOROOT(1)
546 PUBWEAK CAN2_RX0_IRQHandler
547 SECTION .text:CODE:REORDER:NOROOT(1)
549 B CAN2_RX0_IRQHandler
551 PUBWEAK CAN2_RX1_IRQHandler
552 SECTION .text:CODE:REORDER:NOROOT(1)
554 B CAN2_RX1_IRQHandler
556 PUBWEAK CAN2_SCE_IRQHandler
557 SECTION .text:CODE:REORDER:NOROOT(1)
559 B CAN2_SCE_IRQHandler
561 PUBWEAK OTG_FS_IRQHandler
562 SECTION .text:CODE:REORDER:NOROOT(1)
566 PUBWEAK DMA2_Stream5_IRQHandler
567 SECTION .text:CODE:REORDER:NOROOT(1)
568 DMA2_Stream5_IRQHandler
569 B DMA2_Stream5_IRQHandler
571 PUBWEAK DMA2_Stream6_IRQHandler
572 SECTION .text:CODE:REORDER:NOROOT(1)
573 DMA2_Stream6_IRQHandler
574 B DMA2_Stream6_IRQHandler
576 PUBWEAK DMA2_Stream7_IRQHandler
577 SECTION .text:CODE:REORDER:NOROOT(1)
578 DMA2_Stream7_IRQHandler
579 B DMA2_Stream7_IRQHandler
581 PUBWEAK USART6_IRQHandler
582 SECTION .text:CODE:REORDER:NOROOT(1)
586 PUBWEAK I2C3_EV_IRQHandler
587 SECTION .text:CODE:REORDER:NOROOT(1)
591 PUBWEAK I2C3_ER_IRQHandler
592 SECTION .text:CODE:REORDER:NOROOT(1)
596 PUBWEAK OTG_HS_EP1_OUT_IRQHandler
597 SECTION .text:CODE:REORDER:NOROOT(1)
598 OTG_HS_EP1_OUT_IRQHandler
599 B OTG_HS_EP1_OUT_IRQHandler
601 PUBWEAK OTG_HS_EP1_IN_IRQHandler
602 SECTION .text:CODE:REORDER:NOROOT(1)
603 OTG_HS_EP1_IN_IRQHandler
604 B OTG_HS_EP1_IN_IRQHandler
606 PUBWEAK OTG_HS_WKUP_IRQHandler
607 SECTION .text:CODE:REORDER:NOROOT(1)
608 OTG_HS_WKUP_IRQHandler
609 B OTG_HS_WKUP_IRQHandler
611 PUBWEAK OTG_HS_IRQHandler
612 SECTION .text:CODE:REORDER:NOROOT(1)
616 PUBWEAK DCMI_IRQHandler
617 SECTION .text:CODE:REORDER:NOROOT(1)
621 PUBWEAK CRYP_IRQHandler
622 SECTION .text:CODE:REORDER:NOROOT(1)
626 PUBWEAK HASH_RNG_IRQHandler
627 SECTION .text:CODE:REORDER:NOROOT(1)
629 B HASH_RNG_IRQHandler
631 PUBWEAK FPU_IRQHandler
632 SECTION .text:CODE:REORDER:NOROOT(1)
636 PUBWEAK UART7_IRQHandler
637 SECTION .text:CODE:REORDER:NOROOT(1)
641 PUBWEAK UART8_IRQHandler
642 SECTION .text:CODE:REORDER:NOROOT(1)
646 PUBWEAK SPI4_IRQHandler
647 SECTION .text:CODE:REORDER:NOROOT(1)
651 PUBWEAK SPI5_IRQHandler
652 SECTION .text:CODE:REORDER:NOROOT(1)
656 PUBWEAK SPI6_IRQHandler
657 SECTION .text:CODE:REORDER:NOROOT(1)
661 PUBWEAK SAI1_IRQHandler
662 SECTION .text:CODE:REORDER:NOROOT(1)
666 PUBWEAK DMA2D_IRQHandler
667 SECTION .text:CODE:REORDER:NOROOT(1)
673 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/