]> git.sur5r.net Git - freertos/blob - Demo/Cortex_STM32L152_IAR/system_and_ST_code/startup_stm32l1xx_md.s
First phase of changing the directory that starts Cortex, with one that starts CORTEX.
[freertos] / Demo / Cortex_STM32L152_IAR / system_and_ST_code / startup_stm32l1xx_md.s
1 ;/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************\r
2 ;* File Name          : startup_stm32l15x_lp.s\r
3 ;* Author             : MCD Application Team\r
4 ;* Version            : V1.0.0RC1\r
5 ;* Date               : 07/02/2010\r
6 ;* Description        : STM32L15x Low Power Devices vector table for EWARM5.x toolchain.\r
7 ;*                      This module performs:\r
8 ;*                      - Set the initial SP\r
9 ;*                      - Set the initial PC == __iar_program_start,\r
10 ;*                      - Set the vector table entries with the exceptions ISR\r
11 ;*                        address.\r
12 ;*                      After Reset the Cortex-M3 processor is in Thread mode,\r
13 ;*                      priority is Privileged, and the Stack is set to Main.\r
14 ;********************************************************************************\r
15 ;* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS\r
16 ;* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.\r
17 ;* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,\r
18 ;* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE\r
19 ;* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING\r
20 ;* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.\r
21 ;*******************************************************************************/\r
22 ;\r
23 ;\r
24 ; The modules in this file are included in the libraries, and may be replaced\r
25 ; by any user-defined modules that define the PUBLIC symbol _program_start or\r
26 ; a user defined start symbol.\r
27 ; To override the cstartup defined in the library, simply add your modified\r
28 ; version to the workbench project.\r
29 ;\r
30 ; The vector table is normally located at address 0.\r
31 ; When debugging in RAM, it can be located in RAM, aligned to at least 2^6.\r
32 ; The name "__vector_table" has special meaning for C-SPY:\r
33 ; it is where the SP start value is found, and the NVIC vector\r
34 ; table register (VTOR) is initialized to this address if != 0.\r
35 ;\r
36 ; Cortex-M version\r
37 ;\r
38 \r
39         MODULE  ?cstartup\r
40 \r
41         ;; Forward declaration of sections.\r
42         SECTION CSTACK:DATA:NOROOT(3)\r
43 \r
44         SECTION .intvec:CODE:NOROOT(2)\r
45 \r
46         EXTERN  __iar_program_start\r
47         EXTERN  SystemInit\r
48         EXTERN vPortSVCHandler\r
49         EXTERN xPortPendSVHandler\r
50         EXTERN xPortSysTickHandler              \r
51                 \r
52         PUBLIC  __vector_table\r
53 \r
54         DATA\r
55 __vector_table\r
56         DCD     sfe(CSTACK)\r
57         DCD     Reset_Handler             ; Reset Handler\r
58 \r
59         DCD     NMI_Handler               ; NMI Handler\r
60         DCD     HardFault_Handler         ; Hard Fault Handler\r
61         DCD     MemManage_Handler         ; MPU Fault Handler\r
62         DCD     BusFault_Handler          ; Bus Fault Handler\r
63         DCD     UsageFault_Handler        ; Usage Fault Handler\r
64         DCD     0                         ; Reserved\r
65         DCD     0                         ; Reserved\r
66         DCD     0                         ; Reserved\r
67         DCD     0                         ; Reserved\r
68         DCD     vPortSVCHandler           ; SVCall Handler\r
69         DCD     DebugMon_Handler          ; Debug Monitor Handler\r
70         DCD     0                         ; Reserved\r
71         DCD     xPortPendSVHandler        ; PendSV Handler\r
72         DCD     xPortSysTickHandler       ; SysTick Handler\r
73 \r
74          ; External Interrupts\r
75         DCD     WWDG_IRQHandler           ; Window Watchdog\r
76         DCD     PVD_IRQHandler            ; PVD through EXTI Line detect\r
77         DCD     TAMPER_STAMP_IRQHandler   ; Tamper and Time Stamp\r
78         DCD     RTC_WKUP_IRQHandler       ; RTC Wakeup\r
79         DCD     FLASH_IRQHandler          ; FLASH\r
80         DCD     RCC_IRQHandler            ; RCC\r
81         DCD     EXTI0_IRQHandler          ; EXTI Line 0\r
82         DCD     EXTI1_IRQHandler          ; EXTI Line 1\r
83         DCD     EXTI2_IRQHandler          ; EXTI Line 2\r
84         DCD     EXTI3_IRQHandler          ; EXTI Line 3\r
85         DCD     EXTI4_IRQHandler          ; EXTI Line 4\r
86         DCD     DMA1_Channel1_IRQHandler  ; DMA1 Channel 1\r
87         DCD     DMA1_Channel2_IRQHandler  ; DMA1 Channel 2\r
88         DCD     DMA1_Channel3_IRQHandler  ; DMA1 Channel 3\r
89         DCD     DMA1_Channel4_IRQHandler  ; DMA1 Channel 4\r
90         DCD     DMA1_Channel5_IRQHandler  ; DMA1 Channel 5\r
91         DCD     DMA1_Channel6_IRQHandler  ; DMA1 Channel 6\r
92         DCD     DMA1_Channel7_IRQHandler  ; DMA1 Channel 7\r
93         DCD     ADC1_IRQHandler           ; ADC1\r
94         DCD     USB_HP_IRQHandler         ; USB High Priority\r
95         DCD     USB_LP_IRQHandler         ; USB Low  Priority\r
96         DCD     DAC_IRQHandler            ; DAC\r
97         DCD     COMP_IRQHandler           ; COMP through EXTI Line\r
98         DCD     EXTI9_5_IRQHandler        ; EXTI Line 9..5\r
99         DCD     LCD_IRQHandler            ; LCD\r
100         DCD     TIM9_IRQHandler           ; TIM9\r
101         DCD     TIM10_IRQHandler          ; TIM10\r
102         DCD     TIM11_IRQHandler          ; TIM11\r
103         DCD     TIM2_IRQHandler           ; TIM2\r
104         DCD     TIM3_IRQHandler           ; TIM3\r
105         DCD     TIM4_IRQHandler           ; TIM4\r
106         DCD     I2C1_EV_IRQHandler        ; I2C1 Event\r
107         DCD     I2C1_ER_IRQHandler        ; I2C1 Error\r
108         DCD     I2C2_EV_IRQHandler        ; I2C2 Event\r
109         DCD     I2C2_ER_IRQHandler        ; I2C2 Error\r
110         DCD     SPI1_IRQHandler           ; SPI1\r
111         DCD     SPI2_IRQHandler           ; SPI2\r
112         DCD     USART1_IRQHandler         ; USART1\r
113         DCD     USART2_IRQHandler         ; USART2\r
114         DCD     USART3_IRQHandler         ; USART3\r
115         DCD     EXTI15_10_IRQHandler      ; EXTI Line 15..10\r
116         DCD     RTC_Alarm_IRQHandler      ; RTC Alarm through EXTI Line\r
117         DCD     USB_FS_WKUP_IRQHandler    ; USB FS Wakeup from suspend\r
118         DCD     TIM6_IRQHandler           ; TIM6\r
119         DCD     TIM7_IRQHandler           ; TIM7\r
120 \r
121 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
122 ;;\r
123 ;; Default interrupt handlers.\r
124 ;;\r
125         THUMB\r
126 \r
127         PUBWEAK Reset_Handler\r
128         SECTION .text:CODE:REORDER(2)\r
129 Reset_Handler\r
130         LDR     R0, =SystemInit\r
131         BLX     R0\r
132         LDR     R0, =__iar_program_start\r
133         BX      R0\r
134 \r
135         PUBWEAK NMI_Handler\r
136         SECTION .text:CODE:REORDER(1)\r
137 NMI_Handler\r
138         B NMI_Handler\r
139 \r
140 \r
141         PUBWEAK HardFault_Handler\r
142         SECTION .text:CODE:REORDER(1)\r
143 HardFault_Handler\r
144         B HardFault_Handler\r
145 \r
146 \r
147         PUBWEAK MemManage_Handler\r
148         SECTION .text:CODE:REORDER(1)\r
149 MemManage_Handler\r
150         B MemManage_Handler\r
151 \r
152 \r
153         PUBWEAK BusFault_Handler\r
154         SECTION .text:CODE:REORDER(1)\r
155 BusFault_Handler\r
156         B BusFault_Handler\r
157 \r
158 \r
159         PUBWEAK UsageFault_Handler\r
160         SECTION .text:CODE:REORDER(1)\r
161 UsageFault_Handler\r
162         B UsageFault_Handler\r
163 \r
164 \r
165         PUBWEAK SVC_Handler\r
166         SECTION .text:CODE:REORDER(1)\r
167 SVC_Handler\r
168         B SVC_Handler\r
169 \r
170 \r
171         PUBWEAK DebugMon_Handler\r
172         SECTION .text:CODE:REORDER(1)\r
173 DebugMon_Handler\r
174         B DebugMon_Handler\r
175 \r
176 \r
177         PUBWEAK PendSV_Handler\r
178         SECTION .text:CODE:REORDER(1)\r
179 PendSV_Handler\r
180         B PendSV_Handler\r
181 \r
182 \r
183         PUBWEAK SysTick_Handler\r
184         SECTION .text:CODE:REORDER(1)\r
185 SysTick_Handler\r
186         B SysTick_Handler\r
187 \r
188 \r
189         PUBWEAK WWDG_IRQHandler\r
190         SECTION .text:CODE:REORDER(1)\r
191 WWDG_IRQHandler\r
192         B WWDG_IRQHandler\r
193 \r
194 \r
195         PUBWEAK PVD_IRQHandler\r
196         SECTION .text:CODE:REORDER(1)\r
197 PVD_IRQHandler\r
198         B PVD_IRQHandler\r
199 \r
200 \r
201         PUBWEAK TAMPER_STAMP_IRQHandler\r
202         SECTION .text:CODE:REORDER(1)\r
203 TAMPER_STAMP_IRQHandler\r
204         B TAMPER_STAMP_IRQHandler\r
205 \r
206 \r
207         PUBWEAK RTC_WKUP_IRQHandler\r
208         SECTION .text:CODE:REORDER(1)\r
209 RTC_WKUP_IRQHandler\r
210         B RTC_WKUP_IRQHandler\r
211 \r
212 \r
213         PUBWEAK FLASH_IRQHandler\r
214         SECTION .text:CODE:REORDER(1)\r
215 FLASH_IRQHandler\r
216         B FLASH_IRQHandler\r
217 \r
218 \r
219         PUBWEAK RCC_IRQHandler\r
220         SECTION .text:CODE:REORDER(1)\r
221 RCC_IRQHandler\r
222         B RCC_IRQHandler\r
223 \r
224 \r
225         PUBWEAK EXTI0_IRQHandler\r
226         SECTION .text:CODE:REORDER(1)\r
227 EXTI0_IRQHandler\r
228         B EXTI0_IRQHandler\r
229 \r
230 \r
231         PUBWEAK EXTI1_IRQHandler\r
232         SECTION .text:CODE:REORDER(1)\r
233 EXTI1_IRQHandler\r
234         B EXTI1_IRQHandler\r
235 \r
236 \r
237         PUBWEAK EXTI2_IRQHandler\r
238         SECTION .text:CODE:REORDER(1)\r
239 EXTI2_IRQHandler\r
240         B EXTI2_IRQHandler\r
241 \r
242 \r
243         PUBWEAK EXTI3_IRQHandler\r
244         SECTION .text:CODE:REORDER(1)\r
245 EXTI3_IRQHandler\r
246         B EXTI3_IRQHandler\r
247 \r
248 \r
249         PUBWEAK EXTI4_IRQHandler\r
250         SECTION .text:CODE:REORDER(1)\r
251 EXTI4_IRQHandler\r
252         B EXTI4_IRQHandler\r
253 \r
254 \r
255         PUBWEAK DMA1_Channel1_IRQHandler\r
256         SECTION .text:CODE:REORDER(1)\r
257 DMA1_Channel1_IRQHandler\r
258         B DMA1_Channel1_IRQHandler\r
259 \r
260 \r
261         PUBWEAK DMA1_Channel2_IRQHandler\r
262         SECTION .text:CODE:REORDER(1)\r
263 DMA1_Channel2_IRQHandler\r
264         B DMA1_Channel2_IRQHandler\r
265 \r
266 \r
267         PUBWEAK DMA1_Channel3_IRQHandler\r
268         SECTION .text:CODE:REORDER(1)\r
269 DMA1_Channel3_IRQHandler\r
270         B DMA1_Channel3_IRQHandler\r
271 \r
272 \r
273         PUBWEAK DMA1_Channel4_IRQHandler\r
274         SECTION .text:CODE:REORDER(1)\r
275 DMA1_Channel4_IRQHandler\r
276         B DMA1_Channel4_IRQHandler\r
277 \r
278 \r
279         PUBWEAK DMA1_Channel5_IRQHandler\r
280         SECTION .text:CODE:REORDER(1)\r
281 DMA1_Channel5_IRQHandler\r
282         B DMA1_Channel5_IRQHandler\r
283 \r
284 \r
285         PUBWEAK DMA1_Channel6_IRQHandler\r
286         SECTION .text:CODE:REORDER(1)\r
287 DMA1_Channel6_IRQHandler\r
288         B DMA1_Channel6_IRQHandler\r
289 \r
290 \r
291         PUBWEAK DMA1_Channel7_IRQHandler\r
292         SECTION .text:CODE:REORDER(1)\r
293 DMA1_Channel7_IRQHandler\r
294         B DMA1_Channel7_IRQHandler\r
295 \r
296 \r
297         PUBWEAK ADC1_IRQHandler\r
298         SECTION .text:CODE:REORDER(1)\r
299 ADC1_IRQHandler\r
300         B ADC1_IRQHandler\r
301 \r
302 \r
303         PUBWEAK USB_HP_IRQHandler\r
304         SECTION .text:CODE:REORDER(1)\r
305 USB_HP_IRQHandler\r
306         B USB_HP_IRQHandler\r
307 \r
308 \r
309         PUBWEAK USB_LP_IRQHandler\r
310         SECTION .text:CODE:REORDER(1)\r
311 USB_LP_IRQHandler\r
312         B USB_LP_IRQHandler\r
313 \r
314 \r
315         PUBWEAK DAC_IRQHandler\r
316         SECTION .text:CODE:REORDER(1)\r
317 DAC_IRQHandler\r
318         B DAC_IRQHandler\r
319 \r
320 \r
321         PUBWEAK COMP_IRQHandler\r
322         SECTION .text:CODE:REORDER(1)\r
323 COMP_IRQHandler\r
324         B COMP_IRQHandler\r
325 \r
326 \r
327         PUBWEAK EXTI9_5_IRQHandler\r
328         SECTION .text:CODE:REORDER(1)\r
329 EXTI9_5_IRQHandler\r
330         B EXTI9_5_IRQHandler\r
331 \r
332 \r
333         PUBWEAK LCD_IRQHandler\r
334         SECTION .text:CODE:REORDER(1)\r
335 LCD_IRQHandler\r
336         B LCD_IRQHandler\r
337 \r
338 \r
339         PUBWEAK TIM9_IRQHandler\r
340         SECTION .text:CODE:REORDER(1)\r
341 TIM9_IRQHandler\r
342         B TIM9_IRQHandler\r
343 \r
344 \r
345         PUBWEAK TIM10_IRQHandler\r
346         SECTION .text:CODE:REORDER(1)\r
347 TIM10_IRQHandler\r
348         B TIM10_IRQHandler\r
349 \r
350 \r
351         PUBWEAK TIM11_IRQHandler\r
352         SECTION .text:CODE:REORDER(1)\r
353 TIM11_IRQHandler\r
354         B TIM11_IRQHandler\r
355 \r
356 \r
357         PUBWEAK TIM2_IRQHandler\r
358         SECTION .text:CODE:REORDER(1)\r
359 TIM2_IRQHandler\r
360         B TIM2_IRQHandler\r
361 \r
362 \r
363         PUBWEAK TIM3_IRQHandler\r
364         SECTION .text:CODE:REORDER(1)\r
365 TIM3_IRQHandler\r
366         B TIM3_IRQHandler\r
367 \r
368 \r
369         PUBWEAK TIM4_IRQHandler\r
370         SECTION .text:CODE:REORDER(1)\r
371 TIM4_IRQHandler\r
372         B TIM4_IRQHandler\r
373 \r
374 \r
375         PUBWEAK I2C1_EV_IRQHandler\r
376         SECTION .text:CODE:REORDER(1)\r
377 I2C1_EV_IRQHandler\r
378         B I2C1_EV_IRQHandler\r
379 \r
380 \r
381         PUBWEAK I2C1_ER_IRQHandler\r
382         SECTION .text:CODE:REORDER(1)\r
383 I2C1_ER_IRQHandler\r
384         B I2C1_ER_IRQHandler\r
385 \r
386 \r
387         PUBWEAK I2C2_EV_IRQHandler\r
388         SECTION .text:CODE:REORDER(1)\r
389 I2C2_EV_IRQHandler\r
390         B I2C2_EV_IRQHandler\r
391 \r
392 \r
393         PUBWEAK I2C2_ER_IRQHandler\r
394         SECTION .text:CODE:REORDER(1)\r
395 I2C2_ER_IRQHandler\r
396         B I2C2_ER_IRQHandler\r
397 \r
398 \r
399         PUBWEAK SPI1_IRQHandler\r
400         SECTION .text:CODE:REORDER(1)\r
401 SPI1_IRQHandler\r
402         B SPI1_IRQHandler\r
403 \r
404 \r
405         PUBWEAK SPI2_IRQHandler\r
406         SECTION .text:CODE:REORDER(1)\r
407 SPI2_IRQHandler\r
408         B SPI2_IRQHandler\r
409 \r
410 \r
411         PUBWEAK USART1_IRQHandler\r
412         SECTION .text:CODE:REORDER(1)\r
413 USART1_IRQHandler\r
414         B USART1_IRQHandler\r
415 \r
416 \r
417         PUBWEAK USART2_IRQHandler\r
418         SECTION .text:CODE:REORDER(1)\r
419 USART2_IRQHandler\r
420         B USART2_IRQHandler\r
421 \r
422 \r
423         PUBWEAK USART3_IRQHandler\r
424         SECTION .text:CODE:REORDER(1)\r
425 USART3_IRQHandler\r
426         B USART3_IRQHandler\r
427 \r
428 \r
429         PUBWEAK EXTI15_10_IRQHandler\r
430         SECTION .text:CODE:REORDER(1)\r
431 EXTI15_10_IRQHandler\r
432         B EXTI15_10_IRQHandler\r
433 \r
434 \r
435         PUBWEAK RTC_Alarm_IRQHandler\r
436         SECTION .text:CODE:REORDER(1)\r
437 RTC_Alarm_IRQHandler\r
438         B RTC_Alarm_IRQHandler\r
439 \r
440 \r
441         PUBWEAK USB_FS_WKUP_IRQHandler\r
442         SECTION .text:CODE:REORDER(1)\r
443 USB_FS_WKUP_IRQHandler\r
444         B USB_FS_WKUP_IRQHandler\r
445 \r
446 \r
447         PUBWEAK TIM6_IRQHandler\r
448         SECTION .text:CODE:REORDER(1)\r
449 TIM6_IRQHandler\r
450         B TIM6_IRQHandler\r
451 \r
452 \r
453         PUBWEAK TIM7_IRQHandler\r
454         SECTION .text:CODE:REORDER(1)\r
455 TIM7_IRQHandler\r
456         B TIM7_IRQHandler\r
457 \r
458         END\r
459 /******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/\r