]> git.donarmstrong.com Git - qmk_firmware.git/blob - tool/mbed/mbed-sdk/libraries/mbed/targets/cmsis/TARGET_STM/TARGET_STM32F4/TARGET_STM32F407VG/TOOLCHAIN_ARM_MICRO/startup_STM32F40x.s
Squashed 'tmk_core/' changes from 7967731..b9e0ea0
[qmk_firmware.git] / tool / mbed / mbed-sdk / libraries / mbed / targets / cmsis / TARGET_STM / TARGET_STM32F4 / TARGET_STM32F407VG / TOOLCHAIN_ARM_MICRO / startup_STM32F40x.s
1 ;/*****************************************************************************
2 ; * @file:    startup_STM32F40x.s
3 ; * @purpose: CMSIS Cortex-M4 Core Device Startup File
4 ; *           for the ST STM32F40x Device Series
5 ; * @version: V1.20
6 ; * @date:    16. January 2012
7 ; *------- <<< Use Configuration Wizard in Context Menu >>> ------------------
8 ; *
9 ; * Copyright (C) 2012 ARM Limited. All rights reserved.
10 ; * ARM Limited (ARM) is supplying this software for use with Cortex-M4
11 ; * processor based microcontrollers.  This file can be freely distributed
12 ; * within development tools that are supporting such ARM based processors.
13 ; *
14 ; * THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED
15 ; * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
16 ; * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
17 ; * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
18 ; * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
19 ; *
20 ; *****************************************************************************/
21
22 ; Amount of memory (in bytes) allocated for Stack
23 ; Tailor this value to your application needs
24 ; <h> Stack Configuration
25 ;   <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
26 ; </h>
27
28 Stack_Size      EQU     0x00000400
29
30                 AREA    STACK, NOINIT, READWRITE, ALIGN=3
31                 EXPORT  __initial_sp
32                 
33 Stack_Mem       SPACE   Stack_Size
34 __initial_sp    EQU     0x20020000 ; Top of RAM
35
36 ; <h> Heap Configuration
37 ;   <o>  Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
38 ; </h>
39
40 Heap_Size       EQU     0x00000400
41
42                 AREA    HEAP, NOINIT, READWRITE, ALIGN=3
43                 EXPORT  __heap_base
44                 EXPORT  __heap_limit
45                 
46 __heap_base
47 Heap_Mem        SPACE   Heap_Size
48 __heap_limit    EQU (__initial_sp - Stack_Size)
49
50
51
52                 PRESERVE8
53                 THUMB
54
55 ; Vector Table Mapped to Address 0 at Reset
56
57                 AREA    RESET, DATA, READONLY
58                 EXPORT  __Vectors
59
60 __Vectors       DCD     __initial_sp              ; Top of Stack
61                 DCD     Reset_Handler             ; Reset Handler
62                 DCD     NMI_Handler               ; NMI Handler
63                 DCD     HardFault_Handler         ; Hard Fault Handler
64                 DCD     MemManage_Handler         ; MPU Fault Handler
65                 DCD     BusFault_Handler          ; Bus Fault Handler
66                 DCD     UsageFault_Handler        ; Usage Fault Handler
67                 DCD     0                         ; Reserved
68                 DCD     0                         ; Reserved
69                 DCD     0                         ; Reserved
70                 DCD     0                         ; Reserved
71                 DCD     SVC_Handler               ; SVCall Handler
72                 DCD     DebugMon_Handler          ; Debug Monitor Handler
73                 DCD     0                         ; Reserved
74                 DCD     PendSV_Handler            ; PendSV Handler
75                 DCD     SysTick_Handler           ; SysTick Handler
76
77                 DCD     WWDG_IRQHandler               ; Window WatchDog 
78                 DCD     PVD_IRQHandler                ; PVD through EXTI Line detection 
79                 DCD     TAMP_STAMP_IRQHandler         ; Tamper and TimeStamps through the EXTI line 
80                 DCD     RTC_WKUP_IRQHandler           ; RTC Wakeup through the EXTI line 
81                 DCD     FLASH_IRQHandler              ; FLASH 
82                 DCD     RCC_IRQHandler                ; RCC 
83                 DCD     EXTI0_IRQHandler              ; EXTI Line0 
84                 DCD     EXTI1_IRQHandler              ; EXTI Line1 
85                 DCD     EXTI2_IRQHandler              ; EXTI Line2 
86                 DCD     EXTI3_IRQHandler              ; EXTI Line3 
87                 DCD     EXTI4_IRQHandler              ; EXTI Line4 
88                 DCD     DMA1_Stream0_IRQHandler       ; DMA1 Stream 0 
89                 DCD     DMA1_Stream1_IRQHandler       ; DMA1 Stream 1 
90                 DCD     DMA1_Stream2_IRQHandler       ; DMA1 Stream 2 
91                 DCD     DMA1_Stream3_IRQHandler       ; DMA1 Stream 3 
92                 DCD     DMA1_Stream4_IRQHandler       ; DMA1 Stream 4 
93                 DCD     DMA1_Stream5_IRQHandler       ; DMA1 Stream 5 
94                 DCD     DMA1_Stream6_IRQHandler       ; DMA1 Stream 6 
95                 DCD     ADC_IRQHandler                ; ADC1, ADC2 and ADC3s 
96                 DCD     CAN1_TX_IRQHandler            ; CAN1 TX 
97                 DCD     CAN1_RX0_IRQHandler           ; CAN1 RX0 
98                 DCD     CAN1_RX1_IRQHandler           ; CAN1 RX1 
99                 DCD     CAN1_SCE_IRQHandler           ; CAN1 SCE 
100                 DCD     EXTI9_5_IRQHandler            ; External Line[9:5]s 
101                 DCD     TIM1_BRK_TIM9_IRQHandler      ; TIM1 Break and TIM9 
102                 DCD     TIM1_UP_TIM10_IRQHandler      ; TIM1 Update and TIM10 
103                 DCD     TIM1_TRG_COM_TIM11_IRQHandler ; TIM1 Trigger and Commutation and TIM11 
104                 DCD     TIM1_CC_IRQHandler            ; TIM1 Capture Compare 
105                 DCD     TIM2_IRQHandler               ; TIM2 
106                 DCD     TIM3_IRQHandler               ; TIM3 
107                 DCD     TIM4_IRQHandler               ; TIM4 
108                 DCD     I2C1_EV_IRQHandler            ; I2C1 Event 
109                 DCD     I2C1_ER_IRQHandler            ; I2C1 Error 
110                 DCD     I2C2_EV_IRQHandler            ; I2C2 Event 
111                 DCD     I2C2_ER_IRQHandler            ; I2C2 Error 
112                 DCD     SPI1_IRQHandler               ; SPI1 
113                 DCD     SPI2_IRQHandler               ; SPI2 
114                 DCD     USART1_IRQHandler             ; USART1 
115                 DCD     USART2_IRQHandler             ; USART2 
116                 DCD     USART3_IRQHandler             ; USART3 
117                 DCD     EXTI15_10_IRQHandler          ; External Line[15:10]s 
118                 DCD     RTC_Alarm_IRQHandler          ; RTC Alarm (A and B) through EXTI Line 
119                 DCD     OTG_FS_WKUP_IRQHandler        ; USB OTG FS Wakeup through EXTI line 
120                 DCD     TIM8_BRK_TIM12_IRQHandler     ; TIM8 Break and TIM12 
121                 DCD     TIM8_UP_TIM13_IRQHandler      ; TIM8 Update and TIM13 
122                 DCD     TIM8_TRG_COM_TIM14_IRQHandler ; TIM8 Trigger and Commutation and TIM14 
123                 DCD     TIM8_CC_IRQHandler            ; TIM8 Capture Compare 
124                 DCD     DMA1_Stream7_IRQHandler       ; DMA1 Stream7 
125                 DCD     FSMC_IRQHandler               ; FSMC 
126                 DCD     SDIO_IRQHandler               ; SDIO 
127                 DCD     TIM5_IRQHandler               ; TIM5 
128                 DCD     SPI3_IRQHandler               ; SPI3 
129                 DCD     UART4_IRQHandler              ; UART4 
130                 DCD     UART5_IRQHandler              ; UART5 
131                 DCD     TIM6_DAC_IRQHandler           ; TIM6 and DAC1&2 underrun errors 
132                 DCD     TIM7_IRQHandler               ; TIM7 
133                 DCD     DMA2_Stream0_IRQHandler       ; DMA2 Stream 0 
134                 DCD     DMA2_Stream1_IRQHandler       ; DMA2 Stream 1 
135                 DCD     DMA2_Stream2_IRQHandler       ; DMA2 Stream 2 
136                 DCD     DMA2_Stream3_IRQHandler       ; DMA2 Stream 3 
137                 DCD     DMA2_Stream4_IRQHandler       ; DMA2 Stream 4 
138                 DCD     ETH_IRQHandler                ; Ethernet 
139                 DCD     ETH_WKUP_IRQHandler           ; Ethernet Wakeup through EXTI line 
140                 DCD     CAN2_TX_IRQHandler            ; CAN2 TX 
141                 DCD     CAN2_RX0_IRQHandler           ; CAN2 RX0 
142                 DCD     CAN2_RX1_IRQHandler           ; CAN2 RX1 
143                 DCD     CAN2_SCE_IRQHandler           ; CAN2 SCE 
144                 DCD     OTG_FS_IRQHandler             ; USB OTG FS 
145                 DCD     DMA2_Stream5_IRQHandler       ; DMA2 Stream 5 
146                 DCD     DMA2_Stream6_IRQHandler       ; DMA2 Stream 6 
147                 DCD     DMA2_Stream7_IRQHandler       ; DMA2 Stream 7 
148                 DCD     USART6_IRQHandler             ; USART6 
149                 DCD     I2C3_EV_IRQHandler            ; I2C3 event 
150                 DCD     I2C3_ER_IRQHandler            ; I2C3 error 
151                 DCD     OTG_HS_EP1_OUT_IRQHandler     ; USB OTG HS End Point 1 Out 
152                 DCD     OTG_HS_EP1_IN_IRQHandler      ; USB OTG HS End Point 1 In 
153                 DCD     OTG_HS_WKUP_IRQHandler        ; USB OTG HS Wakeup through EXTI 
154                 DCD     OTG_HS_IRQHandler             ; USB OTG HS 
155                 DCD     DCMI_IRQHandler               ; DCMI 
156                 DCD     CRYP_IRQHandler               ; CRYP crypto 
157                 DCD     HASH_RNG_IRQHandler           ; Hash and Rng 
158                 DCD     FPU_IRQHandler                ; FPU 
159
160
161                 AREA    |.text|, CODE, READONLY
162
163
164 ; Reset Handler
165
166 Reset_Handler   PROC
167                 EXPORT  Reset_Handler             [WEAK]
168                 IMPORT  SystemInit
169                 IMPORT  __main
170                 LDR     R0, =SystemInit
171                 BLX     R0
172                 LDR     R0, =__main
173                 BX      R0
174                 ENDP
175
176
177 ; Dummy Exception Handlers (infinite loops which can be modified)
178
179 NMI_Handler     PROC
180                 EXPORT  NMI_Handler               [WEAK]
181                 B       .
182                 ENDP
183 HardFault_Handler\
184                 PROC
185                 EXPORT  HardFault_Handler         [WEAK]
186                 B       .
187                 ENDP
188 MemManage_Handler\
189                 PROC
190                 EXPORT  MemManage_Handler         [WEAK]
191                 B       .
192                 ENDP
193 BusFault_Handler\
194                 PROC
195                 EXPORT  BusFault_Handler          [WEAK]
196                 B       .
197                 ENDP
198 UsageFault_Handler\
199                 PROC
200                 EXPORT  UsageFault_Handler        [WEAK]
201                 B       .
202                 ENDP
203 SVC_Handler     PROC
204                 EXPORT  SVC_Handler               [WEAK]
205                 B       .
206                 ENDP
207 DebugMon_Handler\
208                 PROC
209                 EXPORT  DebugMon_Handler          [WEAK]
210                 B       .
211                 ENDP
212 PendSV_Handler  PROC
213                 EXPORT  PendSV_Handler            [WEAK]
214                 B       .
215                 ENDP
216 SysTick_Handler PROC
217                 EXPORT  SysTick_Handler           [WEAK]
218                 B       .
219                 ENDP
220
221 Default_Handler PROC
222
223                 EXPORT  WWDG_IRQHandler                 [WEAK]
224                 EXPORT  PVD_IRQHandler                  [WEAK]
225                 EXPORT  TAMP_STAMP_IRQHandler           [WEAK]
226                 EXPORT  RTC_WKUP_IRQHandler             [WEAK]
227                 EXPORT  FLASH_IRQHandler                [WEAK]
228                 EXPORT  RCC_IRQHandler                  [WEAK]
229                 EXPORT  EXTI0_IRQHandler                [WEAK]
230                 EXPORT  EXTI1_IRQHandler                [WEAK]
231                 EXPORT  EXTI2_IRQHandler                [WEAK]
232                 EXPORT  EXTI3_IRQHandler                [WEAK]
233                 EXPORT  EXTI4_IRQHandler                [WEAK]
234                 EXPORT  DMA1_Stream0_IRQHandler         [WEAK]
235                 EXPORT  DMA1_Stream1_IRQHandler         [WEAK]
236                 EXPORT  DMA1_Stream2_IRQHandler         [WEAK]
237                 EXPORT  DMA1_Stream3_IRQHandler         [WEAK]
238                 EXPORT  DMA1_Stream4_IRQHandler         [WEAK]
239                 EXPORT  DMA1_Stream5_IRQHandler         [WEAK]
240                 EXPORT  DMA1_Stream6_IRQHandler         [WEAK]
241                 EXPORT  ADC_IRQHandler                  [WEAK]
242                 EXPORT  CAN1_TX_IRQHandler              [WEAK]
243                 EXPORT  CAN1_RX0_IRQHandler             [WEAK]
244                 EXPORT  CAN1_RX1_IRQHandler             [WEAK]
245                 EXPORT  CAN1_SCE_IRQHandler             [WEAK]
246                 EXPORT  EXTI9_5_IRQHandler              [WEAK]
247                 EXPORT  TIM1_BRK_TIM9_IRQHandler        [WEAK]
248                 EXPORT  TIM1_UP_TIM10_IRQHandler        [WEAK]
249                 EXPORT  TIM1_TRG_COM_TIM11_IRQHandler   [WEAK]
250                 EXPORT  TIM1_CC_IRQHandler              [WEAK]
251                 EXPORT  TIM2_IRQHandler                 [WEAK]
252                 EXPORT  TIM3_IRQHandler                 [WEAK]
253                 EXPORT  TIM4_IRQHandler                 [WEAK]
254                 EXPORT  I2C1_EV_IRQHandler              [WEAK]
255                 EXPORT  I2C1_ER_IRQHandler              [WEAK]
256                 EXPORT  I2C2_EV_IRQHandler              [WEAK]
257                 EXPORT  I2C2_ER_IRQHandler              [WEAK]
258                 EXPORT  SPI1_IRQHandler                 [WEAK]
259                 EXPORT  SPI2_IRQHandler                 [WEAK]
260                 EXPORT  USART1_IRQHandler               [WEAK]
261                 EXPORT  USART2_IRQHandler               [WEAK]
262                 EXPORT  USART3_IRQHandler               [WEAK]
263                 EXPORT  EXTI15_10_IRQHandler            [WEAK]
264                 EXPORT  RTC_Alarm_IRQHandler            [WEAK]
265                 EXPORT  OTG_FS_WKUP_IRQHandler          [WEAK]
266                 EXPORT  TIM8_BRK_TIM12_IRQHandler       [WEAK]
267                 EXPORT  TIM8_UP_TIM13_IRQHandler        [WEAK]
268                 EXPORT  TIM8_TRG_COM_TIM14_IRQHandler   [WEAK]
269                 EXPORT  TIM8_CC_IRQHandler              [WEAK]
270                 EXPORT  DMA1_Stream7_IRQHandler         [WEAK]
271                 EXPORT  FSMC_IRQHandler                 [WEAK]
272                 EXPORT  SDIO_IRQHandler                 [WEAK]
273                 EXPORT  TIM5_IRQHandler                 [WEAK]
274                 EXPORT  SPI3_IRQHandler                 [WEAK]
275                 EXPORT  UART4_IRQHandler                [WEAK]
276                 EXPORT  UART5_IRQHandler                [WEAK]
277                 EXPORT  TIM6_DAC_IRQHandler             [WEAK]
278                 EXPORT  TIM7_IRQHandler                 [WEAK]
279                 EXPORT  DMA2_Stream0_IRQHandler         [WEAK]
280                 EXPORT  DMA2_Stream1_IRQHandler         [WEAK]
281                 EXPORT  DMA2_Stream2_IRQHandler         [WEAK]
282                 EXPORT  DMA2_Stream3_IRQHandler         [WEAK]
283                 EXPORT  DMA2_Stream4_IRQHandler         [WEAK]
284                 EXPORT  ETH_IRQHandler                  [WEAK]
285                 EXPORT  ETH_WKUP_IRQHandler             [WEAK]
286                 EXPORT  CAN2_TX_IRQHandler              [WEAK]
287                 EXPORT  CAN2_RX0_IRQHandler             [WEAK]
288                 EXPORT  CAN2_RX1_IRQHandler             [WEAK]
289                 EXPORT  CAN2_SCE_IRQHandler             [WEAK]
290                 EXPORT  OTG_FS_IRQHandler               [WEAK]
291                 EXPORT  DMA2_Stream5_IRQHandler         [WEAK]
292                 EXPORT  DMA2_Stream6_IRQHandler         [WEAK]
293                 EXPORT  DMA2_Stream7_IRQHandler         [WEAK]
294                 EXPORT  USART6_IRQHandler               [WEAK]
295                 EXPORT  I2C3_EV_IRQHandler              [WEAK]
296                 EXPORT  I2C3_ER_IRQHandler              [WEAK]
297                 EXPORT  OTG_HS_EP1_OUT_IRQHandler       [WEAK]
298                 EXPORT  OTG_HS_EP1_IN_IRQHandler        [WEAK]
299                 EXPORT  OTG_HS_WKUP_IRQHandler          [WEAK]
300                 EXPORT  OTG_HS_IRQHandler               [WEAK]
301                 EXPORT  DCMI_IRQHandler                 [WEAK]
302                 EXPORT  CRYP_IRQHandler                 [WEAK]
303                 EXPORT  HASH_RNG_IRQHandler             [WEAK]
304                 EXPORT  FPU_IRQHandler                  [WEAK]
305
306 WWDG_IRQHandler
307 PVD_IRQHandler
308 TAMP_STAMP_IRQHandler
309 RTC_WKUP_IRQHandler
310 FLASH_IRQHandler
311 RCC_IRQHandler
312 EXTI0_IRQHandler
313 EXTI1_IRQHandler
314 EXTI2_IRQHandler
315 EXTI3_IRQHandler
316 EXTI4_IRQHandler
317 DMA1_Stream0_IRQHandler
318 DMA1_Stream1_IRQHandler
319 DMA1_Stream2_IRQHandler
320 DMA1_Stream3_IRQHandler
321 DMA1_Stream4_IRQHandler
322 DMA1_Stream5_IRQHandler
323 DMA1_Stream6_IRQHandler
324 ADC_IRQHandler
325 CAN1_TX_IRQHandler
326 CAN1_RX0_IRQHandler
327 CAN1_RX1_IRQHandler
328 CAN1_SCE_IRQHandler
329 EXTI9_5_IRQHandler
330 TIM1_BRK_TIM9_IRQHandler
331 TIM1_UP_TIM10_IRQHandler
332 TIM1_TRG_COM_TIM11_IRQHandler
333 TIM1_CC_IRQHandler
334 TIM2_IRQHandler
335 TIM3_IRQHandler
336 TIM4_IRQHandler
337 I2C1_EV_IRQHandler
338 I2C1_ER_IRQHandler
339 I2C2_EV_IRQHandler
340 I2C2_ER_IRQHandler
341 SPI1_IRQHandler
342 SPI2_IRQHandler
343 USART1_IRQHandler
344 USART2_IRQHandler
345 USART3_IRQHandler
346 EXTI15_10_IRQHandler
347 RTC_Alarm_IRQHandler
348 OTG_FS_WKUP_IRQHandler
349 TIM8_BRK_TIM12_IRQHandler
350 TIM8_UP_TIM13_IRQHandler
351 TIM8_TRG_COM_TIM14_IRQHandler
352 TIM8_CC_IRQHandler
353 DMA1_Stream7_IRQHandler
354 FSMC_IRQHandler
355 SDIO_IRQHandler
356 TIM5_IRQHandler
357 SPI3_IRQHandler
358 UART4_IRQHandler
359 UART5_IRQHandler
360 TIM6_DAC_IRQHandler
361 TIM7_IRQHandler
362 DMA2_Stream0_IRQHandler
363 DMA2_Stream1_IRQHandler
364 DMA2_Stream2_IRQHandler
365 DMA2_Stream3_IRQHandler
366 DMA2_Stream4_IRQHandler
367 ETH_IRQHandler
368 ETH_WKUP_IRQHandler
369 CAN2_TX_IRQHandler
370 CAN2_RX0_IRQHandler
371 CAN2_RX1_IRQHandler
372 CAN2_SCE_IRQHandler
373 OTG_FS_IRQHandler
374 DMA2_Stream5_IRQHandler
375 DMA2_Stream6_IRQHandler
376 DMA2_Stream7_IRQHandler
377 USART6_IRQHandler
378 I2C3_EV_IRQHandler
379 I2C3_ER_IRQHandler
380 OTG_HS_EP1_OUT_IRQHandler
381 OTG_HS_EP1_IN_IRQHandler
382 OTG_HS_WKUP_IRQHandler
383 OTG_HS_IRQHandler
384 DCMI_IRQHandler
385 CRYP_IRQHandler
386 HASH_RNG_IRQHandler
387 FPU_IRQHandler
388  
389                 B       .
390
391                 ENDP
392
393
394                 ALIGN
395                 END