1 ;/******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
2 ;* File Name : startup_stm32l152xc.s
3 ;* Author : MCD Application Team
5 ;* Date : 5-September-2014
6 ;* Description : STM32L152XC Devices vector for EWARM toolchain.
7 ;* This module performs:
8 ;* - Set the initial SP
9 ;* - Set the initial PC == __iar_program_start,
10 ;* - Set the vector table entries with the exceptions ISR
12 ;* - Configure the system clock
13 ;* - Branches to main in the C library (which eventually
15 ;* After Reset the Cortex-M3 processor is in Thread mode,
16 ;* priority is Privileged, and the Stack is set to Main.
17 ;********************************************************************************
19 ;* <h2><center>© COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
21 ;* Redistribution and use in source and binary forms, with or without modification,
22 ;* are permitted provided that the following conditions are met:
23 ;* 1. Redistributions of source code must retain the above copyright notice,
24 ;* this list of conditions and the following disclaimer.
25 ;* 2. Redistributions in binary form must reproduce the above copyright notice,
26 ;* this list of conditions and the following disclaimer in the documentation
27 ;* and/or other materials provided with the distribution.
28 ;* 3. Neither the name of STMicroelectronics nor the names of its contributors
29 ;* may be used to endorse or promote products derived from this software
30 ;* without specific prior written permission.
32 ;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
33 ;* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
34 ;* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
35 ;* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
36 ;* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
37 ;* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
38 ;* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
39 ;* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
40 ;* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
41 ;* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
43 ;*******************************************************************************
46 ; The modules in this file are included in the libraries, and may be replaced
47 ; by any user-defined modules that define the PUBLIC symbol _program_start or
48 ; a user defined start symbol.
49 ; To override the cstartup defined in the library, simply add your modified
50 ; version to the workbench project.
52 ; The vector table is normally located at address 0.
53 ; When debugging in RAM, it can be located in RAM, aligned to at least 2^6.
54 ; The name "__vector_table" has special meaning for C-SPY:
55 ; it is where the SP start value is found, and the NVIC vector
56 ; table register (VTOR) is initialized to this address if != 0.
63 ;; Forward declaration of sections.
64 SECTION CSTACK:DATA:NOROOT(3)
66 SECTION .intvec:CODE:NOROOT(2)
68 EXTERN __iar_program_start
75 DCD Reset_Handler ; Reset Handler
77 DCD NMI_Handler ; NMI Handler
78 DCD HardFault_Handler ; Hard Fault Handler
79 DCD MemManage_Handler ; MPU Fault Handler
80 DCD BusFault_Handler ; Bus Fault Handler
81 DCD UsageFault_Handler ; Usage Fault Handler
86 DCD SVC_Handler ; SVCall Handler
87 DCD DebugMon_Handler ; Debug Monitor Handler
89 DCD PendSV_Handler ; PendSV Handler
90 DCD SysTick_Handler ; SysTick Handler
93 DCD WWDG_IRQHandler ; Window Watchdog
94 DCD PVD_IRQHandler ; PVD through EXTI Line detect
95 DCD TAMPER_STAMP_IRQHandler ; Tamper and Time Stamp
96 DCD RTC_WKUP_IRQHandler ; RTC Wakeup
97 DCD FLASH_IRQHandler ; FLASH
98 DCD RCC_IRQHandler ; RCC
99 DCD EXTI0_IRQHandler ; EXTI Line 0
100 DCD EXTI1_IRQHandler ; EXTI Line 1
101 DCD EXTI2_IRQHandler ; EXTI Line 2
102 DCD EXTI3_IRQHandler ; EXTI Line 3
103 DCD EXTI4_IRQHandler ; EXTI Line 4
104 DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1
105 DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2
106 DCD DMA1_Channel3_IRQHandler ; DMA1 Channel 3
107 DCD DMA1_Channel4_IRQHandler ; DMA1 Channel 4
108 DCD DMA1_Channel5_IRQHandler ; DMA1 Channel 5
109 DCD DMA1_Channel6_IRQHandler ; DMA1 Channel 6
110 DCD DMA1_Channel7_IRQHandler ; DMA1 Channel 7
111 DCD ADC1_IRQHandler ; ADC1
112 DCD USB_HP_IRQHandler ; USB High Priority
113 DCD USB_LP_IRQHandler ; USB Low Priority
114 DCD DAC_IRQHandler ; DAC
115 DCD COMP_IRQHandler ; COMP through EXTI Line
116 DCD EXTI9_5_IRQHandler ; EXTI Line 9..5
117 DCD LCD_IRQHandler ; LCD
118 DCD TIM9_IRQHandler ; TIM9
119 DCD TIM10_IRQHandler ; TIM10
120 DCD TIM11_IRQHandler ; TIM11
121 DCD TIM2_IRQHandler ; TIM2
122 DCD TIM3_IRQHandler ; TIM3
123 DCD TIM4_IRQHandler ; TIM4
124 DCD I2C1_EV_IRQHandler ; I2C1 Event
125 DCD I2C1_ER_IRQHandler ; I2C1 Error
126 DCD I2C2_EV_IRQHandler ; I2C2 Event
127 DCD I2C2_ER_IRQHandler ; I2C2 Error
128 DCD SPI1_IRQHandler ; SPI1
129 DCD SPI2_IRQHandler ; SPI2
130 DCD USART1_IRQHandler ; USART1
131 DCD USART2_IRQHandler ; USART2
132 DCD USART3_IRQHandler ; USART3
133 DCD EXTI15_10_IRQHandler ; EXTI Line 15..10
134 DCD RTC_Alarm_IRQHandler ; RTC Alarm through EXTI Line
135 DCD USB_FS_WKUP_IRQHandler ; USB FS Wakeup from suspend
136 DCD TIM6_IRQHandler ; TIM6
137 DCD TIM7_IRQHandler ; TIM7
139 DCD TIM5_IRQHandler ; TIM5
140 DCD SPI3_IRQHandler ; SPI3
143 DCD DMA2_Channel1_IRQHandler ; DMA2 Channel 1
144 DCD DMA2_Channel2_IRQHandler ; DMA2 Channel 2
145 DCD DMA2_Channel3_IRQHandler ; DMA2 Channel 3
146 DCD DMA2_Channel4_IRQHandler ; DMA2 Channel 4
147 DCD DMA2_Channel5_IRQHandler ; DMA2 Channel 5
149 DCD COMP_ACQ_IRQHandler ; Comparator Channel Acquisition
151 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
153 ;; Default interrupt handlers.
157 PUBWEAK Reset_Handler
158 SECTION .text:CODE:REORDER:NOROOT(2)
162 LDR R0, =__iar_program_start
166 SECTION .text:CODE:REORDER:NOROOT(1)
171 PUBWEAK HardFault_Handler
172 SECTION .text:CODE:REORDER:NOROOT(1)
177 PUBWEAK MemManage_Handler
178 SECTION .text:CODE:REORDER:NOROOT(1)
183 PUBWEAK BusFault_Handler
184 SECTION .text:CODE:REORDER:NOROOT(1)
189 PUBWEAK UsageFault_Handler
190 SECTION .text:CODE:REORDER:NOROOT(1)
196 SECTION .text:CODE:REORDER:NOROOT(1)
201 PUBWEAK DebugMon_Handler
202 SECTION .text:CODE:REORDER:NOROOT(1)
207 PUBWEAK PendSV_Handler
208 SECTION .text:CODE:REORDER:NOROOT(1)
213 PUBWEAK SysTick_Handler
214 SECTION .text:CODE:REORDER:NOROOT(1)
219 PUBWEAK WWDG_IRQHandler
220 SECTION .text:CODE:REORDER:NOROOT(1)
225 PUBWEAK PVD_IRQHandler
226 SECTION .text:CODE:REORDER:NOROOT(1)
231 PUBWEAK TAMPER_STAMP_IRQHandler
232 SECTION .text:CODE:REORDER:NOROOT(1)
233 TAMPER_STAMP_IRQHandler
234 B TAMPER_STAMP_IRQHandler
237 PUBWEAK RTC_WKUP_IRQHandler
238 SECTION .text:CODE:REORDER:NOROOT(1)
240 B RTC_WKUP_IRQHandler
243 PUBWEAK FLASH_IRQHandler
244 SECTION .text:CODE:REORDER:NOROOT(1)
249 PUBWEAK RCC_IRQHandler
250 SECTION .text:CODE:REORDER:NOROOT(1)
255 PUBWEAK EXTI0_IRQHandler
256 SECTION .text:CODE:REORDER:NOROOT(1)
261 PUBWEAK EXTI1_IRQHandler
262 SECTION .text:CODE:REORDER:NOROOT(1)
267 PUBWEAK EXTI2_IRQHandler
268 SECTION .text:CODE:REORDER:NOROOT(1)
273 PUBWEAK EXTI3_IRQHandler
274 SECTION .text:CODE:REORDER:NOROOT(1)
279 PUBWEAK EXTI4_IRQHandler
280 SECTION .text:CODE:REORDER:NOROOT(1)
285 PUBWEAK DMA1_Channel1_IRQHandler
286 SECTION .text:CODE:REORDER:NOROOT(1)
287 DMA1_Channel1_IRQHandler
288 B DMA1_Channel1_IRQHandler
291 PUBWEAK DMA1_Channel2_IRQHandler
292 SECTION .text:CODE:REORDER:NOROOT(1)
293 DMA1_Channel2_IRQHandler
294 B DMA1_Channel2_IRQHandler
297 PUBWEAK DMA1_Channel3_IRQHandler
298 SECTION .text:CODE:REORDER:NOROOT(1)
299 DMA1_Channel3_IRQHandler
300 B DMA1_Channel3_IRQHandler
303 PUBWEAK DMA1_Channel4_IRQHandler
304 SECTION .text:CODE:REORDER:NOROOT(1)
305 DMA1_Channel4_IRQHandler
306 B DMA1_Channel4_IRQHandler
309 PUBWEAK DMA1_Channel5_IRQHandler
310 SECTION .text:CODE:REORDER:NOROOT(1)
311 DMA1_Channel5_IRQHandler
312 B DMA1_Channel5_IRQHandler
315 PUBWEAK DMA1_Channel6_IRQHandler
316 SECTION .text:CODE:REORDER:NOROOT(1)
317 DMA1_Channel6_IRQHandler
318 B DMA1_Channel6_IRQHandler
321 PUBWEAK DMA1_Channel7_IRQHandler
322 SECTION .text:CODE:REORDER:NOROOT(1)
323 DMA1_Channel7_IRQHandler
324 B DMA1_Channel7_IRQHandler
327 PUBWEAK ADC1_IRQHandler
328 SECTION .text:CODE:REORDER:NOROOT(1)
333 PUBWEAK USB_HP_IRQHandler
334 SECTION .text:CODE:REORDER:NOROOT(1)
339 PUBWEAK USB_LP_IRQHandler
340 SECTION .text:CODE:REORDER:NOROOT(1)
345 PUBWEAK DAC_IRQHandler
346 SECTION .text:CODE:REORDER:NOROOT(1)
351 PUBWEAK COMP_IRQHandler
352 SECTION .text:CODE:REORDER:NOROOT(1)
357 PUBWEAK EXTI9_5_IRQHandler
358 SECTION .text:CODE:REORDER:NOROOT(1)
363 PUBWEAK LCD_IRQHandler
364 SECTION .text:CODE:REORDER:NOROOT(1)
369 PUBWEAK TIM9_IRQHandler
370 SECTION .text:CODE:REORDER:NOROOT(1)
375 PUBWEAK TIM10_IRQHandler
376 SECTION .text:CODE:REORDER:NOROOT(1)
381 PUBWEAK TIM11_IRQHandler
382 SECTION .text:CODE:REORDER:NOROOT(1)
387 PUBWEAK TIM2_IRQHandler
388 SECTION .text:CODE:REORDER:NOROOT(1)
393 PUBWEAK TIM3_IRQHandler
394 SECTION .text:CODE:REORDER:NOROOT(1)
399 PUBWEAK TIM4_IRQHandler
400 SECTION .text:CODE:REORDER:NOROOT(1)
405 PUBWEAK I2C1_EV_IRQHandler
406 SECTION .text:CODE:REORDER:NOROOT(1)
411 PUBWEAK I2C1_ER_IRQHandler
412 SECTION .text:CODE:REORDER:NOROOT(1)
417 PUBWEAK I2C2_EV_IRQHandler
418 SECTION .text:CODE:REORDER:NOROOT(1)
423 PUBWEAK I2C2_ER_IRQHandler
424 SECTION .text:CODE:REORDER:NOROOT(1)
429 PUBWEAK SPI1_IRQHandler
430 SECTION .text:CODE:REORDER:NOROOT(1)
435 PUBWEAK SPI2_IRQHandler
436 SECTION .text:CODE:REORDER:NOROOT(1)
441 PUBWEAK USART1_IRQHandler
442 SECTION .text:CODE:REORDER:NOROOT(1)
447 PUBWEAK USART2_IRQHandler
448 SECTION .text:CODE:REORDER:NOROOT(1)
453 PUBWEAK USART3_IRQHandler
454 SECTION .text:CODE:REORDER:NOROOT(1)
459 PUBWEAK EXTI15_10_IRQHandler
460 SECTION .text:CODE:REORDER:NOROOT(1)
462 B EXTI15_10_IRQHandler
465 PUBWEAK RTC_Alarm_IRQHandler
466 SECTION .text:CODE:REORDER:NOROOT(1)
468 B RTC_Alarm_IRQHandler
471 PUBWEAK USB_FS_WKUP_IRQHandler
472 SECTION .text:CODE:REORDER:NOROOT(1)
473 USB_FS_WKUP_IRQHandler
474 B USB_FS_WKUP_IRQHandler
477 PUBWEAK TIM6_IRQHandler
478 SECTION .text:CODE:REORDER:NOROOT(1)
483 PUBWEAK TIM7_IRQHandler
484 SECTION .text:CODE:REORDER:NOROOT(1)
489 PUBWEAK TIM5_IRQHandler
490 SECTION .text:CODE:REORDER:NOROOT(1)
494 PUBWEAK SPI3_IRQHandler
495 SECTION .text:CODE:REORDER:NOROOT(1)
500 PUBWEAK DMA2_Channel1_IRQHandler
501 SECTION .text:CODE:REORDER:NOROOT(1)
502 DMA2_Channel1_IRQHandler
503 B DMA2_Channel1_IRQHandler
506 PUBWEAK DMA2_Channel2_IRQHandler
507 SECTION .text:CODE:REORDER:NOROOT(1)
508 DMA2_Channel2_IRQHandler
509 B DMA2_Channel2_IRQHandler
512 PUBWEAK DMA2_Channel3_IRQHandler
513 SECTION .text:CODE:REORDER:NOROOT(1)
514 DMA2_Channel3_IRQHandler
515 B DMA2_Channel3_IRQHandler
518 PUBWEAK DMA2_Channel4_IRQHandler
519 SECTION .text:CODE:REORDER:NOROOT(1)
520 DMA2_Channel4_IRQHandler
521 B DMA2_Channel4_IRQHandler
524 PUBWEAK DMA2_Channel5_IRQHandler
525 SECTION .text:CODE:REORDER:NOROOT(1)
526 DMA2_Channel5_IRQHandler
527 B DMA2_Channel5_IRQHandler
530 PUBWEAK COMP_ACQ_IRQHandler
531 SECTION .text:CODE:REORDER:NOROOT(1)
533 B COMP_ACQ_IRQHandler
536 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/