1 ;/******************** (C) COPYRIGHT 2012 STMicroelectronics ********************
\r
2 ;* File Name : startup_stm32f0xx.s
\r
3 ;* Author : MCD Application Team
\r
4 ;* Version : V1.0.0RC1
\r
5 ;* Date : 27-January-2012
\r
6 ;* Description : STM32F0xx Devices vector table for EWARM toolchain.
\r
7 ;* This module performs:
\r
8 ;* - Set the initial SP
\r
9 ;* - Set the initial PC == __iar_program_start,
\r
10 ;* - Set the vector table entries with the exceptions ISR
\r
12 ;* After Reset the Cortex-M0 processor is in Thread mode,
\r
13 ;* priority is Privileged, and the Stack is set to Main.
\r
14 ;********************************************************************************
\r
15 ;* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
\r
16 ;* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
\r
17 ;* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
\r
18 ;* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
\r
19 ;* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
\r
20 ;* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
\r
21 ;* FOR MORE INFORMATION PLEASE READ CAREFULLY THE LICENSE AGREEMENT FILE
\r
22 ;* LOCATED IN THE ROOT DIRECTORY OF THIS FIRMWARE PACKAGE.
\r
23 ;*******************************************************************************/
\r
26 ; The modules in this file are included in the libraries, and may be replaced
\r
27 ; by any user-defined modules that define the PUBLIC symbol _program_start or
\r
28 ; a user defined start symbol.
\r
29 ; To override the cstartup defined in the library, simply add your modified
\r
30 ; version to the workbench project.
\r
32 ; The vector table is normally located at address 0.
\r
33 ; When debugging in RAM, it can be located in RAM, aligned to at least 2^6.
\r
34 ; The name "__vector_table" has special meaning for C-SPY:
\r
35 ; it is where the SP start value is found, and the NVIC vector
\r
36 ; table register (VTOR) is initialized to this address if != 0.
\r
43 ;; Forward declaration of sections.
\r
44 SECTION CSTACK:DATA:NOROOT(3)
\r
46 SECTION .intvec:CODE:NOROOT(2)
\r
48 EXTERN __iar_program_start
\r
50 PUBLIC __vector_table
\r
55 DCD Reset_Handler ; Reset Handler
\r
57 DCD NMI_Handler ; NMI Handler
\r
58 DCD HardFault_Handler ; Hard Fault Handler
\r
66 DCD SVC_Handler ; SVCall Handler
\r
69 DCD PendSV_Handler ; PendSV Handler
\r
70 DCD SysTick_Handler ; SysTick Handler
\r
72 ; External Interrupts
\r
73 DCD WWDG_IRQHandler ; Window Watchdog
\r
74 DCD PVD_IRQHandler ; PVD through EXTI Line detect
\r
75 DCD RTC_IRQHandler ; RTC through EXTI Line
\r
76 DCD FLASH_IRQHandler ; FLASH
\r
77 DCD RCC_IRQHandler ; RCC
\r
78 DCD EXTI0_1_IRQHandler ; EXTI Line 0 and 1
\r
79 DCD EXTI2_3_IRQHandler ; EXTI Line 2 and 3
\r
80 DCD EXTI4_15_IRQHandler ; EXTI Line 4 to 15
\r
81 DCD TS_IRQHandler ; TS
\r
82 DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1
\r
83 DCD DMA1_Channel2_3_IRQHandler ; DMA1 Channel 2 and Channel 3
\r
84 DCD DMA1_Channel4_5_IRQHandler ; DMA1 Channel 4 and Channel 5
\r
85 DCD ADC1_COMP_IRQHandler ; ADC1, COMP1 and COMP2
\r
86 DCD TIM1_BRK_UP_TRG_COM_IRQHandler ; TIM1 Break, Update, Trigger and Commutation
\r
87 DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare
\r
88 DCD TIM2_IRQHandler ; TIM2
\r
89 DCD TIM3_IRQHandler ; TIM3
\r
90 DCD TIM6_DAC_IRQHandler ; TIM6 and DAC
\r
92 DCD TIM14_IRQHandler ; TIM14
\r
93 DCD TIM15_IRQHandler ; TIM15
\r
94 DCD TIM16_IRQHandler ; TIM16
\r
95 DCD TIM17_IRQHandler ; TIM17
\r
96 DCD I2C1_IRQHandler ; I2C1
\r
97 DCD I2C2_IRQHandler ; I2C2
\r
98 DCD SPI1_IRQHandler ; SPI1
\r
99 DCD SPI2_IRQHandler ; SPI2
\r
100 DCD USART1_IRQHandler ; USART1
\r
101 DCD USART2_IRQHandler ; USART2
\r
103 DCD CEC_IRQHandler ; CEC
\r
106 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
108 ;; Default interrupt handlers.
\r
112 EXTERN __ICFEDIT_region_RAM_start__
\r
113 EXTERN __ICFEDIT_region_RAM_end__
\r
114 SECTION `.text`:CODE:NOROOT(2)
\r
117 DC32 __ICFEDIT_region_RAM_start__
\r
119 DC32 __ICFEDIT_region_RAM_end__
\r
123 PUBLIC Reset_Handler
\r
124 SECTION .text:CODE:REORDER(2)
\r
127 LDR R0,=??DataTable22
\r
129 LDR R1,=??DataTable22_1
\r
138 LDR R0, =SystemInit
\r
140 LDR R0, =__iar_program_start
\r
144 PUBWEAK NMI_Handler
\r
145 SECTION .text:CODE:NOROOT:REORDER(1)
\r
150 PUBWEAK HardFault_Handler
\r
151 SECTION .text:CODE:NOROOT:REORDER(1)
\r
153 B HardFault_Handler
\r
156 PUBWEAK SVC_Handler
\r
157 SECTION .text:CODE:NOROOT:REORDER(1)
\r
162 PUBWEAK PendSV_Handler
\r
163 SECTION .text:CODE:NOROOT:REORDER(1)
\r
168 PUBWEAK SysTick_Handler
\r
169 SECTION .text:CODE:NOROOT:REORDER(1)
\r
174 PUBWEAK WWDG_IRQHandler
\r
175 SECTION .text:CODE:NOROOT:REORDER(1)
\r
180 PUBWEAK PVD_IRQHandler
\r
181 SECTION .text:CODE:NOROOT:REORDER(1)
\r
186 PUBWEAK RTC_IRQHandler
\r
187 SECTION .text:CODE:NOROOT:REORDER(1)
\r
192 PUBWEAK FLASH_IRQHandler
\r
193 SECTION .text:CODE:NOROOT:REORDER(1)
\r
198 PUBWEAK RCC_IRQHandler
\r
199 SECTION .text:CODE:NOROOT:REORDER(1)
\r
204 PUBWEAK EXTI0_1_IRQHandler
\r
205 SECTION .text:CODE:NOROOT:REORDER(1)
\r
207 B EXTI0_1_IRQHandler
\r
210 PUBWEAK EXTI2_3_IRQHandler
\r
211 SECTION .text:CODE:NOROOT:REORDER(1)
\r
213 B EXTI2_3_IRQHandler
\r
216 PUBWEAK EXTI4_15_IRQHandler
\r
217 SECTION .text:CODE:NOROOT:REORDER(1)
\r
218 EXTI4_15_IRQHandler
\r
219 B EXTI4_15_IRQHandler
\r
222 PUBWEAK TS_IRQHandler
\r
223 SECTION .text:CODE:NOROOT:REORDER(1)
\r
228 PUBWEAK DMA1_Channel1_IRQHandler
\r
229 SECTION .text:CODE:NOROOT:REORDER(1)
\r
230 DMA1_Channel1_IRQHandler
\r
231 B DMA1_Channel1_IRQHandler
\r
234 PUBWEAK DMA1_Channel2_3_IRQHandler
\r
235 SECTION .text:CODE:NOROOT:REORDER(1)
\r
236 DMA1_Channel2_3_IRQHandler
\r
237 B DMA1_Channel2_3_IRQHandler
\r
240 PUBWEAK DMA1_Channel4_5_IRQHandler
\r
241 SECTION .text:CODE:NOROOT:REORDER(1)
\r
242 DMA1_Channel4_5_IRQHandler
\r
243 B DMA1_Channel4_5_IRQHandler
\r
246 PUBWEAK ADC1_COMP_IRQHandler
\r
247 SECTION .text:CODE:NOROOT:REORDER(1)
\r
248 ADC1_COMP_IRQHandler
\r
249 B ADC1_COMP_IRQHandler
\r
252 PUBWEAK TIM1_BRK_UP_TRG_COM_IRQHandler
\r
253 SECTION .text:CODE:NOROOT:REORDER(1)
\r
254 TIM1_BRK_UP_TRG_COM_IRQHandler
\r
255 B TIM1_BRK_UP_TRG_COM_IRQHandler
\r
258 PUBWEAK TIM1_CC_IRQHandler
\r
259 SECTION .text:CODE:NOROOT:REORDER(1)
\r
261 B TIM1_CC_IRQHandler
\r
264 PUBWEAK TIM2_IRQHandler
\r
265 SECTION .text:CODE:NOROOT:REORDER(1)
\r
270 PUBWEAK TIM3_IRQHandler
\r
271 SECTION .text:CODE:NOROOT:REORDER(1)
\r
276 PUBWEAK TIM6_DAC_IRQHandler
\r
277 SECTION .text:CODE:NOROOT:REORDER(1)
\r
278 TIM6_DAC_IRQHandler
\r
279 B TIM6_DAC_IRQHandler
\r
282 PUBWEAK TIM14_IRQHandler
\r
283 SECTION .text:CODE:NOROOT:REORDER(1)
\r
288 PUBWEAK TIM15_IRQHandler
\r
289 SECTION .text:CODE:NOROOT:REORDER(1)
\r
294 PUBWEAK TIM16_IRQHandler
\r
295 SECTION .text:CODE:NOROOT:REORDER(1)
\r
300 PUBWEAK TIM17_IRQHandler
\r
301 SECTION .text:CODE:NOROOT:REORDER(1)
\r
306 PUBWEAK I2C1_IRQHandler
\r
307 SECTION .text:CODE:NOROOT:REORDER(1)
\r
312 PUBWEAK I2C2_IRQHandler
\r
313 SECTION .text:CODE:NOROOT:REORDER(1)
\r
318 PUBWEAK SPI1_IRQHandler
\r
319 SECTION .text:CODE:NOROOT:REORDER(1)
\r
324 PUBWEAK SPI2_IRQHandler
\r
325 SECTION .text:CODE:NOROOT:REORDER(1)
\r
330 PUBWEAK USART1_IRQHandler
\r
331 SECTION .text:CODE:NOROOT:REORDER(1)
\r
333 B USART1_IRQHandler
\r
336 PUBWEAK USART2_IRQHandler
\r
337 SECTION .text:CODE:NOROOT:REORDER(1)
\r
339 B USART2_IRQHandler
\r
342 PUBWEAK CEC_IRQHandler
\r
343 SECTION .text:CODE:NOROOT:REORDER(1)
\r
348 /******************* (C) COPYRIGHT 2012 STMicroelectronics *****END OF FILE****/
\r