]> git.donarmstrong.com Git - qmk_firmware.git/blob - tmk_core/tool/mbed/mbed-sdk/libraries/mbed/targets/cmsis/TARGET_STM/TARGET_STM32F1/TARGET_NUCLEO_F103RB/TOOLCHAIN_IAR/startup_stm32f103xb.s
allow overriding of TARGET
[qmk_firmware.git] / tmk_core / tool / mbed / mbed-sdk / libraries / mbed / targets / cmsis / TARGET_STM / TARGET_STM32F1 / TARGET_NUCLEO_F103RB / TOOLCHAIN_IAR / startup_stm32f103xb.s
1 ;******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
2 ;* File Name          : startup_stm32f103xb.s
3 ;* Author             : MCD Application Team
4 ;* Version            : V4.0.0
5 ;* Date               : 16-December-2014
6 ;* Description        : STM32F103xB Performance Line Devices vector table for 
7 ;*                      EWARM toolchain.
8 ;*                      This module performs:
9 ;*                      - Set the initial SP
10 ;*                      - Configure the clock system
11 ;*                      - Set the initial PC == __iar_program_start,
12 ;*                      - Set the vector table entries with the exceptions ISR 
13 ;*                        address.
14 ;*                      After Reset the Cortex-M3 processor is in Thread mode,
15 ;*                      priority is Privileged, and the Stack is set to Main.
16 ;********************************************************************************
17 ;* 
18 ;* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
19 ;* 
20 ;* Redistribution and use in source and binary forms, with or without modification,
21 ;* are permitted provided that the following conditions are met:
22 ;*   1. Redistributions of source code must retain the above copyright notice,
23 ;*      this list of conditions and the following disclaimer.
24 ;*   2. Redistributions in binary form must reproduce the above copyright notice,
25 ;*      this list of conditions and the following disclaimer in the documentation
26 ;*      and/or other materials provided with the distribution.
27 ;*   3. Neither the name of STMicroelectronics nor the names of its contributors
28 ;*      may be used to endorse or promote products derived from this software
29 ;*      without specific prior written permission.
30 ;* 
31 ;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
32 ;* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
33 ;* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
34 ;* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
35 ;* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36 ;* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
37 ;* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
38 ;* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
39 ;* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
40 ;* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
41 ;* 
42 ;*******************************************************************************
43 ;
44 ;
45 ; The modules in this file are included in the libraries, and may be replaced
46 ; by any user-defined modules that define the PUBLIC symbol _program_start or
47 ; a user defined start symbol.
48 ; To override the cstartup defined in the library, simply add your modified
49 ; version to the workbench project.
50 ;
51 ; The vector table is normally located at address 0.
52 ; When debugging in RAM, it can be located in RAM, aligned to at least 2^6.
53 ; The name "__vector_table" has special meaning for C-SPY:
54 ; it is where the SP start value is found, and the NVIC vector
55 ; table register (VTOR) is initialized to this address if != 0.
56 ;
57 ; Cortex-M version
58 ;
59
60         MODULE  ?cstartup
61
62         ;; Forward declaration of sections.
63         SECTION CSTACK:DATA:NOROOT(3)
64
65         SECTION .intvec:CODE:NOROOT(2)
66
67         EXTERN  __iar_program_start
68         EXTERN  SystemInit        
69         PUBLIC  __vector_table
70
71         DATA
72 __vector_table
73         DCD     sfe(CSTACK)
74         DCD     Reset_Handler             ; Reset Handler
75         DCD     NMI_Handler               ; NMI Handler
76         DCD     HardFault_Handler         ; Hard Fault Handler
77         DCD     MemManage_Handler         ; MPU Fault Handler
78         DCD     BusFault_Handler          ; Bus Fault Handler
79         DCD     UsageFault_Handler        ; Usage Fault Handler
80         DCD     0                         ; Reserved
81         DCD     0                         ; Reserved
82         DCD     0                         ; Reserved
83         DCD     0                         ; Reserved
84         DCD     SVC_Handler               ; SVCall Handler
85         DCD     DebugMon_Handler          ; Debug Monitor Handler
86         DCD     0                         ; Reserved
87         DCD     PendSV_Handler            ; PendSV Handler
88         DCD     SysTick_Handler           ; SysTick Handler
89
90          ; External Interrupts
91         DCD     WWDG_IRQHandler           ; Window Watchdog
92         DCD     PVD_IRQHandler            ; PVD through EXTI Line detect
93         DCD     TAMPER_IRQHandler         ; Tamper
94         DCD     RTC_IRQHandler            ; RTC
95         DCD     FLASH_IRQHandler          ; Flash
96         DCD     RCC_IRQHandler            ; RCC
97         DCD     EXTI0_IRQHandler          ; EXTI Line 0
98         DCD     EXTI1_IRQHandler          ; EXTI Line 1
99         DCD     EXTI2_IRQHandler          ; EXTI Line 2
100         DCD     EXTI3_IRQHandler          ; EXTI Line 3
101         DCD     EXTI4_IRQHandler          ; EXTI Line 4
102         DCD     DMA1_Channel1_IRQHandler  ; DMA1 Channel 1
103         DCD     DMA1_Channel2_IRQHandler  ; DMA1 Channel 2
104         DCD     DMA1_Channel3_IRQHandler  ; DMA1 Channel 3
105         DCD     DMA1_Channel4_IRQHandler  ; DMA1 Channel 4
106         DCD     DMA1_Channel5_IRQHandler  ; DMA1 Channel 5
107         DCD     DMA1_Channel6_IRQHandler  ; DMA1 Channel 6
108         DCD     DMA1_Channel7_IRQHandler  ; DMA1 Channel 7
109         DCD     ADC1_2_IRQHandler         ; ADC1 & ADC2
110         DCD     USB_HP_CAN1_TX_IRQHandler  ; USB High Priority or CAN1 TX
111         DCD     USB_LP_CAN1_RX0_IRQHandler ; USB Low  Priority or CAN1 RX0
112         DCD     CAN1_RX1_IRQHandler       ; CAN1 RX1
113         DCD     CAN1_SCE_IRQHandler       ; CAN1 SCE
114         DCD     EXTI9_5_IRQHandler        ; EXTI Line 9..5
115         DCD     TIM1_BRK_IRQHandler       ; TIM1 Break
116         DCD     TIM1_UP_IRQHandler        ; TIM1 Update
117         DCD     TIM1_TRG_COM_IRQHandler   ; TIM1 Trigger and Commutation
118         DCD     TIM1_CC_IRQHandler        ; TIM1 Capture Compare
119         DCD     TIM2_IRQHandler           ; TIM2
120         DCD     TIM3_IRQHandler           ; TIM3
121         DCD     TIM4_IRQHandler           ; TIM4
122         DCD     I2C1_EV_IRQHandler        ; I2C1 Event
123         DCD     I2C1_ER_IRQHandler        ; I2C1 Error
124         DCD     I2C2_EV_IRQHandler        ; I2C2 Event
125         DCD     I2C2_ER_IRQHandler        ; I2C2 Error
126         DCD     SPI1_IRQHandler           ; SPI1
127         DCD     SPI2_IRQHandler           ; SPI2
128         DCD     USART1_IRQHandler         ; USART1
129         DCD     USART2_IRQHandler         ; USART2
130         DCD     USART3_IRQHandler         ; USART3
131         DCD     EXTI15_10_IRQHandler      ; EXTI Line 15..10
132         DCD     RTC_Alarm_IRQHandler       ; RTC Alarm through EXTI Line
133         DCD     USBWakeUp_IRQHandler      ; USB Wakeup from suspend
134
135 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
136 ;;
137 ;; Default interrupt handlers.
138 ;;
139         THUMB
140
141         PUBWEAK Reset_Handler
142         SECTION .text:CODE:REORDER:NOROOT(2)
143 Reset_Handler
144         LDR     R0, =SystemInit
145         BLX     R0
146         LDR     R0, =__iar_program_start
147         BX      R0
148         
149         PUBWEAK NMI_Handler
150         SECTION .text:CODE:REORDER:NOROOT(1)
151 NMI_Handler
152         B NMI_Handler
153
154         PUBWEAK HardFault_Handler
155         SECTION .text:CODE:REORDER:NOROOT(1)
156 HardFault_Handler
157         B HardFault_Handler
158
159         PUBWEAK MemManage_Handler
160         SECTION .text:CODE:REORDER:NOROOT(1)
161 MemManage_Handler
162         B MemManage_Handler
163
164         PUBWEAK BusFault_Handler
165         SECTION .text:CODE:REORDER:NOROOT(1)
166 BusFault_Handler
167         B BusFault_Handler
168
169         PUBWEAK UsageFault_Handler
170         SECTION .text:CODE:REORDER:NOROOT(1)
171 UsageFault_Handler
172         B UsageFault_Handler
173
174         PUBWEAK SVC_Handler
175         SECTION .text:CODE:REORDER:NOROOT(1)
176 SVC_Handler
177         B SVC_Handler
178
179         PUBWEAK DebugMon_Handler
180         SECTION .text:CODE:REORDER:NOROOT(1)
181 DebugMon_Handler
182         B DebugMon_Handler
183
184         PUBWEAK PendSV_Handler
185         SECTION .text:CODE:REORDER:NOROOT(1)
186 PendSV_Handler
187         B PendSV_Handler
188
189         PUBWEAK SysTick_Handler
190         SECTION .text:CODE:REORDER:NOROOT(1)
191 SysTick_Handler
192         B SysTick_Handler
193
194         PUBWEAK WWDG_IRQHandler
195         SECTION .text:CODE:REORDER:NOROOT(1)
196 WWDG_IRQHandler
197         B WWDG_IRQHandler
198
199         PUBWEAK PVD_IRQHandler
200         SECTION .text:CODE:REORDER:NOROOT(1)
201 PVD_IRQHandler
202         B PVD_IRQHandler
203
204         PUBWEAK TAMPER_IRQHandler
205         SECTION .text:CODE:REORDER:NOROOT(1)
206 TAMPER_IRQHandler
207         B TAMPER_IRQHandler
208
209         PUBWEAK RTC_IRQHandler
210         SECTION .text:CODE:REORDER:NOROOT(1)
211 RTC_IRQHandler
212         B RTC_IRQHandler
213
214         PUBWEAK FLASH_IRQHandler
215         SECTION .text:CODE:REORDER:NOROOT(1)
216 FLASH_IRQHandler
217         B FLASH_IRQHandler
218
219         PUBWEAK RCC_IRQHandler
220         SECTION .text:CODE:REORDER:NOROOT(1)
221 RCC_IRQHandler
222         B RCC_IRQHandler
223
224         PUBWEAK EXTI0_IRQHandler
225         SECTION .text:CODE:REORDER:NOROOT(1)
226 EXTI0_IRQHandler
227         B EXTI0_IRQHandler
228
229         PUBWEAK EXTI1_IRQHandler
230         SECTION .text:CODE:REORDER:NOROOT(1)
231 EXTI1_IRQHandler
232         B EXTI1_IRQHandler
233
234         PUBWEAK EXTI2_IRQHandler
235         SECTION .text:CODE:REORDER:NOROOT(1)
236 EXTI2_IRQHandler
237         B EXTI2_IRQHandler
238
239         PUBWEAK EXTI3_IRQHandler
240         SECTION .text:CODE:REORDER:NOROOT(1)
241 EXTI3_IRQHandler
242         B EXTI3_IRQHandler
243
244         PUBWEAK EXTI4_IRQHandler
245         SECTION .text:CODE:REORDER:NOROOT(1)
246 EXTI4_IRQHandler
247         B EXTI4_IRQHandler
248
249         PUBWEAK DMA1_Channel1_IRQHandler
250         SECTION .text:CODE:REORDER:NOROOT(1)
251 DMA1_Channel1_IRQHandler
252         B DMA1_Channel1_IRQHandler
253
254         PUBWEAK DMA1_Channel2_IRQHandler
255         SECTION .text:CODE:REORDER:NOROOT(1)
256 DMA1_Channel2_IRQHandler
257         B DMA1_Channel2_IRQHandler
258
259         PUBWEAK DMA1_Channel3_IRQHandler
260         SECTION .text:CODE:REORDER:NOROOT(1)
261 DMA1_Channel3_IRQHandler
262         B DMA1_Channel3_IRQHandler
263
264         PUBWEAK DMA1_Channel4_IRQHandler
265         SECTION .text:CODE:REORDER:NOROOT(1)
266 DMA1_Channel4_IRQHandler
267         B DMA1_Channel4_IRQHandler
268
269         PUBWEAK DMA1_Channel5_IRQHandler
270         SECTION .text:CODE:REORDER:NOROOT(1)
271 DMA1_Channel5_IRQHandler
272         B DMA1_Channel5_IRQHandler
273
274         PUBWEAK DMA1_Channel6_IRQHandler
275         SECTION .text:CODE:REORDER:NOROOT(1)
276 DMA1_Channel6_IRQHandler
277         B DMA1_Channel6_IRQHandler
278
279         PUBWEAK DMA1_Channel7_IRQHandler
280         SECTION .text:CODE:REORDER:NOROOT(1)
281 DMA1_Channel7_IRQHandler
282         B DMA1_Channel7_IRQHandler
283
284         PUBWEAK ADC1_2_IRQHandler
285         SECTION .text:CODE:REORDER:NOROOT(1)
286 ADC1_2_IRQHandler
287         B ADC1_2_IRQHandler
288
289         PUBWEAK USB_HP_CAN1_TX_IRQHandler
290         SECTION .text:CODE:REORDER:NOROOT(1)
291 USB_HP_CAN1_TX_IRQHandler
292         B USB_HP_CAN1_TX_IRQHandler
293
294         PUBWEAK USB_LP_CAN1_RX0_IRQHandler
295         SECTION .text:CODE:REORDER:NOROOT(1)
296 USB_LP_CAN1_RX0_IRQHandler
297         B USB_LP_CAN1_RX0_IRQHandler
298
299         PUBWEAK CAN1_RX1_IRQHandler
300         SECTION .text:CODE:REORDER:NOROOT(1)
301 CAN1_RX1_IRQHandler
302         B CAN1_RX1_IRQHandler
303
304         PUBWEAK CAN1_SCE_IRQHandler
305         SECTION .text:CODE:REORDER:NOROOT(1)
306 CAN1_SCE_IRQHandler
307         B CAN1_SCE_IRQHandler
308
309         PUBWEAK EXTI9_5_IRQHandler
310         SECTION .text:CODE:REORDER:NOROOT(1)
311 EXTI9_5_IRQHandler
312         B EXTI9_5_IRQHandler
313
314         PUBWEAK TIM1_BRK_IRQHandler
315         SECTION .text:CODE:REORDER:NOROOT(1)
316 TIM1_BRK_IRQHandler
317         B TIM1_BRK_IRQHandler
318
319         PUBWEAK TIM1_UP_IRQHandler
320         SECTION .text:CODE:REORDER:NOROOT(1)
321 TIM1_UP_IRQHandler
322         B TIM1_UP_IRQHandler
323
324         PUBWEAK TIM1_TRG_COM_IRQHandler
325         SECTION .text:CODE:REORDER:NOROOT(1)
326 TIM1_TRG_COM_IRQHandler
327         B TIM1_TRG_COM_IRQHandler
328
329         PUBWEAK TIM1_CC_IRQHandler
330         SECTION .text:CODE:REORDER:NOROOT(1)
331 TIM1_CC_IRQHandler
332         B TIM1_CC_IRQHandler
333
334         PUBWEAK TIM2_IRQHandler
335         SECTION .text:CODE:REORDER:NOROOT(1)
336 TIM2_IRQHandler
337         B TIM2_IRQHandler
338
339         PUBWEAK TIM3_IRQHandler
340         SECTION .text:CODE:REORDER:NOROOT(1)
341 TIM3_IRQHandler
342         B TIM3_IRQHandler
343
344         PUBWEAK TIM4_IRQHandler
345         SECTION .text:CODE:REORDER:NOROOT(1)
346 TIM4_IRQHandler
347         B TIM4_IRQHandler
348
349         PUBWEAK I2C1_EV_IRQHandler
350         SECTION .text:CODE:REORDER:NOROOT(1)
351 I2C1_EV_IRQHandler
352         B I2C1_EV_IRQHandler
353
354         PUBWEAK I2C1_ER_IRQHandler
355         SECTION .text:CODE:REORDER:NOROOT(1)
356 I2C1_ER_IRQHandler
357         B I2C1_ER_IRQHandler
358
359         PUBWEAK I2C2_EV_IRQHandler
360         SECTION .text:CODE:REORDER:NOROOT(1)
361 I2C2_EV_IRQHandler
362         B I2C2_EV_IRQHandler
363
364         PUBWEAK I2C2_ER_IRQHandler
365         SECTION .text:CODE:REORDER:NOROOT(1)
366 I2C2_ER_IRQHandler
367         B I2C2_ER_IRQHandler
368
369         PUBWEAK SPI1_IRQHandler
370         SECTION .text:CODE:REORDER:NOROOT(1)
371 SPI1_IRQHandler
372         B SPI1_IRQHandler
373
374         PUBWEAK SPI2_IRQHandler
375         SECTION .text:CODE:REORDER:NOROOT(1)
376 SPI2_IRQHandler
377         B SPI2_IRQHandler
378
379         PUBWEAK USART1_IRQHandler
380         SECTION .text:CODE:REORDER:NOROOT(1)
381 USART1_IRQHandler
382         B USART1_IRQHandler
383
384         PUBWEAK USART2_IRQHandler
385         SECTION .text:CODE:REORDER:NOROOT(1)
386 USART2_IRQHandler
387         B USART2_IRQHandler
388
389         PUBWEAK USART3_IRQHandler
390         SECTION .text:CODE:REORDER:NOROOT(1)
391 USART3_IRQHandler
392         B USART3_IRQHandler
393
394         PUBWEAK EXTI15_10_IRQHandler
395         SECTION .text:CODE:REORDER:NOROOT(1)
396 EXTI15_10_IRQHandler
397         B EXTI15_10_IRQHandler
398
399         PUBWEAK RTC_Alarm_IRQHandler
400         SECTION .text:CODE:REORDER:NOROOT(1)
401 RTC_Alarm_IRQHandler
402         B RTC_Alarm_IRQHandler
403
404         PUBWEAK USBWakeUp_IRQHandler
405         SECTION .text:CODE:REORDER:NOROOT(1)
406 USBWakeUp_IRQHandler
407         B USBWakeUp_IRQHandler
408
409         END
410 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/