source: trunk/firmware_cube/EWARM/startup_stm32c011xx.s @ 8

Last change on this file since 8 was 7, checked in by f.jahn, 5 months ago
File size: 8.8 KB
Line 
1;******************************************************************************
2;* File Name          : startup_stm32c011xx.s
3;* Author             : MCD Application Team
4;* Description        : STM32C011xx devices vector table for EWARM toolchain.
5;*                      This module performs:
6;*                      - Set the initial SP
7;*                      - Set the initial PC == __iar_program_start,
8;*                      - Set the vector table entries with the exceptions ISR
9;*                        address
10;*                      - Branches to main in the C library (which eventually
11;*                        calls main()).
12;*                      After Reset the Cortex-M0+ processor is in Thread mode,
13;*                      priority is Privileged, and the Stack is set to Main.
14;******************************************************************************
15;* @attention
16;*
17;* Copyright (c) 2022 STMicroelectronics.
18;* All rights reserved.
19;*
20;* This software is licensed under terms that can be found in the LICENSE file
21;* in the root directory of this software component.
22;* If no LICENSE file comes with this software, it is provided AS-IS.
23;*
24;*******************************************************************************
25;
26; The modules in this file are included in the libraries, and may be replaced
27; by any user-defined modules that define the PUBLIC symbol _program_start or
28; a user defined start symbol.
29; To override the cstartup defined in the library, simply add your modified
30; version to the workbench project.
31;
32; The vector table is normally located at address 0.
33; When debugging in RAM, it can be located in RAM, aligned to at least 2^6.
34; The name "__vector_table" has special meaning for C-SPY:
35; it is where the SP start value is found, and the NVIC vector
36; table register (VTOR) is initialized to this address if != 0.
37;
38; Cortex-M version
39;
40
41        MODULE  ?cstartup
42
43        ;; Forward declaration of sections.
44        SECTION CSTACK:DATA:NOROOT(3)
45
46        SECTION .intvec:CODE:NOROOT(2)
47
48        EXTERN  __iar_program_start
49        EXTERN  SystemInit
50        PUBLIC  __vector_table
51
52        DATA
53__vector_table
54        DCD     sfe(CSTACK)
55        DCD     Reset_Handler                  ; Reset Handler
56
57        DCD     NMI_Handler                    ; NMI Handler
58        DCD     HardFault_Handler              ; Hard Fault Handler
59        DCD     0                              ; Reserved
60        DCD     0                              ; Reserved
61        DCD     0                              ; Reserved
62        DCD     0                              ; Reserved
63        DCD     0                              ; Reserved
64        DCD     0                              ; Reserved
65        DCD     0                              ; Reserved
66        DCD     SVC_Handler                    ; SVCall Handler
67        DCD     0                              ; Reserved
68        DCD     0                              ; Reserved
69        DCD     PendSV_Handler                 ; PendSV Handler
70        DCD     SysTick_Handler                ; SysTick Handler
71
72        ; External Interrupts
73        DCD     WWDG_IRQHandler                ; Window Watchdog
74        DCD     0                              ; Reserved
75        DCD     RTC_IRQHandler                 ; RTC through EXTI Line
76        DCD     FLASH_IRQHandler               ; FLASH
77        DCD     RCC_IRQHandler                 ; RCC
78        DCD     EXTI0_1_IRQHandler             ; EXTI Line 0 and 1
79        DCD     EXTI2_3_IRQHandler             ; EXTI Line 2 and 3
80        DCD     EXTI4_15_IRQHandler            ; EXTI Line 4 to 15
81        DCD     0                              ; Reserved
82        DCD     DMA1_Channel1_IRQHandler       ; DMA1 Channel 1
83        DCD     DMA1_Channel2_3_IRQHandler     ; DMA1 Channel 2 and Channel 3
84        DCD     DMAMUX1_IRQHandler             ; DMAMUX
85        DCD     ADC1_IRQHandler                ; ADC1
86        DCD     TIM1_BRK_UP_TRG_COM_IRQHandler ; TIM1 Break, Update, Trigger and Commutation
87        DCD     TIM1_CC_IRQHandler             ; TIM1 Capture Compare
88        DCD     0                              ; Reserved
89        DCD     TIM3_IRQHandler                ; TIM3
90        DCD     0                              ; Reserved
91        DCD     0                              ; Reserved
92        DCD     TIM14_IRQHandler               ; TIM14
93        DCD     0                              ; Reserved
94        DCD     TIM16_IRQHandler               ; TIM16
95        DCD     TIM17_IRQHandler               ; TIM17
96        DCD     I2C1_IRQHandler                ; I2C1
97        DCD     0                              ; Reserved
98        DCD     SPI1_IRQHandler                ; SPI1
99        DCD     0                              ; Reserved
100        DCD     USART1_IRQHandler              ; USART1
101        DCD     USART2_IRQHandler              ; USART2
102        DCD     0                              ; Reserved
103        DCD     0                              ; Reserved
104        DCD     0                              ; Reserved
105
106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
107;;
108;; Default interrupt handlers.
109;;
110        THUMB
111
112        PUBWEAK Reset_Handler
113        SECTION .text:CODE:NOROOT:REORDER(2)
114Reset_Handler
115        LDR     R0, =SystemInit
116        BLX     R0
117        LDR     R0, =__iar_program_start
118        BX      R0
119       
120        PUBWEAK NMI_Handler
121        SECTION .text:CODE:NOROOT:REORDER(1)
122NMI_Handler
123        B NMI_Handler
124
125        PUBWEAK HardFault_Handler
126        SECTION .text:CODE:NOROOT:REORDER(1)
127HardFault_Handler
128        B HardFault_Handler
129
130        PUBWEAK SVC_Handler
131        SECTION .text:CODE:NOROOT:REORDER(1)
132SVC_Handler
133        B SVC_Handler
134
135        PUBWEAK PendSV_Handler
136        SECTION .text:CODE:NOROOT:REORDER(1)
137PendSV_Handler
138        B PendSV_Handler
139
140        PUBWEAK SysTick_Handler
141        SECTION .text:CODE:NOROOT:REORDER(1)
142SysTick_Handler
143        B SysTick_Handler
144
145        PUBWEAK WWDG_IRQHandler
146        SECTION .text:CODE:NOROOT:REORDER(1)
147WWDG_IRQHandler
148        B WWDG_IRQHandler
149
150        PUBWEAK RTC_IRQHandler
151        SECTION .text:CODE:NOROOT:REORDER(1)
152RTC_IRQHandler
153        B RTC_IRQHandler
154       
155        PUBWEAK FLASH_IRQHandler
156        SECTION .text:CODE:NOROOT:REORDER(1)
157FLASH_IRQHandler
158        B FLASH_IRQHandler
159
160        PUBWEAK RCC_IRQHandler
161        SECTION .text:CODE:NOROOT:REORDER(1)
162RCC_IRQHandler
163        B RCC_IRQHandler
164
165        PUBWEAK EXTI0_1_IRQHandler
166        SECTION .text:CODE:NOROOT:REORDER(1)
167EXTI0_1_IRQHandler
168        B EXTI0_1_IRQHandler
169
170        PUBWEAK EXTI2_3_IRQHandler
171        SECTION .text:CODE:NOROOT:REORDER(1)
172EXTI2_3_IRQHandler
173        B EXTI2_3_IRQHandler
174
175        PUBWEAK EXTI4_15_IRQHandler
176        SECTION .text:CODE:NOROOT:REORDER(1)
177EXTI4_15_IRQHandler
178        B EXTI4_15_IRQHandler
179
180        PUBWEAK DMA1_Channel1_IRQHandler
181        SECTION .text:CODE:NOROOT:REORDER(1)
182DMA1_Channel1_IRQHandler
183        B DMA1_Channel1_IRQHandler
184
185        PUBWEAK DMA1_Channel2_3_IRQHandler
186        SECTION .text:CODE:NOROOT:REORDER(1)
187DMA1_Channel2_3_IRQHandler
188        B DMA1_Channel2_3_IRQHandler
189
190        PUBWEAK DMAMUX1_IRQHandler
191        SECTION .text:CODE:NOROOT:REORDER(1)
192DMAMUX1_IRQHandler
193        B DMAMUX1_IRQHandler
194
195        PUBWEAK ADC1_IRQHandler
196        SECTION .text:CODE:NOROOT:REORDER(1)
197ADC1_IRQHandler
198        B ADC1_IRQHandler
199
200        PUBWEAK TIM1_BRK_UP_TRG_COM_IRQHandler
201        SECTION .text:CODE:NOROOT:REORDER(1)
202TIM1_BRK_UP_TRG_COM_IRQHandler
203        B TIM1_BRK_UP_TRG_COM_IRQHandler
204
205        PUBWEAK TIM1_CC_IRQHandler
206        SECTION .text:CODE:NOROOT:REORDER(1)
207TIM1_CC_IRQHandler
208        B TIM1_CC_IRQHandler
209
210        PUBWEAK TIM3_IRQHandler
211        SECTION .text:CODE:NOROOT:REORDER(1)
212TIM3_IRQHandler
213        B TIM3_IRQHandler
214
215        PUBWEAK TIM14_IRQHandler
216        SECTION .text:CODE:NOROOT:REORDER(1)
217TIM14_IRQHandler
218        B TIM14_IRQHandler
219
220        PUBWEAK TIM16_IRQHandler
221        SECTION .text:CODE:NOROOT:REORDER(1)
222TIM16_IRQHandler
223        B TIM16_IRQHandler
224
225        PUBWEAK TIM17_IRQHandler
226        SECTION .text:CODE:NOROOT:REORDER(1)
227TIM17_IRQHandler
228        B TIM17_IRQHandler
229
230        PUBWEAK I2C1_IRQHandler
231        SECTION .text:CODE:NOROOT:REORDER(1)
232I2C1_IRQHandler
233        B I2C1_IRQHandler
234
235        PUBWEAK SPI1_IRQHandler
236        SECTION .text:CODE:NOROOT:REORDER(1)
237SPI1_IRQHandler
238        B SPI1_IRQHandler
239
240        PUBWEAK USART1_IRQHandler
241        SECTION .text:CODE:NOROOT:REORDER(1)
242USART1_IRQHandler
243        B USART1_IRQHandler
244
245        PUBWEAK USART2_IRQHandler
246        SECTION .text:CODE:NOROOT:REORDER(1)
247USART2_IRQHandler
248        B USART2_IRQHandler
249
250;#pragma default_function_attributes = @ ".prot_func"
251        SECTION .prot_func:CODE
252        PUBLIC StickyCall
253        ;BKP2R_ADDRESS EQU 0x4000b108
254StickyCall
255        LDR R0, =0x40
256        LSLS R0, R0, #16
257        LDR R1, =0x70
258        ADD R0, R0, R1
259        LSLS R0, R0, #8
260        LDR R1, =0x74
261        ADD R0, R0, R1
262        LDR R0, [R0]
263        BX  LR
264;#pragma default_function_attributes =
265
266        END
267
Note: See TracBrowser for help on using the repository browser.