1 ;********************************************************************************
2 ;* File Name : startup_stm32f401xe.s
3 ;* Author : MCD Application Team
4 ;* Description : STM32F401xExx 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 ;********************************************************************************
18 ;* <h2><center>© Copyright (c) 2017 STMicroelectronics.
19 ;* All rights reserved.</center></h2>
21 ;* This software component is licensed by ST under BSD 3-Clause license,
22 ;* the "License"; You may not use this file except in compliance with the
23 ;* License. You may obtain a copy of the License at:
24 ;* opensource.org/licenses/BSD-3-Clause
26 ;*******************************************************************************
29 ; The modules in this file are included in the libraries, and may be replaced
30 ; by any user-defined modules that define the PUBLIC symbol _program_start or
31 ; a user defined start symbol.
32 ; To override the cstartup defined in the library, simply add your modified
33 ; version to the workbench project.
35 ; The vector table is normally located at address 0.
36 ; When debugging in RAM, it can be located in RAM, aligned to at least 2^6.
37 ; The name "__vector_table" has special meaning for C-SPY:
38 ; it is where the SP start value is found, and the NVIC vector
39 ; table register (VTOR) is initialized to this address if != 0.
46 ;; Forward declaration of sections.
47 SECTION CSTACK:DATA:NOROOT(3)
49 SECTION .intvec:CODE:NOROOT(2)
51 EXTERN __iar_program_start
58 DCD Reset_Handler ; Reset Handler
60 DCD NMI_Handler ; NMI Handler
61 DCD HardFault_Handler ; Hard Fault Handler
62 DCD MemManage_Handler ; MPU Fault Handler
63 DCD BusFault_Handler ; Bus Fault Handler
64 DCD UsageFault_Handler ; Usage Fault Handler
69 DCD SVC_Handler ; SVCall Handler
70 DCD DebugMon_Handler ; Debug Monitor Handler
72 DCD PendSV_Handler ; PendSV Handler
73 DCD SysTick_Handler ; SysTick Handler
76 DCD WWDG_IRQHandler ; Window WatchDog
77 DCD PVD_IRQHandler ; PVD through EXTI Line detection
78 DCD TAMP_STAMP_IRQHandler ; Tamper and TimeStamps through the EXTI line
79 DCD RTC_WKUP_IRQHandler ; RTC Wakeup through the EXTI line
80 DCD FLASH_IRQHandler ; FLASH
81 DCD RCC_IRQHandler ; RCC
82 DCD EXTI0_IRQHandler ; EXTI Line0
83 DCD EXTI1_IRQHandler ; EXTI Line1
84 DCD EXTI2_IRQHandler ; EXTI Line2
85 DCD EXTI3_IRQHandler ; EXTI Line3
86 DCD EXTI4_IRQHandler ; EXTI Line4
87 DCD DMA1_Stream0_IRQHandler ; DMA1 Stream 0
88 DCD DMA1_Stream1_IRQHandler ; DMA1 Stream 1
89 DCD DMA1_Stream2_IRQHandler ; DMA1 Stream 2
90 DCD DMA1_Stream3_IRQHandler ; DMA1 Stream 3
91 DCD DMA1_Stream4_IRQHandler ; DMA1 Stream 4
92 DCD DMA1_Stream5_IRQHandler ; DMA1 Stream 5
93 DCD DMA1_Stream6_IRQHandler ; DMA1 Stream 6
94 DCD ADC_IRQHandler ; ADC1
99 DCD EXTI9_5_IRQHandler ; External Line[9:5]s
100 DCD TIM1_BRK_TIM9_IRQHandler ; TIM1 Break and TIM9
101 DCD TIM1_UP_TIM10_IRQHandler ; TIM1 Update and TIM10
102 DCD TIM1_TRG_COM_TIM11_IRQHandler ; TIM1 Trigger and Commutation and TIM11
103 DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare
104 DCD TIM2_IRQHandler ; TIM2
105 DCD TIM3_IRQHandler ; TIM3
106 DCD TIM4_IRQHandler ; TIM4
107 DCD I2C1_EV_IRQHandler ; I2C1 Event
108 DCD I2C1_ER_IRQHandler ; I2C1 Error
109 DCD I2C2_EV_IRQHandler ; I2C2 Event
110 DCD I2C2_ER_IRQHandler ; I2C2 Error
111 DCD SPI1_IRQHandler ; SPI1
112 DCD SPI2_IRQHandler ; SPI2
113 DCD USART1_IRQHandler ; USART1
114 DCD USART2_IRQHandler ; USART2
116 DCD EXTI15_10_IRQHandler ; External Line[15:10]s
117 DCD RTC_Alarm_IRQHandler ; RTC Alarm (A and B) through EXTI Line
118 DCD OTG_FS_WKUP_IRQHandler ; USB OTG FS Wakeup through EXTI line
123 DCD DMA1_Stream7_IRQHandler ; DMA1 Stream7
125 DCD SDIO_IRQHandler ; SDIO
126 DCD TIM5_IRQHandler ; TIM5
127 DCD SPI3_IRQHandler ; SPI3
132 DCD DMA2_Stream0_IRQHandler ; DMA2 Stream 0
133 DCD DMA2_Stream1_IRQHandler ; DMA2 Stream 1
134 DCD DMA2_Stream2_IRQHandler ; DMA2 Stream 2
135 DCD DMA2_Stream3_IRQHandler ; DMA2 Stream 3
136 DCD DMA2_Stream4_IRQHandler ; DMA2 Stream 4
143 DCD OTG_FS_IRQHandler ; USB OTG FS
144 DCD DMA2_Stream5_IRQHandler ; DMA2 Stream 5
145 DCD DMA2_Stream6_IRQHandler ; DMA2 Stream 6
146 DCD DMA2_Stream7_IRQHandler ; DMA2 Stream 7
147 DCD USART6_IRQHandler ; USART6
148 DCD I2C3_EV_IRQHandler ; I2C3 event
149 DCD I2C3_ER_IRQHandler ; I2C3 error
157 DCD FPU_IRQHandler ; FPU
160 DCD SPI4_IRQHandler ; SPI4
162 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
164 ;; Default interrupt handlers.
167 PUBWEAK Reset_Handler
168 SECTION .text:CODE:REORDER:NOROOT(2)
173 LDR R0, =__iar_program_start
177 SECTION .text:CODE:REORDER:NOROOT(1)
181 PUBWEAK HardFault_Handler
182 SECTION .text:CODE:REORDER:NOROOT(1)
186 PUBWEAK MemManage_Handler
187 SECTION .text:CODE:REORDER:NOROOT(1)
191 PUBWEAK BusFault_Handler
192 SECTION .text:CODE:REORDER:NOROOT(1)
196 PUBWEAK UsageFault_Handler
197 SECTION .text:CODE:REORDER:NOROOT(1)
202 SECTION .text:CODE:REORDER:NOROOT(1)
206 PUBWEAK DebugMon_Handler
207 SECTION .text:CODE:REORDER:NOROOT(1)
211 PUBWEAK PendSV_Handler
212 SECTION .text:CODE:REORDER:NOROOT(1)
216 PUBWEAK SysTick_Handler
217 SECTION .text:CODE:REORDER:NOROOT(1)
221 PUBWEAK WWDG_IRQHandler
222 SECTION .text:CODE:REORDER:NOROOT(1)
226 PUBWEAK PVD_IRQHandler
227 SECTION .text:CODE:REORDER:NOROOT(1)
231 PUBWEAK TAMP_STAMP_IRQHandler
232 SECTION .text:CODE:REORDER:NOROOT(1)
233 TAMP_STAMP_IRQHandler
234 B TAMP_STAMP_IRQHandler
236 PUBWEAK RTC_WKUP_IRQHandler
237 SECTION .text:CODE:REORDER:NOROOT(1)
239 B RTC_WKUP_IRQHandler
241 PUBWEAK FLASH_IRQHandler
242 SECTION .text:CODE:REORDER:NOROOT(1)
246 PUBWEAK RCC_IRQHandler
247 SECTION .text:CODE:REORDER:NOROOT(1)
251 PUBWEAK EXTI0_IRQHandler
252 SECTION .text:CODE:REORDER:NOROOT(1)
256 PUBWEAK EXTI1_IRQHandler
257 SECTION .text:CODE:REORDER:NOROOT(1)
261 PUBWEAK EXTI2_IRQHandler
262 SECTION .text:CODE:REORDER:NOROOT(1)
266 PUBWEAK EXTI3_IRQHandler
267 SECTION .text:CODE:REORDER:NOROOT(1)
271 PUBWEAK EXTI4_IRQHandler
272 SECTION .text:CODE:REORDER:NOROOT(1)
276 PUBWEAK DMA1_Stream0_IRQHandler
277 SECTION .text:CODE:REORDER:NOROOT(1)
278 DMA1_Stream0_IRQHandler
279 B DMA1_Stream0_IRQHandler
281 PUBWEAK DMA1_Stream1_IRQHandler
282 SECTION .text:CODE:REORDER:NOROOT(1)
283 DMA1_Stream1_IRQHandler
284 B DMA1_Stream1_IRQHandler
286 PUBWEAK DMA1_Stream2_IRQHandler
287 SECTION .text:CODE:REORDER:NOROOT(1)
288 DMA1_Stream2_IRQHandler
289 B DMA1_Stream2_IRQHandler
291 PUBWEAK DMA1_Stream3_IRQHandler
292 SECTION .text:CODE:REORDER:NOROOT(1)
293 DMA1_Stream3_IRQHandler
294 B DMA1_Stream3_IRQHandler
296 PUBWEAK DMA1_Stream4_IRQHandler
297 SECTION .text:CODE:REORDER:NOROOT(1)
298 DMA1_Stream4_IRQHandler
299 B DMA1_Stream4_IRQHandler
301 PUBWEAK DMA1_Stream5_IRQHandler
302 SECTION .text:CODE:REORDER:NOROOT(1)
303 DMA1_Stream5_IRQHandler
304 B DMA1_Stream5_IRQHandler
306 PUBWEAK DMA1_Stream6_IRQHandler
307 SECTION .text:CODE:REORDER:NOROOT(1)
308 DMA1_Stream6_IRQHandler
309 B DMA1_Stream6_IRQHandler
311 PUBWEAK ADC_IRQHandler
312 SECTION .text:CODE:REORDER:NOROOT(1)
316 PUBWEAK EXTI9_5_IRQHandler
317 SECTION .text:CODE:REORDER:NOROOT(1)
321 PUBWEAK TIM1_BRK_TIM9_IRQHandler
322 SECTION .text:CODE:REORDER:NOROOT(1)
323 TIM1_BRK_TIM9_IRQHandler
324 B TIM1_BRK_TIM9_IRQHandler
326 PUBWEAK TIM1_UP_TIM10_IRQHandler
327 SECTION .text:CODE:REORDER:NOROOT(1)
328 TIM1_UP_TIM10_IRQHandler
329 B TIM1_UP_TIM10_IRQHandler
331 PUBWEAK TIM1_TRG_COM_TIM11_IRQHandler
332 SECTION .text:CODE:REORDER:NOROOT(1)
333 TIM1_TRG_COM_TIM11_IRQHandler
334 B TIM1_TRG_COM_TIM11_IRQHandler
336 PUBWEAK TIM1_CC_IRQHandler
337 SECTION .text:CODE:REORDER:NOROOT(1)
341 PUBWEAK TIM2_IRQHandler
342 SECTION .text:CODE:REORDER:NOROOT(1)
346 PUBWEAK TIM3_IRQHandler
347 SECTION .text:CODE:REORDER:NOROOT(1)
351 PUBWEAK TIM4_IRQHandler
352 SECTION .text:CODE:REORDER:NOROOT(1)
356 PUBWEAK I2C1_EV_IRQHandler
357 SECTION .text:CODE:REORDER:NOROOT(1)
361 PUBWEAK I2C1_ER_IRQHandler
362 SECTION .text:CODE:REORDER:NOROOT(1)
366 PUBWEAK I2C2_EV_IRQHandler
367 SECTION .text:CODE:REORDER:NOROOT(1)
371 PUBWEAK I2C2_ER_IRQHandler
372 SECTION .text:CODE:REORDER:NOROOT(1)
376 PUBWEAK SPI1_IRQHandler
377 SECTION .text:CODE:REORDER:NOROOT(1)
381 PUBWEAK SPI2_IRQHandler
382 SECTION .text:CODE:REORDER:NOROOT(1)
386 PUBWEAK USART1_IRQHandler
387 SECTION .text:CODE:REORDER:NOROOT(1)
391 PUBWEAK USART2_IRQHandler
392 SECTION .text:CODE:REORDER:NOROOT(1)
396 PUBWEAK EXTI15_10_IRQHandler
397 SECTION .text:CODE:REORDER:NOROOT(1)
399 B EXTI15_10_IRQHandler
401 PUBWEAK RTC_Alarm_IRQHandler
402 SECTION .text:CODE:REORDER:NOROOT(1)
404 B RTC_Alarm_IRQHandler
406 PUBWEAK OTG_FS_WKUP_IRQHandler
407 SECTION .text:CODE:REORDER:NOROOT(1)
408 OTG_FS_WKUP_IRQHandler
409 B OTG_FS_WKUP_IRQHandler
411 PUBWEAK DMA1_Stream7_IRQHandler
412 SECTION .text:CODE:REORDER:NOROOT(1)
413 DMA1_Stream7_IRQHandler
414 B DMA1_Stream7_IRQHandler
416 PUBWEAK SDIO_IRQHandler
417 SECTION .text:CODE:REORDER:NOROOT(1)
421 PUBWEAK TIM5_IRQHandler
422 SECTION .text:CODE:REORDER:NOROOT(1)
426 PUBWEAK SPI3_IRQHandler
427 SECTION .text:CODE:REORDER:NOROOT(1)
431 PUBWEAK DMA2_Stream0_IRQHandler
432 SECTION .text:CODE:REORDER:NOROOT(1)
433 DMA2_Stream0_IRQHandler
434 B DMA2_Stream0_IRQHandler
436 PUBWEAK DMA2_Stream1_IRQHandler
437 SECTION .text:CODE:REORDER:NOROOT(1)
438 DMA2_Stream1_IRQHandler
439 B DMA2_Stream1_IRQHandler
441 PUBWEAK DMA2_Stream2_IRQHandler
442 SECTION .text:CODE:REORDER:NOROOT(1)
443 DMA2_Stream2_IRQHandler
444 B DMA2_Stream2_IRQHandler
446 PUBWEAK DMA2_Stream3_IRQHandler
447 SECTION .text:CODE:REORDER:NOROOT(1)
448 DMA2_Stream3_IRQHandler
449 B DMA2_Stream3_IRQHandler
451 PUBWEAK DMA2_Stream4_IRQHandler
452 SECTION .text:CODE:REORDER:NOROOT(1)
453 DMA2_Stream4_IRQHandler
454 B DMA2_Stream4_IRQHandler
456 PUBWEAK OTG_FS_IRQHandler
457 SECTION .text:CODE:REORDER:NOROOT(1)
461 PUBWEAK DMA2_Stream5_IRQHandler
462 SECTION .text:CODE:REORDER:NOROOT(1)
463 DMA2_Stream5_IRQHandler
464 B DMA2_Stream5_IRQHandler
466 PUBWEAK DMA2_Stream6_IRQHandler
467 SECTION .text:CODE:REORDER:NOROOT(1)
468 DMA2_Stream6_IRQHandler
469 B DMA2_Stream6_IRQHandler
471 PUBWEAK DMA2_Stream7_IRQHandler
472 SECTION .text:CODE:REORDER:NOROOT(1)
473 DMA2_Stream7_IRQHandler
474 B DMA2_Stream7_IRQHandler
476 PUBWEAK USART6_IRQHandler
477 SECTION .text:CODE:REORDER:NOROOT(1)
481 PUBWEAK I2C3_EV_IRQHandler
482 SECTION .text:CODE:REORDER:NOROOT(1)
486 PUBWEAK I2C3_ER_IRQHandler
487 SECTION .text:CODE:REORDER:NOROOT(1)
491 PUBWEAK FPU_IRQHandler
492 SECTION .text:CODE:REORDER:NOROOT(1)
496 PUBWEAK SPI4_IRQHandler
497 SECTION .text:CODE:REORDER:NOROOT(1)
502 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/