Rev Author Line No. Line
3328 povik 1 ;/******************** (C) COPYRIGHT 2009 STMicroelectronics ********************
2 ;* File Name : startup_stm32f10x_hd.s
3 ;* Author : MCD Application Team
4 ;* Version : V3.1.2
5 ;* Date : 09/28/2009
6 ;* Description : STM32F10x High Density Devices vector table for EWARM5.x
7 ;* toolchain.
8 ;* This module performs:
9 ;* - Set the initial SP
10 ;* - Set the initial PC == __iar_program_start,
11 ;* - Set the vector table entries with the exceptions ISR address,
12 ;* - Configure external SRAM mounted on STM3210E-EVAL board
13 ;* to be used as data memory (optional, to be enabled by user)
14 ;* After Reset the Cortex-M3 processor is in Thread mode,
15 ;* priority is Privileged, and the Stack is set to Main.
16 ;********************************************************************************
17 ;* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
18 ;* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
19 ;* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
20 ;* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
21 ;* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
22 ;* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
23 ;*******************************************************************************/
24 ;
25 ;
26 ; The modules in this file are included in the libraries, and may be replaced
27 ; by any user-defined modules that define the PUBLIC symbol _program_start or
28 ; a user defined start symbol.
29 ; To override the cstartup defined in the library, simply add your modified
30 ; version to the workbench project.
31 ;
32 ; The vector table is normally located at address 0.
33 ; When debugging in RAM, it can be located in RAM, aligned to at least 2^6.
34 ; The name "__vector_table" has special meaning for C-SPY:
35 ; it is where the SP start value is found, and the NVIC vector
36 ; table register (VTOR) is initialized to this address if != 0.
37 ;
38 ; Cortex-M version
39 ;
40  
41 MODULE ?cstartup
42  
43 ;; ICODE is the same segment as cstartup. By placing __low_level_init
44 ;; in the same segment, we make sure it can be reached with BL. */
45  
46 SECTION CSTACK:DATA:NOROOT(3)
47 SECTION .icode:CODE:NOROOT(2)
48 PUBLIC __low_level_init
49  
50 PUBWEAK SystemInit_ExtMemCtl
51 SECTION .text:CODE:REORDER(2)
52 THUMB
53 SystemInit_ExtMemCtl
54 BX LR
55  
56 __low_level_init:
57  
58 ;; Initialize hardware.
59 LDR R0, = SystemInit_ExtMemCtl ; initialize external memory controller
60 MOV R11, LR
61 BLX R0
62 LDR R1, =sfe(CSTACK) ; restore original stack pointer
63 MSR MSP, R1
64 MOV R0,#1
65 ;; Return with BX to be independent of mode of caller
66 BX R11
67  
68 ;; Forward declaration of sections.
69 SECTION .intvec:CODE:NOROOT(2)
70  
71 EXTERN __iar_program_start
72 PUBLIC __vector_table
73  
74 DATA
75 __intial_sp EQU 0x20000400
76 __vector_table
77 DCD __intial_sp
78 DCD __iar_program_start
79  
80 DCD NMI_Handler ; NMI Handler
81 DCD HardFault_Handler ; Hard Fault Handler
82 DCD MemManage_Handler ; MPU Fault Handler
83 DCD BusFault_Handler ; Bus Fault Handler
84 DCD UsageFault_Handler ; Usage Fault Handler
85 DCD 0 ; Reserved
86 DCD 0 ; Reserved
87 DCD 0 ; Reserved
88 DCD 0 ; Reserved
89 DCD SVC_Handler ; SVCall Handler
90 DCD DebugMon_Handler ; Debug Monitor Handler
91 DCD 0 ; Reserved
92 DCD PendSV_Handler ; PendSV Handler
93 DCD SysTick_Handler ; SysTick Handler
94  
95 ; External Interrupts
96 DCD WWDG_IRQHandler ; Window Watchdog
97 DCD PVD_IRQHandler ; PVD through EXTI Line detect
98 DCD TAMPER_IRQHandler ; Tamper
99 DCD RTC_IRQHandler ; RTC
100 DCD FLASH_IRQHandler ; Flash
101 DCD RCC_IRQHandler ; RCC
102 DCD EXTI0_IRQHandler ; EXTI Line 0
103 DCD EXTI1_IRQHandler ; EXTI Line 1
104 DCD EXTI2_IRQHandler ; EXTI Line 2
105 DCD EXTI3_IRQHandler ; EXTI Line 3
106 DCD EXTI4_IRQHandler ; EXTI Line 4
107 DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1
108 DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2
109 DCD DMA1_Channel3_IRQHandler ; DMA1 Channel 3
110 DCD DMA1_Channel4_IRQHandler ; DMA1 Channel 4
111 DCD DMA1_Channel5_IRQHandler ; DMA1 Channel 5
112 DCD DMA1_Channel6_IRQHandler ; DMA1 Channel 6
113 DCD DMA1_Channel7_IRQHandler ; DMA1 Channel 7
114 DCD ADC1_2_IRQHandler ; ADC1 & ADC2
115 DCD USB_HP_CAN1_TX_IRQHandler ; USB High Priority or CAN1 TX
116 DCD USB_LP_CAN1_RX0_IRQHandler ; USB Low Priority or CAN1 RX0
117 DCD CAN1_RX1_IRQHandler ; CAN1 RX1
118 DCD CAN1_SCE_IRQHandler ; CAN1 SCE
119 DCD EXTI9_5_IRQHandler ; EXTI Line 9..5
120 DCD TIM1_BRK_IRQHandler ; TIM1 Break
121 DCD TIM1_UP_IRQHandler ; TIM1 Update
122 DCD TIM1_TRG_COM_IRQHandler ; TIM1 Trigger and Commutation
123 DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare
124 DCD TIM2_IRQHandler ; TIM2
125 DCD TIM3_IRQHandler ; TIM3
126 DCD TIM4_IRQHandler ; TIM4
127 DCD I2C1_EV_IRQHandler ; I2C1 Event
128 DCD I2C1_ER_IRQHandler ; I2C1 Error
129 DCD I2C2_EV_IRQHandler ; I2C2 Event
130 DCD I2C2_ER_IRQHandler ; I2C2 Error
131 DCD SPI1_IRQHandler ; SPI1
132 DCD SPI2_IRQHandler ; SPI2
133 DCD USART1_IRQHandler ; USART1
134 DCD USART2_IRQHandler ; USART2
135 DCD USART3_IRQHandler ; USART3
136 DCD EXTI15_10_IRQHandler ; EXTI Line 15..10
137 DCD RTCAlarm_IRQHandler ; RTC Alarm through EXTI Line
138 DCD USBWakeUp_IRQHandler ; USB Wakeup from suspend
139 DCD TIM8_BRK_IRQHandler ; TIM8 Break
140 DCD TIM8_UP_IRQHandler ; TIM8 Update
141 DCD TIM8_TRG_COM_IRQHandler ; TIM8 Trigger and Commutation
142 DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare
143 DCD ADC3_IRQHandler ; ADC3
144 DCD FSMC_IRQHandler ; FSMC
145 DCD SDIO_IRQHandler ; SDIO
146 DCD TIM5_IRQHandler ; TIM5
147 DCD SPI3_IRQHandler ; SPI3
148 DCD UART4_IRQHandler ; UART4
149 DCD UART5_IRQHandler ; UART5
150 DCD TIM6_IRQHandler ; TIM6
151 DCD TIM7_IRQHandler ; TIM7
152 DCD DMA2_Channel1_IRQHandler ; DMA2 Channel1
153 DCD DMA2_Channel2_IRQHandler ; DMA2 Channel2
154 DCD DMA2_Channel3_IRQHandler ; DMA2 Channel3
155 DCD DMA2_Channel4_5_IRQHandler ; DMA2 Channel4 & Channel5
156 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
157 ;;
158 ;; Default interrupt handlers.
159 ;;
160 THUMB
161  
162 PUBWEAK NMI_Handler
163 SECTION .text:CODE:REORDER(1)
164 NMI_Handler
165 B NMI_Handler
166  
167 PUBWEAK HardFault_Handler
168 SECTION .text:CODE:REORDER(1)
169 HardFault_Handler
170 B HardFault_Handler
171  
172 PUBWEAK MemManage_Handler
173 SECTION .text:CODE:REORDER(1)
174 MemManage_Handler
175 B MemManage_Handler
176  
177 PUBWEAK BusFault_Handler
178 SECTION .text:CODE:REORDER(1)
179 BusFault_Handler
180 B BusFault_Handler
181  
182 PUBWEAK UsageFault_Handler
183 SECTION .text:CODE:REORDER(1)
184 UsageFault_Handler
185 B UsageFault_Handler
186  
187 PUBWEAK SVC_Handler
188 SECTION .text:CODE:REORDER(1)
189 SVC_Handler
190 B SVC_Handler
191  
192 PUBWEAK DebugMon_Handler
193 SECTION .text:CODE:REORDER(1)
194 DebugMon_Handler
195 B DebugMon_Handler
196  
197 PUBWEAK PendSV_Handler
198 SECTION .text:CODE:REORDER(1)
199 PendSV_Handler
200 B PendSV_Handler
201  
202 PUBWEAK SysTick_Handler
203 SECTION .text:CODE:REORDER(1)
204 SysTick_Handler
205 B SysTick_Handler
206  
207 PUBWEAK WWDG_IRQHandler
208 SECTION .text:CODE:REORDER(1)
209 WWDG_IRQHandler
210 B WWDG_IRQHandler
211  
212 PUBWEAK PVD_IRQHandler
213 SECTION .text:CODE:REORDER(1)
214 PVD_IRQHandler
215 B PVD_IRQHandler
216  
217 PUBWEAK TAMPER_IRQHandler
218 SECTION .text:CODE:REORDER(1)
219 TAMPER_IRQHandler
220 B TAMPER_IRQHandler
221  
222 PUBWEAK RTC_IRQHandler
223 SECTION .text:CODE:REORDER(1)
224 RTC_IRQHandler
225 B RTC_IRQHandler
226  
227 PUBWEAK FLASH_IRQHandler
228 SECTION .text:CODE:REORDER(1)
229 FLASH_IRQHandler
230 B FLASH_IRQHandler
231  
232 PUBWEAK RCC_IRQHandler
233 SECTION .text:CODE:REORDER(1)
234 RCC_IRQHandler
235 B RCC_IRQHandler
236  
237 PUBWEAK EXTI0_IRQHandler
238 SECTION .text:CODE:REORDER(1)
239 EXTI0_IRQHandler
240 B EXTI0_IRQHandler
241  
242 PUBWEAK EXTI1_IRQHandler
243 SECTION .text:CODE:REORDER(1)
244 EXTI1_IRQHandler
245 B EXTI1_IRQHandler
246  
247 PUBWEAK EXTI2_IRQHandler
248 SECTION .text:CODE:REORDER(1)
249 EXTI2_IRQHandler
250 B EXTI2_IRQHandler
251  
252 PUBWEAK EXTI3_IRQHandler
253 SECTION .text:CODE:REORDER(1)
254 EXTI3_IRQHandler
255 B EXTI3_IRQHandler
256  
257 PUBWEAK EXTI4_IRQHandler
258 SECTION .text:CODE:REORDER(1)
259 EXTI4_IRQHandler
260 B EXTI4_IRQHandler
261  
262 PUBWEAK DMA1_Channel1_IRQHandler
263 SECTION .text:CODE:REORDER(1)
264 DMA1_Channel1_IRQHandler
265 B DMA1_Channel1_IRQHandler
266  
267 PUBWEAK DMA1_Channel2_IRQHandler
268 SECTION .text:CODE:REORDER(1)
269 DMA1_Channel2_IRQHandler
270 B DMA1_Channel2_IRQHandler
271  
272 PUBWEAK DMA1_Channel3_IRQHandler
273 SECTION .text:CODE:REORDER(1)
274 DMA1_Channel3_IRQHandler
275 B DMA1_Channel3_IRQHandler
276  
277 PUBWEAK DMA1_Channel4_IRQHandler
278 SECTION .text:CODE:REORDER(1)
279 DMA1_Channel4_IRQHandler
280 B DMA1_Channel4_IRQHandler
281  
282 PUBWEAK DMA1_Channel5_IRQHandler
283 SECTION .text:CODE:REORDER(1)
284 DMA1_Channel5_IRQHandler
285 B DMA1_Channel5_IRQHandler
286  
287 PUBWEAK DMA1_Channel6_IRQHandler
288 SECTION .text:CODE:REORDER(1)
289 DMA1_Channel6_IRQHandler
290 B DMA1_Channel6_IRQHandler
291  
292 PUBWEAK DMA1_Channel7_IRQHandler
293 SECTION .text:CODE:REORDER(1)
294 DMA1_Channel7_IRQHandler
295 B DMA1_Channel7_IRQHandler
296  
297 PUBWEAK ADC1_2_IRQHandler
298 SECTION .text:CODE:REORDER(1)
299 ADC1_2_IRQHandler
300 B ADC1_2_IRQHandler
301  
302 PUBWEAK USB_HP_CAN1_TX_IRQHandler
303 SECTION .text:CODE:REORDER(1)
304 USB_HP_CAN1_TX_IRQHandler
305 B USB_HP_CAN1_TX_IRQHandler
306  
307 PUBWEAK USB_LP_CAN1_RX0_IRQHandler
308 SECTION .text:CODE:REORDER(1)
309 USB_LP_CAN1_RX0_IRQHandler
310 B USB_LP_CAN1_RX0_IRQHandler
311  
312 PUBWEAK CAN1_RX1_IRQHandler
313 SECTION .text:CODE:REORDER(1)
314 CAN1_RX1_IRQHandler
315 B CAN1_RX1_IRQHandler
316  
317 PUBWEAK CAN1_SCE_IRQHandler
318 SECTION .text:CODE:REORDER(1)
319 CAN1_SCE_IRQHandler
320 B CAN1_SCE_IRQHandler
321  
322 PUBWEAK EXTI9_5_IRQHandler
323 SECTION .text:CODE:REORDER(1)
324 EXTI9_5_IRQHandler
325 B EXTI9_5_IRQHandler
326  
327 PUBWEAK TIM1_BRK_IRQHandler
328 SECTION .text:CODE:REORDER(1)
329 TIM1_BRK_IRQHandler
330 B TIM1_BRK_IRQHandler
331  
332 PUBWEAK TIM1_UP_IRQHandler
333 SECTION .text:CODE:REORDER(1)
334 TIM1_UP_IRQHandler
335 B TIM1_UP_IRQHandler
336  
337 PUBWEAK TIM1_TRG_COM_IRQHandler
338 SECTION .text:CODE:REORDER(1)
339 TIM1_TRG_COM_IRQHandler
340 B TIM1_TRG_COM_IRQHandler
341  
342 PUBWEAK TIM1_CC_IRQHandler
343 SECTION .text:CODE:REORDER(1)
344 TIM1_CC_IRQHandler
345 B TIM1_CC_IRQHandler
346  
347 PUBWEAK TIM2_IRQHandler
348 SECTION .text:CODE:REORDER(1)
349 TIM2_IRQHandler
350 B TIM2_IRQHandler
351  
352 PUBWEAK TIM3_IRQHandler
353 SECTION .text:CODE:REORDER(1)
354 TIM3_IRQHandler
355 B TIM3_IRQHandler
356  
357 PUBWEAK TIM4_IRQHandler
358 SECTION .text:CODE:REORDER(1)
359 TIM4_IRQHandler
360 B TIM4_IRQHandler
361  
362 PUBWEAK I2C1_EV_IRQHandler
363 SECTION .text:CODE:REORDER(1)
364 I2C1_EV_IRQHandler
365 B I2C1_EV_IRQHandler
366  
367 PUBWEAK I2C1_ER_IRQHandler
368 SECTION .text:CODE:REORDER(1)
369 I2C1_ER_IRQHandler
370 B I2C1_ER_IRQHandler
371  
372 PUBWEAK I2C2_EV_IRQHandler
373 SECTION .text:CODE:REORDER(1)
374 I2C2_EV_IRQHandler
375 B I2C2_EV_IRQHandler
376  
377 PUBWEAK I2C2_ER_IRQHandler
378 SECTION .text:CODE:REORDER(1)
379 I2C2_ER_IRQHandler
380 B I2C2_ER_IRQHandler
381  
382 PUBWEAK SPI1_IRQHandler
383 SECTION .text:CODE:REORDER(1)
384 SPI1_IRQHandler
385 B SPI1_IRQHandler
386  
387 PUBWEAK SPI2_IRQHandler
388 SECTION .text:CODE:REORDER(1)
389 SPI2_IRQHandler
390 B SPI2_IRQHandler
391  
392 PUBWEAK USART1_IRQHandler
393 SECTION .text:CODE:REORDER(1)
394 USART1_IRQHandler
395 B USART1_IRQHandler
396  
397 PUBWEAK USART2_IRQHandler
398 SECTION .text:CODE:REORDER(1)
399 USART2_IRQHandler
400 B USART2_IRQHandler
401  
402 PUBWEAK USART3_IRQHandler
403 SECTION .text:CODE:REORDER(1)
404 USART3_IRQHandler
405 B USART3_IRQHandler
406  
407 PUBWEAK EXTI15_10_IRQHandler
408 SECTION .text:CODE:REORDER(1)
409 EXTI15_10_IRQHandler
410 B EXTI15_10_IRQHandler
411  
412 PUBWEAK RTCAlarm_IRQHandler
413 SECTION .text:CODE:REORDER(1)
414 RTCAlarm_IRQHandler
415 B RTCAlarm_IRQHandler
416  
417 PUBWEAK USBWakeUp_IRQHandler
418 SECTION .text:CODE:REORDER(1)
419 USBWakeUp_IRQHandler
420 B USBWakeUp_IRQHandler
421  
422 PUBWEAK TIM8_BRK_IRQHandler
423 SECTION .text:CODE:REORDER(1)
424 TIM8_BRK_IRQHandler
425 B TIM8_BRK_IRQHandler
426  
427 PUBWEAK TIM8_UP_IRQHandler
428 SECTION .text:CODE:REORDER(1)
429 TIM8_UP_IRQHandler
430 B TIM8_UP_IRQHandler
431  
432 PUBWEAK TIM8_TRG_COM_IRQHandler
433 SECTION .text:CODE:REORDER(1)
434 TIM8_TRG_COM_IRQHandler
435 B TIM8_TRG_COM_IRQHandler
436  
437 PUBWEAK TIM8_CC_IRQHandler
438 SECTION .text:CODE:REORDER(1)
439 TIM8_CC_IRQHandler
440 B TIM8_CC_IRQHandler
441  
442 PUBWEAK ADC3_IRQHandler
443 SECTION .text:CODE:REORDER(1)
444 ADC3_IRQHandler
445 B ADC3_IRQHandler
446  
447 PUBWEAK FSMC_IRQHandler
448 SECTION .text:CODE:REORDER(1)
449 FSMC_IRQHandler
450 B FSMC_IRQHandler
451  
452 PUBWEAK SDIO_IRQHandler
453 SECTION .text:CODE:REORDER(1)
454 SDIO_IRQHandler
455 B SDIO_IRQHandler
456  
457 PUBWEAK TIM5_IRQHandler
458 SECTION .text:CODE:REORDER(1)
459 TIM5_IRQHandler
460 B TIM5_IRQHandler
461  
462 PUBWEAK SPI3_IRQHandler
463 SECTION .text:CODE:REORDER(1)
464 SPI3_IRQHandler
465 B SPI3_IRQHandler
466  
467 PUBWEAK UART4_IRQHandler
468 SECTION .text:CODE:REORDER(1)
469 UART4_IRQHandler
470 B UART4_IRQHandler
471  
472 PUBWEAK UART5_IRQHandler
473 SECTION .text:CODE:REORDER(1)
474 UART5_IRQHandler
475 B UART5_IRQHandler
476  
477 PUBWEAK TIM6_IRQHandler
478 SECTION .text:CODE:REORDER(1)
479 TIM6_IRQHandler
480 B TIM6_IRQHandler
481  
482 PUBWEAK TIM7_IRQHandler
483 SECTION .text:CODE:REORDER(1)
484 TIM7_IRQHandler
485 B TIM7_IRQHandler
486  
487 PUBWEAK DMA2_Channel1_IRQHandler
488 SECTION .text:CODE:REORDER(1)
489 DMA2_Channel1_IRQHandler
490 B DMA2_Channel1_IRQHandler
491  
492 PUBWEAK DMA2_Channel2_IRQHandler
493 SECTION .text:CODE:REORDER(1)
494 DMA2_Channel2_IRQHandler
495 B DMA2_Channel2_IRQHandler
496  
497 PUBWEAK DMA2_Channel3_IRQHandler
498 SECTION .text:CODE:REORDER(1)
499 DMA2_Channel3_IRQHandler
500 B DMA2_Channel3_IRQHandler
501  
502 PUBWEAK DMA2_Channel4_5_IRQHandler
503 SECTION .text:CODE:REORDER(1)
504 DMA2_Channel4_5_IRQHandler
505 B DMA2_Channel4_5_IRQHandler
506  
507  
508 END
509  
510 /******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/