]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10x.s
Update version number to 8.1.2 after moving the defaulting of configUSE_PORT_OPTIMISE...
[freertos] / FreeRTOS / Demo / CORTEX_STM32F103_Keil / STM32F10x.s
1 ;/*****************************************************************************/\r
2 ;/* STM32F10x.s: Startup file for ST STM32F10x device series                  */\r
3 ;/*****************************************************************************/\r
4 ;/* <<< Use Configuration Wizard in Context Menu >>>                          */\r
5 ;/*****************************************************************************/\r
6 ;/* This file is part of the uVision/ARM development tools.                   */\r
7 ;/* Copyright (c) 2005-2007 Keil Software. All rights reserved.               */\r
8 ;/* This software may only be used under the terms of a valid, current,       */\r
9 ;/* end user licence from KEIL for a compatible version of KEIL software      */\r
10 ;/* development tools. Nothing else gives you the right to use this software. */\r
11 ;/*****************************************************************************/\r
12 \r
13 \r
14 ;// <h> Stack Configuration\r
15 ;//   <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>\r
16 ;// </h>\r
17 \r
18 Stack_Size      EQU     0x00000200\r
19 \r
20                 AREA    STACK, NOINIT, READWRITE, ALIGN=3\r
21 Stack_Mem       SPACE   Stack_Size\r
22 __initial_sp\r
23 \r
24 \r
25 ;// <h> Heap Configuration\r
26 ;//   <o>  Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>\r
27 ;// </h>\r
28 \r
29 Heap_Size       EQU     0x00000000\r
30 \r
31                 AREA    HEAP, NOINIT, READWRITE, ALIGN=3\r
32 __heap_base\r
33 Heap_Mem        SPACE   Heap_Size\r
34 __heap_limit\r
35 \r
36                                 IMPORT xPortPendSVHandler\r
37                                 IMPORT xPortSysTickHandler\r
38                                 IMPORT vPortSVCHandler\r
39                                 IMPORT vUARTInterruptHandler\r
40                                 IMPORT vTimer2IntHandler\r
41 \r
42                 PRESERVE8\r
43                 THUMB\r
44 \r
45 \r
46 ; Vector Table Mapped to Address 0 at Reset\r
47 \r
48                 AREA    RESET, DATA, READONLY\r
49                 EXPORT  __Vectors\r
50 \r
51 __Vectors       DCD     __initial_sp              ; Top of Stack\r
52                 DCD     Reset_Handler             ; Reset Handler\r
53                 DCD     NMI_Handler               ; NMI Handler\r
54                 DCD     HardFault_Handler         ; Hard Fault Handler\r
55                 DCD     MemManage_Handler         ; MPU Fault Handler\r
56                 DCD     BusFault_Handler          ; Bus Fault Handler\r
57                 DCD     UsageFault_Handler        ; Usage Fault Handler\r
58                 DCD     0                         ; Reserved\r
59                 DCD     0                         ; Reserved\r
60                 DCD     0                         ; Reserved\r
61                 DCD     0                         ; Reserved\r
62                 DCD     vPortSVCHandler           ; SVCall Handler\r
63                 DCD     DebugMon_Handler          ; Debug Monitor Handler\r
64                 DCD     0                         ; Reserved\r
65                 DCD     xPortPendSVHandler        ; PendSV Handler\r
66                 DCD     xPortSysTickHandler       ; SysTick Handler\r
67 \r
68                 ; External Interrupts\r
69                 DCD     WWDG_IRQHandler           ; Window Watchdog\r
70                 DCD     PVD_IRQHandler            ; PVD through EXTI Line detect\r
71                 DCD     TAMPER_IRQHandler         ; Tamper\r
72                 DCD     RTC_IRQHandler            ; RTC\r
73                 DCD     FLASH_IRQHandler          ; Flash\r
74                 DCD     RCC_IRQHandler            ; RCC\r
75                 DCD     EXTI0_IRQHandler          ; EXTI Line 0\r
76                 DCD     EXTI1_IRQHandler          ; EXTI Line 1\r
77                 DCD     EXTI2_IRQHandler          ; EXTI Line 2\r
78                 DCD     EXTI3_IRQHandler          ; EXTI Line 3\r
79                 DCD     EXTI4_IRQHandler          ; EXTI Line 4\r
80                 DCD     DMAChannel1_IRQHandler    ; DMA Channel 1\r
81                 DCD     DMAChannel2_IRQHandler    ; DMA Channel 2\r
82                 DCD     DMAChannel3_IRQHandler    ; DMA Channel 3\r
83                 DCD     DMAChannel4_IRQHandler    ; DMA Channel 4\r
84                 DCD     DMAChannel5_IRQHandler    ; DMA Channel 5\r
85                 DCD     DMAChannel6_IRQHandler    ; DMA Channel 6\r
86                 DCD     DMAChannel7_IRQHandler    ; DMA Channel 7\r
87                 DCD     ADC_IRQHandler            ; ADC\r
88                 DCD     USB_HP_CAN_TX_IRQHandler  ; USB High Priority or CAN TX\r
89                 DCD     USB_LP_CAN_RX0_IRQHandler ; USB Low  Priority or CAN RX0\r
90                 DCD     CAN_RX1_IRQHandler        ; CAN RX1\r
91                 DCD     CAN_SCE_IRQHandler        ; CAN SCE\r
92                 DCD     EXTI9_5_IRQHandler        ; EXTI Line 9..5\r
93                 DCD     TIM1_BRK_IRQHandler       ; TIM1 Break\r
94                 DCD     TIM1_UP_IRQHandler        ; TIM1 Update\r
95                 DCD     TIM1_TRG_COM_IRQHandler   ; TIM1 Trigger and Commutation\r
96                 DCD     TIM1_CC_IRQHandler        ; TIM1 Capture Compare\r
97                 DCD     vTimer2IntHandler         ; TIM2\r
98                 DCD     TIM3_IRQHandler           ; TIM3\r
99                 DCD     TIM4_IRQHandler           ; TIM4\r
100                 DCD     I2C1_EV_IRQHandler        ; I2C1 Event\r
101                 DCD     I2C1_ER_IRQHandler        ; I2C1 Error\r
102                 DCD     I2C2_EV_IRQHandler        ; I2C2 Event\r
103                 DCD     I2C2_ER_IRQHandler        ; I2C2 Error\r
104                 DCD     SPI1_IRQHandler           ; SPI1\r
105                 DCD     SPI2_IRQHandler           ; SPI2\r
106                 DCD     vUARTInterruptHandler     ; USART1\r
107                 DCD     USART2_IRQHandler         ; USART2\r
108                 DCD     USART3_IRQHandler         ; USART3\r
109                 DCD     EXTI15_10_IRQHandler      ; EXTI Line 15..10\r
110                 DCD     RTCAlarm_IRQHandler       ; RTC Alarm through EXTI Line\r
111                 DCD     USBWakeUp_IRQHandler      ; USB Wakeup from suspend\r
112 \r
113 \r
114                 AREA    |.text|, CODE, READONLY\r
115 \r
116 \r
117 ; Reset Handler\r
118 \r
119 Reset_Handler   PROC\r
120                 EXPORT  Reset_Handler             [WEAK]\r
121                 IMPORT  __main\r
122                 LDR     R0, =__main\r
123                 BX      R0\r
124                 ENDP\r
125 \r
126 \r
127 ; Dummy Exception Handlers (infinite loops which can be modified)                \r
128 \r
129 NMI_Handler     PROC\r
130                 EXPORT  NMI_Handler               [WEAK]\r
131                 B       .\r
132                 ENDP\r
133 HardFault_Handler\\r
134                 PROC\r
135                 EXPORT  HardFault_Handler         [WEAK]\r
136                 B       .\r
137                 ENDP\r
138 MemManage_Handler\\r
139                 PROC\r
140                 EXPORT  MemManage_Handler         [WEAK]\r
141                 B       .\r
142                 ENDP\r
143 BusFault_Handler\\r
144                 PROC\r
145                 EXPORT  BusFault_Handler          [WEAK]\r
146                 B       .\r
147                 ENDP\r
148 UsageFault_Handler\\r
149                 PROC\r
150                 EXPORT  UsageFault_Handler        [WEAK]\r
151                 B       .\r
152                 ENDP\r
153 SVC_Handler     PROC\r
154                 EXPORT  SVC_Handler               [WEAK]\r
155                 B       .\r
156                 ENDP\r
157 DebugMon_Handler\\r
158                 PROC\r
159                 EXPORT  DebugMon_Handler          [WEAK]\r
160                 B       .\r
161                 ENDP\r
162 PendSV_Handler  PROC\r
163                 EXPORT  PendSV_Handler            [WEAK]\r
164                 B       .\r
165                 ENDP\r
166 SysTick_Handler PROC\r
167                 EXPORT  SysTick_Handler           [WEAK]\r
168                 B       .\r
169                 ENDP\r
170 \r
171 Default_Handler PROC\r
172 \r
173                 EXPORT  WWDG_IRQHandler           [WEAK]\r
174                 EXPORT  PVD_IRQHandler            [WEAK]\r
175                 EXPORT  TAMPER_IRQHandler         [WEAK]\r
176                 EXPORT  RTC_IRQHandler            [WEAK]\r
177                 EXPORT  FLASH_IRQHandler          [WEAK]\r
178                 EXPORT  RCC_IRQHandler            [WEAK]\r
179                 EXPORT  EXTI0_IRQHandler          [WEAK]\r
180                 EXPORT  EXTI1_IRQHandler          [WEAK]\r
181                 EXPORT  EXTI2_IRQHandler          [WEAK]\r
182                 EXPORT  EXTI3_IRQHandler          [WEAK]\r
183                 EXPORT  EXTI4_IRQHandler          [WEAK]\r
184                 EXPORT  DMAChannel1_IRQHandler    [WEAK]\r
185                 EXPORT  DMAChannel2_IRQHandler    [WEAK]\r
186                 EXPORT  DMAChannel3_IRQHandler    [WEAK]\r
187                 EXPORT  DMAChannel4_IRQHandler    [WEAK]\r
188                 EXPORT  DMAChannel5_IRQHandler    [WEAK]\r
189                 EXPORT  DMAChannel6_IRQHandler    [WEAK]\r
190                 EXPORT  DMAChannel7_IRQHandler    [WEAK]\r
191                 EXPORT  ADC_IRQHandler            [WEAK]\r
192                 EXPORT  USB_HP_CAN_TX_IRQHandler  [WEAK]\r
193                 EXPORT  USB_LP_CAN_RX0_IRQHandler [WEAK]\r
194                 EXPORT  CAN_RX1_IRQHandler        [WEAK]\r
195                 EXPORT  CAN_SCE_IRQHandler        [WEAK]\r
196                 EXPORT  EXTI9_5_IRQHandler        [WEAK]\r
197                 EXPORT  TIM1_BRK_IRQHandler       [WEAK]\r
198                 EXPORT  TIM1_UP_IRQHandler        [WEAK]\r
199                 EXPORT  TIM1_TRG_COM_IRQHandler   [WEAK]\r
200                 EXPORT  TIM1_CC_IRQHandler        [WEAK]\r
201                 EXPORT  TIM2_IRQHandler           [WEAK]\r
202                 EXPORT  TIM3_IRQHandler           [WEAK]\r
203                 EXPORT  TIM4_IRQHandler           [WEAK]\r
204                 EXPORT  I2C1_EV_IRQHandler        [WEAK]\r
205                 EXPORT  I2C1_ER_IRQHandler        [WEAK]\r
206                 EXPORT  I2C2_EV_IRQHandler        [WEAK]\r
207                 EXPORT  I2C2_ER_IRQHandler        [WEAK]\r
208                 EXPORT  SPI1_IRQHandler           [WEAK]\r
209                 EXPORT  SPI2_IRQHandler           [WEAK]\r
210                 EXPORT  USART1_IRQHandler         [WEAK]\r
211                 EXPORT  USART2_IRQHandler         [WEAK]\r
212                 EXPORT  USART3_IRQHandler         [WEAK]\r
213                 EXPORT  EXTI15_10_IRQHandler      [WEAK]\r
214                 EXPORT  RTCAlarm_IRQHandler       [WEAK]\r
215                 EXPORT  USBWakeUp_IRQHandler      [WEAK]\r
216 \r
217 WWDG_IRQHandler\r
218 PVD_IRQHandler\r
219 TAMPER_IRQHandler\r
220 RTC_IRQHandler\r
221 FLASH_IRQHandler\r
222 RCC_IRQHandler\r
223 EXTI0_IRQHandler\r
224 EXTI1_IRQHandler\r
225 EXTI2_IRQHandler\r
226 EXTI3_IRQHandler\r
227 EXTI4_IRQHandler\r
228 DMAChannel1_IRQHandler\r
229 DMAChannel2_IRQHandler\r
230 DMAChannel3_IRQHandler\r
231 DMAChannel4_IRQHandler\r
232 DMAChannel5_IRQHandler\r
233 DMAChannel6_IRQHandler\r
234 DMAChannel7_IRQHandler\r
235 ADC_IRQHandler\r
236 USB_HP_CAN_TX_IRQHandler\r
237 USB_LP_CAN_RX0_IRQHandler\r
238 CAN_RX1_IRQHandler\r
239 CAN_SCE_IRQHandler\r
240 EXTI9_5_IRQHandler\r
241 TIM1_BRK_IRQHandler\r
242 TIM1_UP_IRQHandler\r
243 TIM1_TRG_COM_IRQHandler\r
244 TIM1_CC_IRQHandler\r
245 TIM2_IRQHandler\r
246 TIM3_IRQHandler\r
247 TIM4_IRQHandler\r
248 I2C1_EV_IRQHandler\r
249 I2C1_ER_IRQHandler\r
250 I2C2_EV_IRQHandler\r
251 I2C2_ER_IRQHandler\r
252 SPI1_IRQHandler\r
253 SPI2_IRQHandler\r
254 USART1_IRQHandler\r
255 USART2_IRQHandler\r
256 USART3_IRQHandler\r
257 EXTI15_10_IRQHandler\r
258 RTCAlarm_IRQHandler\r
259 USBWakeUp_IRQHandler\r
260 \r
261                 B       .\r
262 \r
263                 ENDP\r
264 \r
265 \r
266                 ALIGN\r
267 \r
268 \r
269 ; User Initial Stack & Heap\r
270 \r
271                 IF      :DEF:__MICROLIB\r
272                 \r
273                 EXPORT  __initial_sp\r
274                 EXPORT  __heap_base\r
275                 EXPORT  __heap_limit\r
276                 \r
277                 ELSE\r
278                 \r
279                 IMPORT  __use_two_region_memory\r
280                 EXPORT  __user_initial_stackheap\r
281 __user_initial_stackheap\r
282 \r
283                 LDR     R0, =  Heap_Mem\r
284                 LDR     R1, =(Stack_Mem + Stack_Size)\r
285                 LDR     R2, = (Heap_Mem +  Heap_Size)\r
286                 LDR     R3, = Stack_Mem\r
287                 BX      LR\r
288 \r
289                 ALIGN\r
290 \r
291                 ENDIF\r
292 \r
293 \r
294                 END\r