]> git.donarmstrong.com Git - qmk_firmware.git/blob - tool/mbed/mbed-sdk/libraries/mbed/targets/cmsis/TARGET_STM/TARGET_STM32F1/TARGET_NUCLEO_F103RB/TOOLCHAIN_ARM_STD/startup_stm32f103xb.s
Squashed 'tmk_core/' changes from 7967731..b9e0ea0
[qmk_firmware.git] / tool / mbed / mbed-sdk / libraries / mbed / targets / cmsis / TARGET_STM / TARGET_STM32F1 / TARGET_NUCLEO_F103RB / TOOLCHAIN_ARM_STD / 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 Devices vector table for MDK-ARM toolchain. 
7 ;*                      This module performs:
8 ;*                      - Set the initial SP
9 ;*                      - Set the initial PC == Reset_Handler
10 ;*                      - Set the vector table entries with the exceptions ISR address
11 ;*                      - Configure the clock system
12 ;*                      - Branches to __main in the C library (which eventually
13 ;*                        calls main()).
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 ;* COPYRIGHT(c) 2014 STMicroelectronics
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 __initial_sp    EQU     0x20005000 ; Top of RAM
45
46                 PRESERVE8
47                 THUMB
48
49
50 ; Vector Table Mapped to Address 0 at Reset
51                 AREA    RESET, DATA, READONLY
52                 EXPORT  __Vectors
53                 EXPORT  __Vectors_End
54                 EXPORT  __Vectors_Size
55
56 __Vectors       DCD     __initial_sp               ; Top of Stack
57                 DCD     Reset_Handler              ; Reset Handler
58                 DCD     NMI_Handler                ; NMI Handler
59                 DCD     HardFault_Handler          ; Hard Fault Handler
60                 DCD     MemManage_Handler          ; MPU Fault Handler
61                 DCD     BusFault_Handler           ; Bus Fault Handler
62                 DCD     UsageFault_Handler         ; Usage Fault Handler
63                 DCD     0                          ; Reserved
64                 DCD     0                          ; Reserved
65                 DCD     0                          ; Reserved
66                 DCD     0                          ; Reserved
67                 DCD     SVC_Handler                ; SVCall Handler
68                 DCD     DebugMon_Handler           ; Debug Monitor Handler
69                 DCD     0                          ; Reserved
70                 DCD     PendSV_Handler             ; PendSV Handler
71                 DCD     SysTick_Handler            ; SysTick Handler
72
73                 ; External Interrupts
74                 DCD     WWDG_IRQHandler            ; Window Watchdog
75                 DCD     PVD_IRQHandler             ; PVD through EXTI Line detect
76                 DCD     TAMPER_IRQHandler          ; Tamper
77                 DCD     RTC_IRQHandler             ; RTC
78                 DCD     FLASH_IRQHandler           ; Flash
79                 DCD     RCC_IRQHandler             ; RCC
80                 DCD     EXTI0_IRQHandler           ; EXTI Line 0
81                 DCD     EXTI1_IRQHandler           ; EXTI Line 1
82                 DCD     EXTI2_IRQHandler           ; EXTI Line 2
83                 DCD     EXTI3_IRQHandler           ; EXTI Line 3
84                 DCD     EXTI4_IRQHandler           ; EXTI Line 4
85                 DCD     DMA1_Channel1_IRQHandler   ; DMA1 Channel 1
86                 DCD     DMA1_Channel2_IRQHandler   ; DMA1 Channel 2
87                 DCD     DMA1_Channel3_IRQHandler   ; DMA1 Channel 3
88                 DCD     DMA1_Channel4_IRQHandler   ; DMA1 Channel 4
89                 DCD     DMA1_Channel5_IRQHandler   ; DMA1 Channel 5
90                 DCD     DMA1_Channel6_IRQHandler   ; DMA1 Channel 6
91                 DCD     DMA1_Channel7_IRQHandler   ; DMA1 Channel 7
92                 DCD     ADC1_2_IRQHandler          ; ADC1_2
93                 DCD     USB_HP_CAN1_TX_IRQHandler  ; USB High Priority or CAN1 TX
94                 DCD     USB_LP_CAN1_RX0_IRQHandler ; USB Low  Priority or CAN1 RX0
95                 DCD     CAN1_RX1_IRQHandler        ; CAN1 RX1
96                 DCD     CAN1_SCE_IRQHandler        ; CAN1 SCE
97                 DCD     EXTI9_5_IRQHandler         ; EXTI Line 9..5
98                 DCD     TIM1_BRK_IRQHandler        ; TIM1 Break
99                 DCD     TIM1_UP_IRQHandler         ; TIM1 Update
100                 DCD     TIM1_TRG_COM_IRQHandler    ; TIM1 Trigger and Commutation
101                 DCD     TIM1_CC_IRQHandler         ; TIM1 Capture Compare
102                 DCD     TIM2_IRQHandler            ; TIM2
103                 DCD     TIM3_IRQHandler            ; TIM3
104                 DCD     TIM4_IRQHandler            ; TIM4
105                 DCD     I2C1_EV_IRQHandler         ; I2C1 Event
106                 DCD     I2C1_ER_IRQHandler         ; I2C1 Error
107                 DCD     I2C2_EV_IRQHandler         ; I2C2 Event
108                 DCD     I2C2_ER_IRQHandler         ; I2C2 Error
109                 DCD     SPI1_IRQHandler            ; SPI1
110                 DCD     SPI2_IRQHandler            ; SPI2
111                 DCD     USART1_IRQHandler          ; USART1
112                 DCD     USART2_IRQHandler          ; USART2
113                 DCD     USART3_IRQHandler          ; USART3
114                 DCD     EXTI15_10_IRQHandler       ; EXTI Line 15..10
115                 DCD     RTC_Alarm_IRQHandler        ; RTC Alarm through EXTI Line
116                 DCD     USBWakeUp_IRQHandler       ; USB Wakeup from suspend
117 __Vectors_End
118
119 __Vectors_Size  EQU  __Vectors_End - __Vectors
120
121                 AREA    |.text|, CODE, READONLY
122
123 ; Reset handler
124 Reset_Handler    PROC
125                  EXPORT  Reset_Handler             [WEAK]
126      IMPORT  __main
127      IMPORT  SystemInit
128                  LDR     R0, =SystemInit
129                  BLX     R0
130                  LDR     R0, =__main
131                  BX      R0
132                  ENDP
133
134 ; Dummy Exception Handlers (infinite loops which can be modified)
135
136 NMI_Handler     PROC
137                 EXPORT  NMI_Handler                [WEAK]
138                 B       .
139                 ENDP
140 HardFault_Handler\
141                 PROC
142                 EXPORT  HardFault_Handler          [WEAK]
143                 B       .
144                 ENDP
145 MemManage_Handler\
146                 PROC
147                 EXPORT  MemManage_Handler          [WEAK]
148                 B       .
149                 ENDP
150 BusFault_Handler\
151                 PROC
152                 EXPORT  BusFault_Handler           [WEAK]
153                 B       .
154                 ENDP
155 UsageFault_Handler\
156                 PROC
157                 EXPORT  UsageFault_Handler         [WEAK]
158                 B       .
159                 ENDP
160 SVC_Handler     PROC
161                 EXPORT  SVC_Handler                [WEAK]
162                 B       .
163                 ENDP
164 DebugMon_Handler\
165                 PROC
166                 EXPORT  DebugMon_Handler           [WEAK]
167                 B       .
168                 ENDP
169 PendSV_Handler  PROC
170                 EXPORT  PendSV_Handler             [WEAK]
171                 B       .
172                 ENDP
173 SysTick_Handler PROC
174                 EXPORT  SysTick_Handler            [WEAK]
175                 B       .
176                 ENDP
177
178 Default_Handler PROC
179
180                 EXPORT  WWDG_IRQHandler            [WEAK]
181                 EXPORT  PVD_IRQHandler             [WEAK]
182                 EXPORT  TAMPER_IRQHandler          [WEAK]
183                 EXPORT  RTC_IRQHandler             [WEAK]
184                 EXPORT  FLASH_IRQHandler           [WEAK]
185                 EXPORT  RCC_IRQHandler             [WEAK]
186                 EXPORT  EXTI0_IRQHandler           [WEAK]
187                 EXPORT  EXTI1_IRQHandler           [WEAK]
188                 EXPORT  EXTI2_IRQHandler           [WEAK]
189                 EXPORT  EXTI3_IRQHandler           [WEAK]
190                 EXPORT  EXTI4_IRQHandler           [WEAK]
191                 EXPORT  DMA1_Channel1_IRQHandler   [WEAK]
192                 EXPORT  DMA1_Channel2_IRQHandler   [WEAK]
193                 EXPORT  DMA1_Channel3_IRQHandler   [WEAK]
194                 EXPORT  DMA1_Channel4_IRQHandler   [WEAK]
195                 EXPORT  DMA1_Channel5_IRQHandler   [WEAK]
196                 EXPORT  DMA1_Channel6_IRQHandler   [WEAK]
197                 EXPORT  DMA1_Channel7_IRQHandler   [WEAK]
198                 EXPORT  ADC1_2_IRQHandler          [WEAK]
199                 EXPORT  USB_HP_CAN1_TX_IRQHandler  [WEAK]
200                 EXPORT  USB_LP_CAN1_RX0_IRQHandler [WEAK]
201                 EXPORT  CAN1_RX1_IRQHandler        [WEAK]
202                 EXPORT  CAN1_SCE_IRQHandler        [WEAK]
203                 EXPORT  EXTI9_5_IRQHandler         [WEAK]
204                 EXPORT  TIM1_BRK_IRQHandler        [WEAK]
205                 EXPORT  TIM1_UP_IRQHandler         [WEAK]
206                 EXPORT  TIM1_TRG_COM_IRQHandler    [WEAK]
207                 EXPORT  TIM1_CC_IRQHandler         [WEAK]
208                 EXPORT  TIM2_IRQHandler            [WEAK]
209                 EXPORT  TIM3_IRQHandler            [WEAK]
210                 EXPORT  TIM4_IRQHandler            [WEAK]
211                 EXPORT  I2C1_EV_IRQHandler         [WEAK]
212                 EXPORT  I2C1_ER_IRQHandler         [WEAK]
213                 EXPORT  I2C2_EV_IRQHandler         [WEAK]
214                 EXPORT  I2C2_ER_IRQHandler         [WEAK]
215                 EXPORT  SPI1_IRQHandler            [WEAK]
216                 EXPORT  SPI2_IRQHandler            [WEAK]
217                 EXPORT  USART1_IRQHandler          [WEAK]
218                 EXPORT  USART2_IRQHandler          [WEAK]
219                 EXPORT  USART3_IRQHandler          [WEAK]
220                 EXPORT  EXTI15_10_IRQHandler       [WEAK]
221                 EXPORT  RTC_Alarm_IRQHandler        [WEAK]
222                 EXPORT  USBWakeUp_IRQHandler       [WEAK]
223
224 WWDG_IRQHandler
225 PVD_IRQHandler
226 TAMPER_IRQHandler
227 RTC_IRQHandler
228 FLASH_IRQHandler
229 RCC_IRQHandler
230 EXTI0_IRQHandler
231 EXTI1_IRQHandler
232 EXTI2_IRQHandler
233 EXTI3_IRQHandler
234 EXTI4_IRQHandler
235 DMA1_Channel1_IRQHandler
236 DMA1_Channel2_IRQHandler
237 DMA1_Channel3_IRQHandler
238 DMA1_Channel4_IRQHandler
239 DMA1_Channel5_IRQHandler
240 DMA1_Channel6_IRQHandler
241 DMA1_Channel7_IRQHandler
242 ADC1_2_IRQHandler
243 USB_HP_CAN1_TX_IRQHandler
244 USB_LP_CAN1_RX0_IRQHandler
245 CAN1_RX1_IRQHandler
246 CAN1_SCE_IRQHandler
247 EXTI9_5_IRQHandler
248 TIM1_BRK_IRQHandler
249 TIM1_UP_IRQHandler
250 TIM1_TRG_COM_IRQHandler
251 TIM1_CC_IRQHandler
252 TIM2_IRQHandler
253 TIM3_IRQHandler
254 TIM4_IRQHandler
255 I2C1_EV_IRQHandler
256 I2C1_ER_IRQHandler
257 I2C2_EV_IRQHandler
258 I2C2_ER_IRQHandler
259 SPI1_IRQHandler
260 SPI2_IRQHandler
261 USART1_IRQHandler
262 USART2_IRQHandler
263 USART3_IRQHandler
264 EXTI15_10_IRQHandler
265 RTC_Alarm_IRQHandler
266 USBWakeUp_IRQHandler
267
268                 B       .
269
270                 ENDP
271
272                 ALIGN
273                 END