source: trunk/fw_g473rct/SES/STM32G4xx/Source/stm32g473xx_Vectors.s

Last change on this file was 20, checked in by f.jahn, 5 days ago

adc dma funktioniert und modbus funktioniert

File size: 11.0 KB
Line 
1/*********************************************************************
2*                    SEGGER Microcontroller GmbH                     *
3*                        The Embedded Experts                        *
4**********************************************************************
5*                                                                    *
6*            (c) 2014 - 2024 SEGGER Microcontroller GmbH             *
7*                                                                    *
8*       www.segger.com     Support: support@segger.com               *
9*                                                                    *
10**********************************************************************
11*                                                                    *
12* All rights reserved.                                               *
13*                                                                    *
14* Redistribution and use in source and binary forms, with or         *
15* without modification, are permitted provided that the following    *
16* condition is met:                                                  *
17*                                                                    *
18* - Redistributions of source code must retain the above copyright   *
19*   notice, this condition and the following disclaimer.             *
20*                                                                    *
21* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND             *
22* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,        *
23* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF           *
24* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE           *
25* DISCLAIMED. IN NO EVENT SHALL SEGGER Microcontroller BE LIABLE FOR *
26* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR           *
27* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT  *
28* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;    *
29* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF      *
30* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT          *
31* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE  *
32* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH   *
33* DAMAGE.                                                            *
34*                                                                    *
35**********************************************************************
36
37-------------------------- END-OF-HEADER -----------------------------
38
39File      : stm32g473xx_Vectors.s
40Purpose   : Exception and interrupt vectors for stm32g473xx devices.
41
42Additional information:
43  Preprocessor Definitions
44    __NO_EXTERNAL_INTERRUPTS
45      If defined,
46        the vector table will contain only the internal exceptions
47        and interrupts.
48    __VECTORS_IN_RAM
49      If defined,
50        an area of RAM, large enough to store the vector table,
51        will be reserved.
52
53    __OPTIMIZATION_SMALL
54      If defined,
55        all weak definitions of interrupt handlers will share the
56        same implementation.
57      If not defined,
58        all weak definitions of interrupt handlers will be defined
59        with their own implementation.
60*/
61        .syntax unified
62
63/*********************************************************************
64*
65*       Macros
66*
67**********************************************************************
68*/
69
70//
71// Directly place a vector (word) in the vector table
72//
73.macro VECTOR Name=
74        .section .vectors, "ax"
75        .code 16
76        .word \Name
77.endm
78
79//
80// Declare an exception handler with a weak definition
81//
82.macro EXC_HANDLER Name=
83        //
84        // Insert vector in vector table
85        //
86        .section .vectors, "ax"
87        .word \Name
88        //
89        // Insert dummy handler in init section
90        //
91        .section .init.\Name, "ax"
92        .thumb_func
93        .weak \Name
94        .balign 2
95\Name:
96        1: b 1b   // Endless loop
97.endm
98
99//
100// Declare an interrupt handler with a weak definition
101//
102.macro ISR_HANDLER Name=
103        //
104        // Insert vector in vector table
105        //
106        .section .vectors, "ax"
107        .word \Name
108        //
109        // Insert dummy handler in init section
110        //
111#if defined(__OPTIMIZATION_SMALL)
112        .section .init, "ax"
113        .weak \Name
114        .thumb_set \Name,Dummy_Handler
115#else
116        .section .init.\Name, "ax"
117        .thumb_func
118        .weak \Name
119        .balign 2
120\Name:
121        1: b 1b   // Endless loop
122#endif
123.endm
124
125//
126// Place a reserved vector in vector table
127//
128.macro ISR_RESERVED
129        .section .vectors, "ax"
130        .word 0
131.endm
132
133//
134// Place a reserved vector in vector table
135//
136.macro ISR_RESERVED_DUMMY
137        .section .vectors, "ax"
138        .word Dummy_Handler
139.endm
140
141/*********************************************************************
142*
143*       Externals
144*
145**********************************************************************
146*/
147        .extern __stack_end__
148        .extern Reset_Handler
149        .extern HardFault_Handler
150
151/*********************************************************************
152*
153*       Global functions
154*
155**********************************************************************
156*/
157
158/*********************************************************************
159*
160*  Setup of the vector table and weak definition of interrupt handlers
161*
162*/
163        .section .vectors, "ax"
164        .code 16
165        .balign 512
166        .global _vectors
167_vectors:
168        //
169        // Internal exceptions and interrupts
170        //
171        VECTOR __stack_end__
172        VECTOR Reset_Handler
173        EXC_HANDLER NMI_Handler
174        VECTOR HardFault_Handler
175#ifdef __ARM_ARCH_6M__
176        ISR_RESERVED
177        ISR_RESERVED
178        ISR_RESERVED
179#else
180        EXC_HANDLER MemManage_Handler
181        EXC_HANDLER BusFault_Handler
182        EXC_HANDLER UsageFault_Handler
183#endif
184        ISR_RESERVED
185        ISR_RESERVED
186        ISR_RESERVED
187        ISR_RESERVED
188        EXC_HANDLER SVC_Handler
189#ifdef __ARM_ARCH_6M__
190        ISR_RESERVED
191#else
192        EXC_HANDLER DebugMon_Handler
193#endif
194        ISR_RESERVED
195        EXC_HANDLER PendSV_Handler
196        EXC_HANDLER SysTick_Handler
197        //
198        // External interrupts
199        //
200#ifndef __NO_EXTERNAL_INTERRUPTS
201        ISR_HANDLER WWDG_IRQHandler
202        ISR_HANDLER PVD_PVM_IRQHandler
203        ISR_HANDLER RTC_TAMP_LSECSS_IRQHandler
204        ISR_HANDLER RTC_WKUP_IRQHandler
205        ISR_HANDLER FLASH_IRQHandler
206        ISR_HANDLER RCC_IRQHandler
207        ISR_HANDLER EXTI0_IRQHandler
208        ISR_HANDLER EXTI1_IRQHandler
209        ISR_HANDLER EXTI2_IRQHandler
210        ISR_HANDLER EXTI3_IRQHandler
211        ISR_HANDLER EXTI4_IRQHandler
212        ISR_HANDLER DMA1_Channel1_IRQHandler
213        ISR_HANDLER DMA1_Channel2_IRQHandler
214        ISR_HANDLER DMA1_Channel3_IRQHandler
215        ISR_HANDLER DMA1_Channel4_IRQHandler
216        ISR_HANDLER DMA1_Channel5_IRQHandler
217        ISR_HANDLER DMA1_Channel6_IRQHandler
218        ISR_HANDLER DMA1_Channel7_IRQHandler
219        ISR_HANDLER ADC1_2_IRQHandler
220        ISR_HANDLER USB_HP_IRQHandler
221        ISR_HANDLER USB_LP_IRQHandler
222        ISR_HANDLER FDCAN1_IT0_IRQHandler
223        ISR_HANDLER FDCAN1_IT1_IRQHandler
224        ISR_HANDLER EXTI9_5_IRQHandler
225        ISR_HANDLER TIM1_BRK_TIM15_IRQHandler
226        ISR_HANDLER TIM1_UP_TIM16_IRQHandler
227        ISR_HANDLER TIM1_TRG_COM_TIM17_IRQHandler
228        ISR_HANDLER TIM1_CC_IRQHandler
229        ISR_HANDLER TIM2_IRQHandler
230        ISR_HANDLER TIM3_IRQHandler
231        ISR_HANDLER TIM4_IRQHandler
232        ISR_HANDLER I2C1_EV_IRQHandler
233        ISR_HANDLER I2C1_ER_IRQHandler
234        ISR_HANDLER I2C2_EV_IRQHandler
235        ISR_HANDLER I2C2_ER_IRQHandler
236        ISR_HANDLER SPI1_IRQHandler
237        ISR_HANDLER SPI2_IRQHandler
238        ISR_HANDLER USART1_IRQHandler
239        ISR_HANDLER USART2_IRQHandler
240        ISR_HANDLER USART3_IRQHandler
241        ISR_HANDLER EXTI15_10_IRQHandler
242        ISR_HANDLER RTC_Alarm_IRQHandler
243        ISR_HANDLER USBWakeUp_IRQHandler
244        ISR_HANDLER TIM8_BRK_IRQHandler
245        ISR_HANDLER TIM8_UP_IRQHandler
246        ISR_HANDLER TIM8_TRG_COM_IRQHandler
247        ISR_HANDLER TIM8_CC_IRQHandler
248        ISR_HANDLER ADC3_IRQHandler
249        ISR_HANDLER FMC_IRQHandler
250        ISR_HANDLER LPTIM1_IRQHandler
251        ISR_HANDLER TIM5_IRQHandler
252        ISR_HANDLER SPI3_IRQHandler
253        ISR_HANDLER UART4_IRQHandler
254        ISR_HANDLER UART5_IRQHandler
255        ISR_HANDLER TIM6_DAC_IRQHandler
256        ISR_HANDLER TIM7_DAC_IRQHandler
257        ISR_HANDLER DMA2_Channel1_IRQHandler
258        ISR_HANDLER DMA2_Channel2_IRQHandler
259        ISR_HANDLER DMA2_Channel3_IRQHandler
260        ISR_HANDLER DMA2_Channel4_IRQHandler
261        ISR_HANDLER DMA2_Channel5_IRQHandler
262        ISR_HANDLER ADC4_IRQHandler
263        ISR_HANDLER ADC5_IRQHandler
264        ISR_HANDLER UCPD1_IRQHandler
265        ISR_HANDLER COMP1_2_3_IRQHandler
266        ISR_HANDLER COMP4_5_6_IRQHandler
267        ISR_HANDLER COMP7_IRQHandler
268        ISR_RESERVED
269        ISR_RESERVED
270        ISR_RESERVED
271        ISR_RESERVED
272        ISR_RESERVED
273        ISR_RESERVED
274        ISR_RESERVED
275        ISR_RESERVED
276        ISR_HANDLER CRS_IRQHandler
277        ISR_HANDLER SAI1_IRQHandler
278        ISR_HANDLER TIM20_BRK_IRQHandler
279        ISR_HANDLER TIM20_UP_IRQHandler
280        ISR_HANDLER TIM20_TRG_COM_IRQHandler
281        ISR_HANDLER TIM20_CC_IRQHandler
282        ISR_HANDLER FPU_IRQHandler
283        ISR_HANDLER I2C4_EV_IRQHandler
284        ISR_HANDLER I2C4_ER_IRQHandler
285        ISR_HANDLER SPI4_IRQHandler
286        ISR_RESERVED
287        ISR_HANDLER FDCAN2_IT0_IRQHandler
288        ISR_HANDLER FDCAN2_IT1_IRQHandler
289        ISR_HANDLER FDCAN3_IT0_IRQHandler
290        ISR_HANDLER FDCAN3_IT1_IRQHandler
291        ISR_HANDLER RNG_IRQHandler
292        ISR_HANDLER LPUART1_IRQHandler
293        ISR_HANDLER I2C3_EV_IRQHandler
294        ISR_HANDLER I2C3_ER_IRQHandler
295        ISR_HANDLER DMAMUX_OVR_IRQHandler
296        ISR_HANDLER QUADSPI_IRQHandler
297        ISR_HANDLER DMA1_Channel8_IRQHandler
298        ISR_HANDLER DMA2_Channel6_IRQHandler
299        ISR_HANDLER DMA2_Channel7_IRQHandler
300        ISR_HANDLER DMA2_Channel8_IRQHandler
301        ISR_HANDLER CORDIC_IRQHandler
302        ISR_HANDLER FMAC_IRQHandler
303#endif
304        //
305        .section .vectors, "ax"
306_vectors_end:
307
308#ifdef __VECTORS_IN_RAM
309        //
310        // Reserve space with the size of the vector table
311        // in the designated RAM section.
312        //
313        .section .vectors_ram, "ax"
314        .balign 512
315        .global _vectors_ram
316
317_vectors_ram:
318        .space _vectors_end - _vectors, 0
319#endif
320
321/*********************************************************************
322*
323*  Dummy handler to be used for reserved interrupt vectors
324*  and weak implementation of interrupts.
325*
326*/
327        .section .init.Dummy_Handler, "ax"
328        .thumb_func
329        .weak Dummy_Handler
330        .balign 2
331Dummy_Handler:
332        1: b 1b   // Endless loop
333
334
335/*************************** End of file ****************************/
Note: See TracBrowser for help on using the repository browser.