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