F1 and F3 HAL / LL libraries
[betaflight.git] / lib / main / STM32F1 / Drivers / CMSIS / Device / ST / STM32F1xx / Source / Templates / iar / startup_stm32f103xg.s
blobaa144053541d48eae6607e93231d494d2c27a12c
1 ;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
2 ;* File Name : startup_stm32f103xg.s
3 ;* Author : MCD Application Team
4 ;* Version : V4.2.0
5 ;* Date : 31-March-2017
6 ;* Description : STM32F103xG Performances Line Devices vector table for EWARM
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 ;* After Reset the Cortex-M3 processor is in Thread mode,
13 ;* priority is Privileged, and the Stack is set to Main.
14 ;********************************************************************************
15 ;*
16 ;* <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
17 ;*
18 ;* Redistribution and use in source and binary forms, with or without modification,
19 ;* are permitted provided that the following conditions are met:
20 ;* 1. Redistributions of source code must retain the above copyright notice,
21 ;* this list of conditions and the following disclaimer.
22 ;* 2. Redistributions in binary form must reproduce the above copyright notice,
23 ;* this list of conditions and the following disclaimer in the documentation
24 ;* and/or other materials provided with the distribution.
25 ;* 3. Neither the name of STMicroelectronics nor the names of its contributors
26 ;* may be used to endorse or promote products derived from this software
27 ;* without specific prior written permission.
28 ;*
29 ;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
30 ;* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
31 ;* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
32 ;* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
33 ;* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
34 ;* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
35 ;* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
36 ;* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
37 ;* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
38 ;* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
39 ;*
40 ;*******************************************************************************
43 ; The modules in this file are included in the libraries, and may be replaced
44 ; by any user-defined modules that define the PUBLIC symbol _program_start or
45 ; a user defined start symbol.
46 ; To override the cstartup defined in the library, simply add your modified
47 ; version to the workbench project.
49 ; The vector table is normally located at address 0.
50 ; When debugging in RAM, it can be located in RAM, aligned to at least 2^6.
51 ; The name "__vector_table" has special meaning for C-SPY:
52 ; it is where the SP start value is found, and the NVIC vector
53 ; table register (VTOR) is initialized to this address if != 0.
55 ; Cortex-M version
58 MODULE ?cstartup
60 ;; Forward declaration of sections.
61 SECTION CSTACK:DATA:NOROOT(3)
63 SECTION .intvec:CODE:NOROOT(2)
65 EXTERN __iar_program_start
66 EXTERN SystemInit
67 PUBLIC __vector_table
69 DATA
71 __vector_table
72 DCD sfe(CSTACK)
73 DCD Reset_Handler ; Reset Handler
74 DCD NMI_Handler ; NMI Handler
75 DCD HardFault_Handler ; Hard Fault Handler
76 DCD MemManage_Handler ; MPU Fault Handler
77 DCD BusFault_Handler ; Bus Fault Handler
78 DCD UsageFault_Handler ; Usage Fault Handler
79 DCD 0 ; Reserved
80 DCD 0 ; Reserved
81 DCD 0 ; Reserved
82 DCD 0 ; Reserved
83 DCD SVC_Handler ; SVCall Handler
84 DCD DebugMon_Handler ; Debug Monitor Handler
85 DCD 0 ; Reserved
86 DCD PendSV_Handler ; PendSV Handler
87 DCD SysTick_Handler ; SysTick Handler
89 ; External Interrupts
90 DCD WWDG_IRQHandler ; Window Watchdog
91 DCD PVD_IRQHandler ; PVD through EXTI Line detect
92 DCD TAMPER_IRQHandler ; Tamper
93 DCD RTC_IRQHandler ; RTC
94 DCD FLASH_IRQHandler ; Flash
95 DCD RCC_IRQHandler ; RCC
96 DCD EXTI0_IRQHandler ; EXTI Line 0
97 DCD EXTI1_IRQHandler ; EXTI Line 1
98 DCD EXTI2_IRQHandler ; EXTI Line 2
99 DCD EXTI3_IRQHandler ; EXTI Line 3
100 DCD EXTI4_IRQHandler ; EXTI Line 4
101 DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1
102 DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2
103 DCD DMA1_Channel3_IRQHandler ; DMA1 Channel 3
104 DCD DMA1_Channel4_IRQHandler ; DMA1 Channel 4
105 DCD DMA1_Channel5_IRQHandler ; DMA1 Channel 5
106 DCD DMA1_Channel6_IRQHandler ; DMA1 Channel 6
107 DCD DMA1_Channel7_IRQHandler ; DMA1 Channel 7
108 DCD ADC1_2_IRQHandler ; ADC1 & ADC2
109 DCD USB_HP_CAN1_TX_IRQHandler ; USB High Priority or CAN1 TX
110 DCD USB_LP_CAN1_RX0_IRQHandler ; USB Low Priority or CAN1 RX0
111 DCD CAN1_RX1_IRQHandler ; CAN1 RX1
112 DCD CAN1_SCE_IRQHandler ; CAN1 SCE
113 DCD EXTI9_5_IRQHandler ; EXTI Line 9..5
114 DCD TIM1_BRK_TIM9_IRQHandler ; TIM1 Break and TIM9
115 DCD TIM1_UP_TIM10_IRQHandler ; TIM1 Update and TIM10
116 DCD TIM1_TRG_COM_TIM11_IRQHandler ; TIM1 Trigger and Commutation and TIM11
117 DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare
118 DCD TIM2_IRQHandler ; TIM2
119 DCD TIM3_IRQHandler ; TIM3
120 DCD TIM4_IRQHandler ; TIM4
121 DCD I2C1_EV_IRQHandler ; I2C1 Event
122 DCD I2C1_ER_IRQHandler ; I2C1 Error
123 DCD I2C2_EV_IRQHandler ; I2C2 Event
124 DCD I2C2_ER_IRQHandler ; I2C2 Error
125 DCD SPI1_IRQHandler ; SPI1
126 DCD SPI2_IRQHandler ; SPI2
127 DCD USART1_IRQHandler ; USART1
128 DCD USART2_IRQHandler ; USART2
129 DCD USART3_IRQHandler ; USART3
130 DCD EXTI15_10_IRQHandler ; EXTI Line 15..10
131 DCD RTC_Alarm_IRQHandler ; RTC Alarm through EXTI Line
132 DCD USBWakeUp_IRQHandler ; USB Wakeup from suspend
133 DCD TIM8_BRK_TIM12_IRQHandler ; TIM8 Break and TIM12
134 DCD TIM8_UP_TIM13_IRQHandler ; TIM8 Update and TIM13
135 DCD TIM8_TRG_COM_TIM14_IRQHandler ; TIM8 Trigger and Commutation and TIM14
136 DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare
137 DCD ADC3_IRQHandler ; ADC3
138 DCD FSMC_IRQHandler ; FSMC
139 DCD SDIO_IRQHandler ; SDIO
140 DCD TIM5_IRQHandler ; TIM5
141 DCD SPI3_IRQHandler ; SPI3
142 DCD UART4_IRQHandler ; UART4
143 DCD UART5_IRQHandler ; UART5
144 DCD TIM6_IRQHandler ; TIM6
145 DCD TIM7_IRQHandler ; TIM7
146 DCD DMA2_Channel1_IRQHandler ; DMA2 Channel1
147 DCD DMA2_Channel2_IRQHandler ; DMA2 Channel2
148 DCD DMA2_Channel3_IRQHandler ; DMA2 Channel3
149 DCD DMA2_Channel4_5_IRQHandler ; DMA2 Channel4 & Channel5
150 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
152 ;; Default interrupt handlers.
154 THUMB
156 PUBWEAK Reset_Handler
157 SECTION .text:CODE:REORDER:NOROOT(2)
158 Reset_Handler
159 LDR R0, =SystemInit
160 BLX R0
161 LDR R0, =__iar_program_start
162 BX R0
164 PUBWEAK NMI_Handler
165 SECTION .text:CODE:REORDER:NOROOT(1)
166 NMI_Handler
167 B NMI_Handler
169 PUBWEAK HardFault_Handler
170 SECTION .text:CODE:REORDER:NOROOT(1)
171 HardFault_Handler
172 B HardFault_Handler
174 PUBWEAK MemManage_Handler
175 SECTION .text:CODE:REORDER:NOROOT(1)
176 MemManage_Handler
177 B MemManage_Handler
179 PUBWEAK BusFault_Handler
180 SECTION .text:CODE:REORDER:NOROOT(1)
181 BusFault_Handler
182 B BusFault_Handler
184 PUBWEAK UsageFault_Handler
185 SECTION .text:CODE:REORDER:NOROOT(1)
186 UsageFault_Handler
187 B UsageFault_Handler
189 PUBWEAK SVC_Handler
190 SECTION .text:CODE:REORDER:NOROOT(1)
191 SVC_Handler
192 B SVC_Handler
194 PUBWEAK DebugMon_Handler
195 SECTION .text:CODE:REORDER:NOROOT(1)
196 DebugMon_Handler
197 B DebugMon_Handler
199 PUBWEAK PendSV_Handler
200 SECTION .text:CODE:REORDER:NOROOT(1)
201 PendSV_Handler
202 B PendSV_Handler
204 PUBWEAK SysTick_Handler
205 SECTION .text:CODE:REORDER:NOROOT(1)
206 SysTick_Handler
207 B SysTick_Handler
209 PUBWEAK WWDG_IRQHandler
210 SECTION .text:CODE:REORDER:NOROOT(1)
211 WWDG_IRQHandler
212 B WWDG_IRQHandler
214 PUBWEAK PVD_IRQHandler
215 SECTION .text:CODE:REORDER:NOROOT(1)
216 PVD_IRQHandler
217 B PVD_IRQHandler
219 PUBWEAK TAMPER_IRQHandler
220 SECTION .text:CODE:REORDER:NOROOT(1)
221 TAMPER_IRQHandler
222 B TAMPER_IRQHandler
224 PUBWEAK RTC_IRQHandler
225 SECTION .text:CODE:REORDER:NOROOT(1)
226 RTC_IRQHandler
227 B RTC_IRQHandler
229 PUBWEAK FLASH_IRQHandler
230 SECTION .text:CODE:REORDER:NOROOT(1)
231 FLASH_IRQHandler
232 B FLASH_IRQHandler
234 PUBWEAK RCC_IRQHandler
235 SECTION .text:CODE:REORDER:NOROOT(1)
236 RCC_IRQHandler
237 B RCC_IRQHandler
239 PUBWEAK EXTI0_IRQHandler
240 SECTION .text:CODE:REORDER:NOROOT(1)
241 EXTI0_IRQHandler
242 B EXTI0_IRQHandler
244 PUBWEAK EXTI1_IRQHandler
245 SECTION .text:CODE:REORDER:NOROOT(1)
246 EXTI1_IRQHandler
247 B EXTI1_IRQHandler
249 PUBWEAK EXTI2_IRQHandler
250 SECTION .text:CODE:REORDER:NOROOT(1)
251 EXTI2_IRQHandler
252 B EXTI2_IRQHandler
254 PUBWEAK EXTI3_IRQHandler
255 SECTION .text:CODE:REORDER:NOROOT(1)
256 EXTI3_IRQHandler
257 B EXTI3_IRQHandler
259 PUBWEAK EXTI4_IRQHandler
260 SECTION .text:CODE:REORDER:NOROOT(1)
261 EXTI4_IRQHandler
262 B EXTI4_IRQHandler
264 PUBWEAK DMA1_Channel1_IRQHandler
265 SECTION .text:CODE:REORDER:NOROOT(1)
266 DMA1_Channel1_IRQHandler
267 B DMA1_Channel1_IRQHandler
269 PUBWEAK DMA1_Channel2_IRQHandler
270 SECTION .text:CODE:REORDER:NOROOT(1)
271 DMA1_Channel2_IRQHandler
272 B DMA1_Channel2_IRQHandler
274 PUBWEAK DMA1_Channel3_IRQHandler
275 SECTION .text:CODE:REORDER:NOROOT(1)
276 DMA1_Channel3_IRQHandler
277 B DMA1_Channel3_IRQHandler
279 PUBWEAK DMA1_Channel4_IRQHandler
280 SECTION .text:CODE:REORDER:NOROOT(1)
281 DMA1_Channel4_IRQHandler
282 B DMA1_Channel4_IRQHandler
284 PUBWEAK DMA1_Channel5_IRQHandler
285 SECTION .text:CODE:REORDER:NOROOT(1)
286 DMA1_Channel5_IRQHandler
287 B DMA1_Channel5_IRQHandler
289 PUBWEAK DMA1_Channel6_IRQHandler
290 SECTION .text:CODE:REORDER:NOROOT(1)
291 DMA1_Channel6_IRQHandler
292 B DMA1_Channel6_IRQHandler
294 PUBWEAK DMA1_Channel7_IRQHandler
295 SECTION .text:CODE:REORDER:NOROOT(1)
296 DMA1_Channel7_IRQHandler
297 B DMA1_Channel7_IRQHandler
299 PUBWEAK ADC1_2_IRQHandler
300 SECTION .text:CODE:REORDER:NOROOT(1)
301 ADC1_2_IRQHandler
302 B ADC1_2_IRQHandler
304 PUBWEAK USB_HP_CAN1_TX_IRQHandler
305 SECTION .text:CODE:REORDER:NOROOT(1)
306 USB_HP_CAN1_TX_IRQHandler
307 B USB_HP_CAN1_TX_IRQHandler
309 PUBWEAK USB_LP_CAN1_RX0_IRQHandler
310 SECTION .text:CODE:REORDER:NOROOT(1)
311 USB_LP_CAN1_RX0_IRQHandler
312 B USB_LP_CAN1_RX0_IRQHandler
314 PUBWEAK CAN1_RX1_IRQHandler
315 SECTION .text:CODE:REORDER:NOROOT(1)
316 CAN1_RX1_IRQHandler
317 B CAN1_RX1_IRQHandler
319 PUBWEAK CAN1_SCE_IRQHandler
320 SECTION .text:CODE:REORDER:NOROOT(1)
321 CAN1_SCE_IRQHandler
322 B CAN1_SCE_IRQHandler
324 PUBWEAK EXTI9_5_IRQHandler
325 SECTION .text:CODE:REORDER:NOROOT(1)
326 EXTI9_5_IRQHandler
327 B EXTI9_5_IRQHandler
329 PUBWEAK TIM1_BRK_TIM9_IRQHandler
330 SECTION .text:CODE:REORDER:NOROOT(1)
331 TIM1_BRK_TIM9_IRQHandler
332 B TIM1_BRK_TIM9_IRQHandler
334 PUBWEAK TIM1_UP_TIM10_IRQHandler
335 SECTION .text:CODE:REORDER:NOROOT(1)
336 TIM1_UP_TIM10_IRQHandler
337 B TIM1_UP_TIM10_IRQHandler
339 PUBWEAK TIM1_TRG_COM_TIM11_IRQHandler
340 SECTION .text:CODE:REORDER:NOROOT(1)
341 TIM1_TRG_COM_TIM11_IRQHandler
342 B TIM1_TRG_COM_TIM11_IRQHandler
344 PUBWEAK TIM1_CC_IRQHandler
345 SECTION .text:CODE:REORDER:NOROOT(1)
346 TIM1_CC_IRQHandler
347 B TIM1_CC_IRQHandler
349 PUBWEAK TIM2_IRQHandler
350 SECTION .text:CODE:REORDER:NOROOT(1)
351 TIM2_IRQHandler
352 B TIM2_IRQHandler
354 PUBWEAK TIM3_IRQHandler
355 SECTION .text:CODE:REORDER:NOROOT(1)
356 TIM3_IRQHandler
357 B TIM3_IRQHandler
359 PUBWEAK TIM4_IRQHandler
360 SECTION .text:CODE:REORDER:NOROOT(1)
361 TIM4_IRQHandler
362 B TIM4_IRQHandler
364 PUBWEAK I2C1_EV_IRQHandler
365 SECTION .text:CODE:REORDER:NOROOT(1)
366 I2C1_EV_IRQHandler
367 B I2C1_EV_IRQHandler
369 PUBWEAK I2C1_ER_IRQHandler
370 SECTION .text:CODE:REORDER:NOROOT(1)
371 I2C1_ER_IRQHandler
372 B I2C1_ER_IRQHandler
374 PUBWEAK I2C2_EV_IRQHandler
375 SECTION .text:CODE:REORDER:NOROOT(1)
376 I2C2_EV_IRQHandler
377 B I2C2_EV_IRQHandler
379 PUBWEAK I2C2_ER_IRQHandler
380 SECTION .text:CODE:REORDER:NOROOT(1)
381 I2C2_ER_IRQHandler
382 B I2C2_ER_IRQHandler
384 PUBWEAK SPI1_IRQHandler
385 SECTION .text:CODE:REORDER:NOROOT(1)
386 SPI1_IRQHandler
387 B SPI1_IRQHandler
389 PUBWEAK SPI2_IRQHandler
390 SECTION .text:CODE:REORDER:NOROOT(1)
391 SPI2_IRQHandler
392 B SPI2_IRQHandler
394 PUBWEAK USART1_IRQHandler
395 SECTION .text:CODE:REORDER:NOROOT(1)
396 USART1_IRQHandler
397 B USART1_IRQHandler
399 PUBWEAK USART2_IRQHandler
400 SECTION .text:CODE:REORDER:NOROOT(1)
401 USART2_IRQHandler
402 B USART2_IRQHandler
404 PUBWEAK USART3_IRQHandler
405 SECTION .text:CODE:REORDER:NOROOT(1)
406 USART3_IRQHandler
407 B USART3_IRQHandler
409 PUBWEAK EXTI15_10_IRQHandler
410 SECTION .text:CODE:REORDER:NOROOT(1)
411 EXTI15_10_IRQHandler
412 B EXTI15_10_IRQHandler
414 PUBWEAK RTC_Alarm_IRQHandler
415 SECTION .text:CODE:REORDER:NOROOT(1)
416 RTC_Alarm_IRQHandler
417 B RTC_Alarm_IRQHandler
419 PUBWEAK USBWakeUp_IRQHandler
420 SECTION .text:CODE:REORDER:NOROOT(1)
421 USBWakeUp_IRQHandler
422 B USBWakeUp_IRQHandler
424 PUBWEAK TIM8_BRK_TIM12_IRQHandler
425 SECTION .text:CODE:REORDER:NOROOT(1)
426 TIM8_BRK_TIM12_IRQHandler
427 B TIM8_BRK_TIM12_IRQHandler
429 PUBWEAK TIM8_UP_TIM13_IRQHandler
430 SECTION .text:CODE:REORDER:NOROOT(1)
431 TIM8_UP_TIM13_IRQHandler
432 B TIM8_UP_TIM13_IRQHandler
434 PUBWEAK TIM8_TRG_COM_TIM14_IRQHandler
435 SECTION .text:CODE:REORDER:NOROOT(1)
436 TIM8_TRG_COM_TIM14_IRQHandler
437 B TIM8_TRG_COM_TIM14_IRQHandler
439 PUBWEAK TIM8_CC_IRQHandler
440 SECTION .text:CODE:REORDER:NOROOT(1)
441 TIM8_CC_IRQHandler
442 B TIM8_CC_IRQHandler
444 PUBWEAK ADC3_IRQHandler
445 SECTION .text:CODE:REORDER:NOROOT(1)
446 ADC3_IRQHandler
447 B ADC3_IRQHandler
449 PUBWEAK FSMC_IRQHandler
450 SECTION .text:CODE:REORDER:NOROOT(1)
451 FSMC_IRQHandler
452 B FSMC_IRQHandler
454 PUBWEAK SDIO_IRQHandler
455 SECTION .text:CODE:REORDER:NOROOT(1)
456 SDIO_IRQHandler
457 B SDIO_IRQHandler
459 PUBWEAK TIM5_IRQHandler
460 SECTION .text:CODE:REORDER:NOROOT(1)
461 TIM5_IRQHandler
462 B TIM5_IRQHandler
464 PUBWEAK SPI3_IRQHandler
465 SECTION .text:CODE:REORDER:NOROOT(1)
466 SPI3_IRQHandler
467 B SPI3_IRQHandler
469 PUBWEAK UART4_IRQHandler
470 SECTION .text:CODE:REORDER:NOROOT(1)
471 UART4_IRQHandler
472 B UART4_IRQHandler
474 PUBWEAK UART5_IRQHandler
475 SECTION .text:CODE:REORDER:NOROOT(1)
476 UART5_IRQHandler
477 B UART5_IRQHandler
479 PUBWEAK TIM6_IRQHandler
480 SECTION .text:CODE:REORDER:NOROOT(1)
481 TIM6_IRQHandler
482 B TIM6_IRQHandler
484 PUBWEAK TIM7_IRQHandler
485 SECTION .text:CODE:REORDER:NOROOT(1)
486 TIM7_IRQHandler
487 B TIM7_IRQHandler
489 PUBWEAK DMA2_Channel1_IRQHandler
490 SECTION .text:CODE:REORDER:NOROOT(1)
491 DMA2_Channel1_IRQHandler
492 B DMA2_Channel1_IRQHandler
494 PUBWEAK DMA2_Channel2_IRQHandler
495 SECTION .text:CODE:REORDER:NOROOT(1)
496 DMA2_Channel2_IRQHandler
497 B DMA2_Channel2_IRQHandler
499 PUBWEAK DMA2_Channel3_IRQHandler
500 SECTION .text:CODE:REORDER:NOROOT(1)
501 DMA2_Channel3_IRQHandler
502 B DMA2_Channel3_IRQHandler
504 PUBWEAK DMA2_Channel4_5_IRQHandler
505 SECTION .text:CODE:REORDER:NOROOT(1)
506 DMA2_Channel4_5_IRQHandler
507 B DMA2_Channel4_5_IRQHandler
512 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/