1 ;/******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
2 ;* File Name : startup_stm32f412vx.s
3 ;* Author : MCD Application Team
4 ;* Description : STM32F412Vx 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 ;* - Configure the system clock
11 ;* - Branches to main in the C library (which eventually
13 ;* After Reset the Cortex-M4 processor is in Thread mode,
14 ;* priority is Privileged, and the Stack is set to Main.
15 ;********************************************************************************
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.
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.
39 ;*******************************************************************************
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.
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.
59 ;; Forward declaration of sections.
60 SECTION CSTACK:DATA:NOROOT(3)
62 SECTION .intvec:CODE:NOROOT(2)
64 EXTERN __iar_program_start
71 DCD Reset_Handler ; Reset Handler
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
82 DCD SVC_Handler ; SVCall Handler
83 DCD DebugMon_Handler ; Debug Monitor Handler
85 DCD PendSV_Handler ; PendSV Handler
86 DCD SysTick_Handler ; SysTick Handler
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 CAN1_TX_IRQHandler ; CAN1 TX
109 DCD CAN1_RX0_IRQHandler ; CAN1 RX0
110 DCD CAN1_RX1_IRQHandler ; CAN1 RX1
111 DCD CAN1_SCE_IRQHandler ; CAN1 SCE
112 DCD EXTI9_5_IRQHandler ; External Line[9:5]s
113 DCD TIM1_BRK_TIM9_IRQHandler ; TIM1 Break and TIM9
114 DCD TIM1_UP_TIM10_IRQHandler ; TIM1 Update and TIM10
115 DCD TIM1_TRG_COM_TIM11_IRQHandler ; TIM1 Trigger and Commutation and TIM11
116 DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare
117 DCD TIM2_IRQHandler ; TIM2
118 DCD TIM3_IRQHandler ; TIM3
119 DCD TIM4_IRQHandler ; TIM4
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 SPI2_IRQHandler ; SPI2
126 DCD USART1_IRQHandler ; USART1
127 DCD USART2_IRQHandler ; USART2
128 DCD USART3_IRQHandler ; USART3
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 OTG_FS_WKUP_IRQHandler ; USB OTG FS Wakeup through EXTI line
132 DCD TIM8_BRK_TIM12_IRQHandler ; TIM8 Break and TIM12
133 DCD TIM8_UP_TIM13_IRQHandler ; TIM8 Update and TIM13
134 DCD TIM8_TRG_COM_TIM14_IRQHandler ; TIM8 Trigger and Commutation and TIM14
135 DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare
136 DCD DMA1_Stream7_IRQHandler ; DMA1 Stream7
138 DCD SDIO_IRQHandler ; SDIO
139 DCD TIM5_IRQHandler ; TIM5
140 DCD SPI3_IRQHandler ; SPI3
143 DCD TIM6_IRQHandler ; TIM6
144 DCD TIM7_IRQHandler ; TIM7
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 DFSDM1_FLT0_IRQHandler ; DFSDM1 Filter0
151 DCD DFSDM1_FLT1_IRQHandler ; DFSDM1 Filter1
152 DCD CAN2_TX_IRQHandler ; CAN2 TX
153 DCD CAN2_RX0_IRQHandler ; CAN2 RX0
154 DCD CAN2_RX1_IRQHandler ; CAN2 RX1
155 DCD CAN2_SCE_IRQHandler ; CAN2 SCE
156 DCD OTG_FS_IRQHandler ; USB OTG FS
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 USART6_IRQHandler ; USART6
161 DCD I2C3_EV_IRQHandler ; I2C3 event
162 DCD I2C3_ER_IRQHandler ; I2C3 error
169 DCD RNG_IRQHandler ; RNG
170 DCD FPU_IRQHandler ; FPU
173 DCD SPI4_IRQHandler ; SPI4
174 DCD SPI5_IRQHandler ; SPI5
181 DCD QUADSPI_IRQHandler ; QuadSPI
184 DCD FMPI2C1_EV_IRQHandler ; FMPI2C1 Event
185 DCD FMPI2C1_ER_IRQHandler ; FMPI2C1 Error
187 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
189 ;; Default interrupt handlers.
192 PUBWEAK Reset_Handler
193 SECTION .text:CODE:REORDER:NOROOT(2)
198 LDR R0, =__iar_program_start
202 SECTION .text:CODE:REORDER:NOROOT(1)
206 PUBWEAK HardFault_Handler
207 SECTION .text:CODE:REORDER:NOROOT(1)
211 PUBWEAK MemManage_Handler
212 SECTION .text:CODE:REORDER:NOROOT(1)
216 PUBWEAK BusFault_Handler
217 SECTION .text:CODE:REORDER:NOROOT(1)
221 PUBWEAK UsageFault_Handler
222 SECTION .text:CODE:REORDER:NOROOT(1)
227 SECTION .text:CODE:REORDER:NOROOT(1)
231 PUBWEAK DebugMon_Handler
232 SECTION .text:CODE:REORDER:NOROOT(1)
236 PUBWEAK PendSV_Handler
237 SECTION .text:CODE:REORDER:NOROOT(1)
241 PUBWEAK SysTick_Handler
242 SECTION .text:CODE:REORDER:NOROOT(1)
246 PUBWEAK WWDG_IRQHandler
247 SECTION .text:CODE:REORDER:NOROOT(1)
251 PUBWEAK PVD_IRQHandler
252 SECTION .text:CODE:REORDER:NOROOT(1)
256 PUBWEAK TAMP_STAMP_IRQHandler
257 SECTION .text:CODE:REORDER:NOROOT(1)
258 TAMP_STAMP_IRQHandler
259 B TAMP_STAMP_IRQHandler
261 PUBWEAK RTC_WKUP_IRQHandler
262 SECTION .text:CODE:REORDER:NOROOT(1)
264 B RTC_WKUP_IRQHandler
266 PUBWEAK FLASH_IRQHandler
267 SECTION .text:CODE:REORDER:NOROOT(1)
271 PUBWEAK RCC_IRQHandler
272 SECTION .text:CODE:REORDER:NOROOT(1)
276 PUBWEAK EXTI0_IRQHandler
277 SECTION .text:CODE:REORDER:NOROOT(1)
281 PUBWEAK EXTI1_IRQHandler
282 SECTION .text:CODE:REORDER:NOROOT(1)
286 PUBWEAK EXTI2_IRQHandler
287 SECTION .text:CODE:REORDER:NOROOT(1)
291 PUBWEAK EXTI3_IRQHandler
292 SECTION .text:CODE:REORDER:NOROOT(1)
296 PUBWEAK EXTI4_IRQHandler
297 SECTION .text:CODE:REORDER:NOROOT(1)
301 PUBWEAK DMA1_Stream0_IRQHandler
302 SECTION .text:CODE:REORDER:NOROOT(1)
303 DMA1_Stream0_IRQHandler
304 B DMA1_Stream0_IRQHandler
306 PUBWEAK DMA1_Stream1_IRQHandler
307 SECTION .text:CODE:REORDER:NOROOT(1)
308 DMA1_Stream1_IRQHandler
309 B DMA1_Stream1_IRQHandler
311 PUBWEAK DMA1_Stream2_IRQHandler
312 SECTION .text:CODE:REORDER:NOROOT(1)
313 DMA1_Stream2_IRQHandler
314 B DMA1_Stream2_IRQHandler
316 PUBWEAK DMA1_Stream3_IRQHandler
317 SECTION .text:CODE:REORDER:NOROOT(1)
318 DMA1_Stream3_IRQHandler
319 B DMA1_Stream3_IRQHandler
321 PUBWEAK DMA1_Stream4_IRQHandler
322 SECTION .text:CODE:REORDER:NOROOT(1)
323 DMA1_Stream4_IRQHandler
324 B DMA1_Stream4_IRQHandler
326 PUBWEAK DMA1_Stream5_IRQHandler
327 SECTION .text:CODE:REORDER:NOROOT(1)
328 DMA1_Stream5_IRQHandler
329 B DMA1_Stream5_IRQHandler
331 PUBWEAK DMA1_Stream6_IRQHandler
332 SECTION .text:CODE:REORDER:NOROOT(1)
333 DMA1_Stream6_IRQHandler
334 B DMA1_Stream6_IRQHandler
336 PUBWEAK ADC_IRQHandler
337 SECTION .text:CODE:REORDER:NOROOT(1)
341 PUBWEAK CAN1_TX_IRQHandler
342 SECTION .text:CODE:REORDER:NOROOT(1)
346 PUBWEAK CAN1_RX0_IRQHandler
347 SECTION .text:CODE:REORDER:NOROOT(1)
349 B CAN1_RX0_IRQHandler
351 PUBWEAK CAN1_RX1_IRQHandler
352 SECTION .text:CODE:REORDER:NOROOT(1)
354 B CAN1_RX1_IRQHandler
356 PUBWEAK CAN1_SCE_IRQHandler
357 SECTION .text:CODE:REORDER:NOROOT(1)
359 B CAN1_SCE_IRQHandler
361 PUBWEAK EXTI9_5_IRQHandler
362 SECTION .text:CODE:REORDER:NOROOT(1)
366 PUBWEAK TIM1_BRK_TIM9_IRQHandler
367 SECTION .text:CODE:REORDER:NOROOT(1)
368 TIM1_BRK_TIM9_IRQHandler
369 B TIM1_BRK_TIM9_IRQHandler
371 PUBWEAK TIM1_UP_TIM10_IRQHandler
372 SECTION .text:CODE:REORDER:NOROOT(1)
373 TIM1_UP_TIM10_IRQHandler
374 B TIM1_UP_TIM10_IRQHandler
376 PUBWEAK TIM1_TRG_COM_TIM11_IRQHandler
377 SECTION .text:CODE:REORDER:NOROOT(1)
378 TIM1_TRG_COM_TIM11_IRQHandler
379 B TIM1_TRG_COM_TIM11_IRQHandler
381 PUBWEAK TIM1_CC_IRQHandler
382 SECTION .text:CODE:REORDER:NOROOT(1)
386 PUBWEAK TIM2_IRQHandler
387 SECTION .text:CODE:REORDER:NOROOT(1)
391 PUBWEAK TIM3_IRQHandler
392 SECTION .text:CODE:REORDER:NOROOT(1)
396 PUBWEAK TIM4_IRQHandler
397 SECTION .text:CODE:REORDER:NOROOT(1)
401 PUBWEAK I2C1_EV_IRQHandler
402 SECTION .text:CODE:REORDER:NOROOT(1)
406 PUBWEAK I2C1_ER_IRQHandler
407 SECTION .text:CODE:REORDER:NOROOT(1)
411 PUBWEAK I2C2_EV_IRQHandler
412 SECTION .text:CODE:REORDER:NOROOT(1)
416 PUBWEAK I2C2_ER_IRQHandler
417 SECTION .text:CODE:REORDER:NOROOT(1)
421 PUBWEAK SPI1_IRQHandler
422 SECTION .text:CODE:REORDER:NOROOT(1)
426 PUBWEAK SPI2_IRQHandler
427 SECTION .text:CODE:REORDER:NOROOT(1)
431 PUBWEAK USART1_IRQHandler
432 SECTION .text:CODE:REORDER:NOROOT(1)
436 PUBWEAK USART2_IRQHandler
437 SECTION .text:CODE:REORDER:NOROOT(1)
441 PUBWEAK USART3_IRQHandler
442 SECTION .text:CODE:REORDER:NOROOT(1)
446 PUBWEAK EXTI15_10_IRQHandler
447 SECTION .text:CODE:REORDER:NOROOT(1)
449 B EXTI15_10_IRQHandler
451 PUBWEAK RTC_Alarm_IRQHandler
452 SECTION .text:CODE:REORDER:NOROOT(1)
454 B RTC_Alarm_IRQHandler
456 PUBWEAK OTG_FS_WKUP_IRQHandler
457 SECTION .text:CODE:REORDER:NOROOT(1)
458 OTG_FS_WKUP_IRQHandler
459 B OTG_FS_WKUP_IRQHandler
461 PUBWEAK TIM8_BRK_TIM12_IRQHandler
462 SECTION .text:CODE:REORDER:NOROOT(1)
463 TIM8_BRK_TIM12_IRQHandler
464 B TIM8_BRK_TIM12_IRQHandler
466 PUBWEAK TIM8_UP_TIM13_IRQHandler
467 SECTION .text:CODE:REORDER:NOROOT(1)
468 TIM8_UP_TIM13_IRQHandler
469 B TIM8_UP_TIM13_IRQHandler
471 PUBWEAK TIM8_TRG_COM_TIM14_IRQHandler
472 SECTION .text:CODE:REORDER:NOROOT(1)
473 TIM8_TRG_COM_TIM14_IRQHandler
474 B TIM8_TRG_COM_TIM14_IRQHandler
476 PUBWEAK TIM8_CC_IRQHandler
477 SECTION .text:CODE:REORDER:NOROOT(1)
481 PUBWEAK DMA1_Stream7_IRQHandler
482 SECTION .text:CODE:REORDER:NOROOT(1)
483 DMA1_Stream7_IRQHandler
484 B DMA1_Stream7_IRQHandler
486 PUBWEAK SDIO_IRQHandler
487 SECTION .text:CODE:REORDER:NOROOT(1)
491 PUBWEAK TIM5_IRQHandler
492 SECTION .text:CODE:REORDER:NOROOT(1)
496 PUBWEAK SPI3_IRQHandler
497 SECTION .text:CODE:REORDER:NOROOT(1)
501 PUBWEAK TIM6_IRQHandler
502 SECTION .text:CODE:REORDER:NOROOT(1)
506 PUBWEAK TIM7_IRQHandler
507 SECTION .text:CODE:REORDER:NOROOT(1)
511 PUBWEAK DMA2_Stream0_IRQHandler
512 SECTION .text:CODE:REORDER:NOROOT(1)
513 DMA2_Stream0_IRQHandler
514 B DMA2_Stream0_IRQHandler
516 PUBWEAK DMA2_Stream1_IRQHandler
517 SECTION .text:CODE:REORDER:NOROOT(1)
518 DMA2_Stream1_IRQHandler
519 B DMA2_Stream1_IRQHandler
521 PUBWEAK DMA2_Stream2_IRQHandler
522 SECTION .text:CODE:REORDER:NOROOT(1)
523 DMA2_Stream2_IRQHandler
524 B DMA2_Stream2_IRQHandler
526 PUBWEAK DMA2_Stream3_IRQHandler
527 SECTION .text:CODE:REORDER:NOROOT(1)
528 DMA2_Stream3_IRQHandler
529 B DMA2_Stream3_IRQHandler
531 PUBWEAK DMA2_Stream4_IRQHandler
532 SECTION .text:CODE:REORDER:NOROOT(1)
533 DMA2_Stream4_IRQHandler
534 B DMA2_Stream4_IRQHandler
536 PUBWEAK DFSDM1_FLT0_IRQHandler
537 SECTION .text:CODE:REORDER:NOROOT(1)
538 DFSDM1_FLT0_IRQHandler
539 B DFSDM1_FLT0_IRQHandler
541 PUBWEAK DFSDM1_FLT1_IRQHandler
542 SECTION .text:CODE:REORDER:NOROOT(1)
543 DFSDM1_FLT1_IRQHandler
544 B DFSDM1_FLT1_IRQHandler
546 PUBWEAK CAN2_TX_IRQHandler
547 SECTION .text:CODE:REORDER:NOROOT(1)
551 PUBWEAK CAN2_RX0_IRQHandler
552 SECTION .text:CODE:REORDER:NOROOT(1)
554 B CAN2_RX0_IRQHandler
556 PUBWEAK CAN2_RX1_IRQHandler
557 SECTION .text:CODE:REORDER:NOROOT(1)
559 B CAN2_RX1_IRQHandler
561 PUBWEAK CAN2_SCE_IRQHandler
562 SECTION .text:CODE:REORDER:NOROOT(1)
564 B CAN2_SCE_IRQHandler
566 PUBWEAK OTG_FS_IRQHandler
567 SECTION .text:CODE:REORDER:NOROOT(1)
571 PUBWEAK DMA2_Stream5_IRQHandler
572 SECTION .text:CODE:REORDER:NOROOT(1)
573 DMA2_Stream5_IRQHandler
574 B DMA2_Stream5_IRQHandler
576 PUBWEAK DMA2_Stream6_IRQHandler
577 SECTION .text:CODE:REORDER:NOROOT(1)
578 DMA2_Stream6_IRQHandler
579 B DMA2_Stream6_IRQHandler
581 PUBWEAK DMA2_Stream7_IRQHandler
582 SECTION .text:CODE:REORDER:NOROOT(1)
583 DMA2_Stream7_IRQHandler
584 B DMA2_Stream7_IRQHandler
586 PUBWEAK USART6_IRQHandler
587 SECTION .text:CODE:REORDER:NOROOT(1)
591 PUBWEAK I2C3_EV_IRQHandler
592 SECTION .text:CODE:REORDER:NOROOT(1)
596 PUBWEAK I2C3_ER_IRQHandler
597 SECTION .text:CODE:REORDER:NOROOT(1)
601 PUBWEAK RNG_IRQHandler
602 SECTION .text:CODE:REORDER:NOROOT(1)
606 PUBWEAK FPU_IRQHandler
607 SECTION .text:CODE:REORDER:NOROOT(1)
611 PUBWEAK SPI4_IRQHandler
612 SECTION .text:CODE:REORDER:NOROOT(1)
616 PUBWEAK SPI5_IRQHandler
617 SECTION .text:CODE:REORDER:NOROOT(1)
621 PUBWEAK QUADSPI_IRQHandler
622 SECTION .text:CODE:REORDER:NOROOT(1)
626 PUBWEAK FMPI2C1_EV_IRQHandler
627 SECTION .text:CODE:REORDER:NOROOT(1)
628 FMPI2C1_EV_IRQHandler
629 B FMPI2C1_EV_IRQHandler
631 PUBWEAK FMPI2C1_ER_IRQHandler
632 SECTION .text:CODE:REORDER:NOROOT(1)
633 FMPI2C1_ER_IRQHandler
634 B FMPI2C1_ER_IRQHandler
637 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/