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

Last change on this file was 10, checked in by Zed, 14 months 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.