source: ctrl/firmware/Main/SES/STM32H7xx/Source/stm32h723xx_Vectors.s

Last change on this file was 10, checked in by Zed, 7 weeks ago

Added SEGGER project files.

File size: 13.1 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      : stm32h723xx_Vectors.s
40Purpose   : Exception and interrupt vectors for stm32h723xx 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 1024
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_AVD_IRQHandler
203        ISR_HANDLER TAMP_STAMP_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_Stream0_IRQHandler
213        ISR_HANDLER DMA1_Stream1_IRQHandler
214        ISR_HANDLER DMA1_Stream2_IRQHandler
215        ISR_HANDLER DMA1_Stream3_IRQHandler
216        ISR_HANDLER DMA1_Stream4_IRQHandler
217        ISR_HANDLER DMA1_Stream5_IRQHandler
218        ISR_HANDLER DMA1_Stream6_IRQHandler
219        ISR_HANDLER ADC_IRQHandler
220        ISR_HANDLER FDCAN1_IT0_IRQHandler
221        ISR_HANDLER FDCAN2_IT0_IRQHandler
222        ISR_HANDLER FDCAN1_IT1_IRQHandler
223        ISR_HANDLER FDCAN2_IT1_IRQHandler
224        ISR_HANDLER EXTI9_5_IRQHandler
225        ISR_HANDLER TIM1_BRK_IRQHandler
226        ISR_HANDLER TIM1_UP_IRQHandler
227        ISR_HANDLER TIM1_TRG_COM_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_RESERVED
244        ISR_HANDLER TIM8_BRK_TIM12_IRQHandler
245        ISR_HANDLER TIM8_UP_TIM13_IRQHandler
246        ISR_HANDLER TIM8_TRG_COM_TIM14_IRQHandler
247        ISR_HANDLER TIM8_CC_IRQHandler
248        ISR_HANDLER DMA1_Stream7_IRQHandler
249        ISR_HANDLER FMC_IRQHandler
250        ISR_HANDLER SDMMC1_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_IRQHandler
257        ISR_HANDLER DMA2_Stream0_IRQHandler
258        ISR_HANDLER DMA2_Stream1_IRQHandler
259        ISR_HANDLER DMA2_Stream2_IRQHandler
260        ISR_HANDLER DMA2_Stream3_IRQHandler
261        ISR_HANDLER DMA2_Stream4_IRQHandler
262        ISR_HANDLER ETH_IRQHandler
263        ISR_HANDLER ETH_WKUP_IRQHandler
264        ISR_HANDLER FDCAN_CAL_IRQHandler
265        ISR_RESERVED
266        ISR_RESERVED
267        ISR_RESERVED
268        ISR_RESERVED
269        ISR_HANDLER DMA2_Stream5_IRQHandler
270        ISR_HANDLER DMA2_Stream6_IRQHandler
271        ISR_HANDLER DMA2_Stream7_IRQHandler
272        ISR_HANDLER USART6_IRQHandler
273        ISR_HANDLER I2C3_EV_IRQHandler
274        ISR_HANDLER I2C3_ER_IRQHandler
275        ISR_HANDLER OTG_HS_EP1_OUT_IRQHandler
276        ISR_HANDLER OTG_HS_EP1_IN_IRQHandler
277        ISR_HANDLER OTG_HS_WKUP_IRQHandler
278        ISR_HANDLER OTG_HS_IRQHandler
279        ISR_HANDLER DCMI_PSSI_IRQHandler
280        ISR_RESERVED
281        ISR_HANDLER RNG_IRQHandler
282        ISR_HANDLER FPU_IRQHandler
283        ISR_HANDLER UART7_IRQHandler
284        ISR_HANDLER UART8_IRQHandler
285        ISR_HANDLER SPI4_IRQHandler
286        ISR_HANDLER SPI5_IRQHandler
287        ISR_HANDLER SPI6_IRQHandler
288        ISR_HANDLER SAI1_IRQHandler
289        ISR_HANDLER LTDC_IRQHandler
290        ISR_HANDLER LTDC_ER_IRQHandler
291        ISR_HANDLER DMA2D_IRQHandler
292        ISR_RESERVED
293        ISR_HANDLER OCTOSPI1_IRQHandler
294        ISR_HANDLER LPTIM1_IRQHandler
295        ISR_HANDLER CEC_IRQHandler
296        ISR_HANDLER I2C4_EV_IRQHandler
297        ISR_HANDLER I2C4_ER_IRQHandler
298        ISR_HANDLER SPDIF_RX_IRQHandler
299        ISR_RESERVED
300        ISR_RESERVED
301        ISR_RESERVED
302        ISR_RESERVED
303        ISR_HANDLER DMAMUX1_OVR_IRQHandler
304        ISR_RESERVED
305        ISR_RESERVED
306        ISR_RESERVED
307        ISR_RESERVED
308        ISR_RESERVED
309        ISR_RESERVED
310        ISR_RESERVED
311        ISR_HANDLER DFSDM1_FLT0_IRQHandler
312        ISR_HANDLER DFSDM1_FLT1_IRQHandler
313        ISR_HANDLER DFSDM1_FLT2_IRQHandler
314        ISR_HANDLER DFSDM1_FLT3_IRQHandler
315        ISR_RESERVED
316        ISR_HANDLER SWPMI1_IRQHandler
317        ISR_HANDLER TIM15_IRQHandler
318        ISR_HANDLER TIM16_IRQHandler
319        ISR_HANDLER TIM17_IRQHandler
320        ISR_HANDLER MDIOS_WKUP_IRQHandler
321        ISR_HANDLER MDIOS_IRQHandler
322        ISR_RESERVED
323        ISR_HANDLER MDMA_IRQHandler
324        ISR_RESERVED
325        ISR_HANDLER SDMMC2_IRQHandler
326        ISR_HANDLER HSEM1_IRQHandler
327        ISR_RESERVED
328        ISR_HANDLER ADC3_IRQHandler
329        ISR_HANDLER DMAMUX2_OVR_IRQHandler
330        ISR_HANDLER BDMA_Channel0_IRQHandler
331        ISR_HANDLER BDMA_Channel1_IRQHandler
332        ISR_HANDLER BDMA_Channel2_IRQHandler
333        ISR_HANDLER BDMA_Channel3_IRQHandler
334        ISR_HANDLER BDMA_Channel4_IRQHandler
335        ISR_HANDLER BDMA_Channel5_IRQHandler
336        ISR_HANDLER BDMA_Channel6_IRQHandler
337        ISR_HANDLER BDMA_Channel7_IRQHandler
338        ISR_HANDLER COMP1_IRQHandler
339        ISR_HANDLER LPTIM2_IRQHandler
340        ISR_HANDLER LPTIM3_IRQHandler
341        ISR_HANDLER LPTIM4_IRQHandler
342        ISR_HANDLER LPTIM5_IRQHandler
343        ISR_HANDLER LPUART1_IRQHandler
344        ISR_RESERVED
345        ISR_HANDLER CRS_IRQHandler
346        ISR_HANDLER ECC_IRQHandler
347        ISR_HANDLER SAI4_IRQHandler
348        ISR_HANDLER DTS_IRQHandler
349        ISR_RESERVED
350        ISR_HANDLER WAKEUP_PIN_IRQHandler
351        ISR_HANDLER OCTOSPI2_IRQHandler
352        ISR_RESERVED
353        ISR_RESERVED
354        ISR_HANDLER FMAC_IRQHandler
355        ISR_HANDLER CORDIC_IRQHandler
356        ISR_HANDLER UART9_IRQHandler
357        ISR_HANDLER USART10_IRQHandler
358        ISR_HANDLER I2C5_EV_IRQHandler
359        ISR_HANDLER I2C5_ER_IRQHandler
360        ISR_HANDLER FDCAN3_IT0_IRQHandler
361        ISR_HANDLER FDCAN3_IT1_IRQHandler
362        ISR_HANDLER TIM23_IRQHandler
363        ISR_HANDLER TIM24_IRQHandler
364#endif
365        //
366        .section .vectors, "ax"
367_vectors_end:
368
369#ifdef __VECTORS_IN_RAM
370        //
371        // Reserve space with the size of the vector table
372        // in the designated RAM section.
373        //
374        .section .vectors_ram, "ax"
375        .balign 1024
376        .global _vectors_ram
377
378_vectors_ram:
379        .space _vectors_end - _vectors, 0
380#endif
381
382/*********************************************************************
383*
384*  Dummy handler to be used for reserved interrupt vectors
385*  and weak implementation of interrupts.
386*
387*/
388        .section .init.Dummy_Handler, "ax"
389        .thumb_func
390        .weak Dummy_Handler
391        .balign 2
392Dummy_Handler:
393        1: b 1b   // Endless loop
394
395
396/*************************** End of file ****************************/
Note: See TracBrowser for help on using the repository browser.