source: trunk/firmware/FSBL/SES/STM32N6xx/Source/stm32n657xx_Vectors.s

Last change on this file was 16, checked in by Zed, 5 weeks ago
File size: 14.8 KB
Line 
1/*********************************************************************
2* SEGGER Microcontroller GmbH *
3* The Embedded Experts *
4**********************************************************************
5* *
6* (c) 2014 - 2026 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 : stm32n657xx_Vectors.s
40Purpose : Exception and interrupt vectors for stm32n657xx 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 .global g_pfnVectors
168_vectors:
169g_pfnVectors:
170 //
171 // Internal exceptions and interrupts
172 //
173 VECTOR __stack_end__
174 VECTOR Reset_Handler
175 EXC_HANDLER NMI_Handler
176 VECTOR HardFault_Handler
177#ifdef __ARM_ARCH_6M__
178 ISR_RESERVED
179 ISR_RESERVED
180 ISR_RESERVED
181#else
182 EXC_HANDLER MemManage_Handler
183 EXC_HANDLER BusFault_Handler
184 EXC_HANDLER UsageFault_Handler
185#endif
186 ISR_RESERVED
187 ISR_RESERVED
188 ISR_RESERVED
189 ISR_RESERVED
190 EXC_HANDLER SVC_Handler
191#ifdef __ARM_ARCH_6M__
192 ISR_RESERVED
193#else
194 EXC_HANDLER DebugMon_Handler
195#endif
196 ISR_RESERVED
197 EXC_HANDLER PendSV_Handler
198 EXC_HANDLER SysTick_Handler
199 //
200 // External interrupts
201 //
202#ifndef __NO_EXTERNAL_INTERRUPTS
203 ISR_HANDLER PVD_PVM_IRQHandler
204 ISR_RESERVED
205 ISR_HANDLER DTS_IRQHandler
206 ISR_HANDLER RCC_IRQHandler
207 ISR_HANDLER LOCKUP_IRQHandler
208 ISR_HANDLER CACHE_ECC_IRQHandler
209 ISR_HANDLER TCM_ECC_IRQHandler
210 ISR_HANDLER BCK_ECC_IRQHandler
211 ISR_HANDLER FPU_IRQHandler
212 ISR_RESERVED
213 ISR_HANDLER RTC_S_IRQHandler
214 ISR_HANDLER TAMP_IRQHandler
215 ISR_HANDLER RIFSC_TAMPER_IRQHandler
216 ISR_HANDLER IAC_IRQHandler
217 ISR_HANDLER RCC_S_IRQHandler
218 ISR_RESERVED
219 ISR_HANDLER RTC_IRQHandler
220 ISR_RESERVED
221 ISR_HANDLER IWDG_IRQHandler
222 ISR_HANDLER WWDG_IRQHandler
223 ISR_HANDLER EXTI0_IRQHandler
224 ISR_HANDLER EXTI1_IRQHandler
225 ISR_HANDLER EXTI2_IRQHandler
226 ISR_HANDLER EXTI3_IRQHandler
227 ISR_HANDLER EXTI4_IRQHandler
228 ISR_HANDLER EXTI5_IRQHandler
229 ISR_HANDLER EXTI6_IRQHandler
230 ISR_HANDLER EXTI7_IRQHandler
231 ISR_HANDLER EXTI8_IRQHandler
232 ISR_HANDLER EXTI9_IRQHandler
233 ISR_HANDLER EXTI10_IRQHandler
234 ISR_HANDLER EXTI11_IRQHandler
235 ISR_HANDLER EXTI12_IRQHandler
236 ISR_HANDLER EXTI13_IRQHandler
237 ISR_HANDLER EXTI14_IRQHandler
238 ISR_HANDLER EXTI15_IRQHandler
239 ISR_HANDLER SAES_IRQHandler
240 ISR_HANDLER CRYP_IRQHandler
241 ISR_HANDLER PKA_IRQHandler
242 ISR_HANDLER HASH_IRQHandler
243 ISR_HANDLER RNG_IRQHandler
244 ISR_RESERVED
245 ISR_HANDLER MCE1_IRQHandler
246 ISR_HANDLER MCE2_IRQHandler
247 ISR_HANDLER MCE3_IRQHandler
248 ISR_HANDLER MCE4_IRQHandler
249 ISR_HANDLER ADC1_2_IRQHandler
250 ISR_HANDLER CSI_IRQHandler
251 ISR_HANDLER DCMIPP_IRQHandler
252 ISR_RESERVED
253 ISR_RESERVED
254 ISR_RESERVED
255 ISR_HANDLER PAHB_ERR_IRQHandler
256 ISR_HANDLER NPU0_IRQHandler
257 ISR_HANDLER NPU1_IRQHandler
258 ISR_HANDLER NPU2_IRQHandler
259 ISR_HANDLER NPU3_IRQHandler
260 ISR_HANDLER CACHEAXI_IRQHandler
261 ISR_HANDLER LTDC_LO_IRQHandler
262 ISR_HANDLER LTDC_LO_ERR_IRQHandler
263 ISR_HANDLER DMA2D_IRQHandler
264 ISR_HANDLER JPEG_IRQHandler
265 ISR_HANDLER VENC_IRQHandler
266 ISR_HANDLER GFXMMU_IRQHandler
267 ISR_HANDLER GFXTIM_IRQHandler
268 ISR_HANDLER GPU2D_IRQHandler
269 ISR_HANDLER GPU2D_ER_IRQHandler
270 ISR_HANDLER ICACHE_IRQHandler
271 ISR_HANDLER HPDMA1_Channel0_IRQHandler
272 ISR_HANDLER HPDMA1_Channel1_IRQHandler
273 ISR_HANDLER HPDMA1_Channel2_IRQHandler
274 ISR_HANDLER HPDMA1_Channel3_IRQHandler
275 ISR_HANDLER HPDMA1_Channel4_IRQHandler
276 ISR_HANDLER HPDMA1_Channel5_IRQHandler
277 ISR_HANDLER HPDMA1_Channel6_IRQHandler
278 ISR_HANDLER HPDMA1_Channel7_IRQHandler
279 ISR_HANDLER HPDMA1_Channel8_IRQHandler
280 ISR_HANDLER HPDMA1_Channel9_IRQHandler
281 ISR_HANDLER HPDMA1_Channel10_IRQHandler
282 ISR_HANDLER HPDMA1_Channel11_IRQHandler
283 ISR_HANDLER HPDMA1_Channel12_IRQHandler
284 ISR_HANDLER HPDMA1_Channel13_IRQHandler
285 ISR_HANDLER HPDMA1_Channel14_IRQHandler
286 ISR_HANDLER HPDMA1_Channel15_IRQHandler
287 ISR_HANDLER GPDMA1_Channel0_IRQHandler
288 ISR_HANDLER GPDMA1_Channel1_IRQHandler
289 ISR_HANDLER GPDMA1_Channel2_IRQHandler
290 ISR_HANDLER GPDMA1_Channel3_IRQHandler
291 ISR_HANDLER GPDMA1_Channel4_IRQHandler
292 ISR_HANDLER GPDMA1_Channel5_IRQHandler
293 ISR_HANDLER GPDMA1_Channel6_IRQHandler
294 ISR_HANDLER GPDMA1_Channel7_IRQHandler
295 ISR_HANDLER GPDMA1_Channel8_IRQHandler
296 ISR_HANDLER GPDMA1_Channel9_IRQHandler
297 ISR_HANDLER GPDMA1_Channel10_IRQHandler
298 ISR_HANDLER GPDMA1_Channel11_IRQHandler
299 ISR_HANDLER GPDMA1_Channel12_IRQHandler
300 ISR_HANDLER GPDMA1_Channel13_IRQHandler
301 ISR_HANDLER GPDMA1_Channel14_IRQHandler
302 ISR_HANDLER GPDMA1_Channel15_IRQHandler
303 ISR_HANDLER I2C1_EV_IRQHandler
304 ISR_HANDLER I2C1_ER_IRQHandler
305 ISR_HANDLER I2C2_EV_IRQHandler
306 ISR_HANDLER I2C2_ER_IRQHandler
307 ISR_HANDLER I2C3_EV_IRQHandler
308 ISR_HANDLER I2C3_ER_IRQHandler
309 ISR_HANDLER I2C4_EV_IRQHandler
310 ISR_HANDLER I2C4_ER_IRQHandler
311 ISR_HANDLER I3C1_EV_IRQHandler
312 ISR_HANDLER I3C1_ER_IRQHandler
313 ISR_HANDLER I3C2_EV_IRQHandler
314 ISR_HANDLER I3C2_ER_IRQHandler
315 ISR_HANDLER TIM1_BRK_IRQHandler
316 ISR_HANDLER TIM1_UP_IRQHandler
317 ISR_HANDLER TIM1_TRG_CCU_IRQHandler
318 ISR_HANDLER TIM1_CC_IRQHandler
319 ISR_HANDLER TIM2_IRQHandler
320 ISR_HANDLER TIM3_IRQHandler
321 ISR_HANDLER TIM4_IRQHandler
322 ISR_HANDLER TIM5_IRQHandler
323 ISR_HANDLER TIM6_IRQHandler
324 ISR_HANDLER TIM7_IRQHandler
325 ISR_HANDLER TIM8_BRK_IRQHandler
326 ISR_HANDLER TIM8_UP_IRQHandler
327 ISR_HANDLER TIM8_TRG_CCU_IRQHandler
328 ISR_HANDLER TIM8_CC_IRQHandler
329 ISR_HANDLER TIM9_IRQHandler
330 ISR_HANDLER TIM10_IRQHandler
331 ISR_HANDLER TIM11_IRQHandler
332 ISR_HANDLER TIM12_IRQHandler
333 ISR_HANDLER TIM13_IRQHandler
334 ISR_HANDLER TIM14_IRQHandler
335 ISR_HANDLER TIM15_IRQHandler
336 ISR_HANDLER TIM16_IRQHandler
337 ISR_HANDLER TIM17_IRQHandler
338 ISR_HANDLER TIM18_IRQHandler
339 ISR_HANDLER LPTIM1_IRQHandler
340 ISR_HANDLER LPTIM2_IRQHandler
341 ISR_HANDLER LPTIM3_IRQHandler
342 ISR_HANDLER LPTIM4_IRQHandler
343 ISR_HANDLER LPTIM5_IRQHandler
344 ISR_HANDLER ADF1_FLT0_IRQHandler
345 ISR_HANDLER MDF1_FLT0_IRQHandler
346 ISR_HANDLER MDF1_FLT1_IRQHandler
347 ISR_HANDLER MDF1_FLT2_IRQHandler
348 ISR_HANDLER MDF1_FLT3_IRQHandler
349 ISR_HANDLER MDF1_FLT4_IRQHandler
350 ISR_HANDLER MDF1_FLT5_IRQHandler
351 ISR_HANDLER SAI1_A_IRQHandler
352 ISR_HANDLER SAI1_B_IRQHandler
353 ISR_HANDLER SAI2_A_IRQHandler
354 ISR_HANDLER SAI2_B_IRQHandler
355 ISR_HANDLER SPDIFRX_IRQHandler
356 ISR_HANDLER SPI1_IRQHandler
357 ISR_HANDLER SPI2_IRQHandler
358 ISR_HANDLER SPI3_IRQHandler
359 ISR_HANDLER SPI4_IRQHandler
360 ISR_HANDLER SPI5_IRQHandler
361 ISR_HANDLER SPI6_IRQHandler
362 ISR_HANDLER USART1_IRQHandler
363 ISR_HANDLER USART2_IRQHandler
364 ISR_HANDLER USART3_IRQHandler
365 ISR_HANDLER UART4_IRQHandler
366 ISR_HANDLER UART5_IRQHandler
367 ISR_HANDLER USART6_IRQHandler
368 ISR_HANDLER UART7_IRQHandler
369 ISR_HANDLER UART8_IRQHandler
370 ISR_HANDLER UART9_IRQHandler
371 ISR_HANDLER USART10_IRQHandler
372 ISR_HANDLER LPUART1_IRQHandler
373 ISR_HANDLER XSPI1_IRQHandler
374 ISR_HANDLER XSPI2_IRQHandler
375 ISR_HANDLER XSPI3_IRQHandler
376 ISR_HANDLER FMC_IRQHandler
377 ISR_HANDLER SDMMC1_IRQHandler
378 ISR_HANDLER SDMMC2_IRQHandler
379 ISR_HANDLER UCPD1_IRQHandler
380 ISR_HANDLER USB1_OTG_HS_IRQHandler
381 ISR_HANDLER USB2_OTG_HS_IRQHandler
382 ISR_HANDLER ETH1_IRQHandler
383 ISR_HANDLER FDCAN1_IT0_IRQHandler
384 ISR_HANDLER FDCAN1_IT1_IRQHandler
385 ISR_HANDLER FDCAN2_IT0_IRQHandler
386 ISR_HANDLER FDCAN2_IT1_IRQHandler
387 ISR_HANDLER FDCAN3_IT0_IRQHandler
388 ISR_HANDLER FDCAN3_IT1_IRQHandler
389 ISR_HANDLER FDCAN_CU_IRQHandler
390 ISR_HANDLER MDIOS_IRQHandler
391 ISR_HANDLER DCMI_PSSI_IRQHandler
392 ISR_HANDLER WAKEUP_PIN_IRQHandler
393 ISR_HANDLER CTI_INT0_IRQHandler
394 ISR_HANDLER CTI_INT1_IRQHandler
395 ISR_RESERVED
396 ISR_HANDLER LTDC_UP_IRQHandler
397 ISR_HANDLER LTDC_UP_ERR_IRQHandler
398#endif
399 //
400 .section .vectors, "ax"
401_vectors_end:
402
403#ifdef __VECTORS_IN_RAM
404 //
405 // Reserve space with the size of the vector table
406 // in the designated RAM section.
407 //
408 .section .vectors_ram, "ax"
409 .balign 1024
410 .global _vectors_ram
411
412_vectors_ram:
413 .space _vectors_end - _vectors, 0
414#endif
415
416/*********************************************************************
417*
418* Dummy handler to be used for reserved interrupt vectors
419* and weak implementation of interrupts.
420*
421*/
422 .section .init.Dummy_Handler, "ax"
423 .thumb_func
424 .weak Dummy_Handler
425 .balign 2
426Dummy_Handler:
427 1: b 1b // Endless loop
428
429
430/*************************** End of file ****************************/
Note: See TracBrowser for help on using the repository browser.