HPM SDK
HPMicro Software Development Kit
vectors.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2021-2025 HPMicro
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 #ifdef __IAR_SYSTEMS_ASM__
8 
9 IRQ_HANDLER macro
10  dc32 default_isr_\1
11  endm
12 
13 IRQ_DEFAULT_HANDLER macro
14  PUBWEAK default_isr_\1
15 default_isr_\1
17  endm
18 
19  SECTION `.isr_vector`:CODE:ROOT(9)
20  PUBWEAK default_irq_handler
23  IRQ_DEFAULT_HANDLER 1 /* GPIO0_A IRQ handler */
24  IRQ_DEFAULT_HANDLER 2 /* GPIO0_B IRQ handler */
25  IRQ_DEFAULT_HANDLER 3 /* GPIO0_X IRQ handler */
26  IRQ_DEFAULT_HANDLER 4 /* GPIO0_Y IRQ handler */
27  IRQ_DEFAULT_HANDLER 5 /* GPTMR0 IRQ handler */
28  IRQ_DEFAULT_HANDLER 6 /* GPTMR1 IRQ handler */
29  IRQ_DEFAULT_HANDLER 7 /* Reserved */
30  IRQ_DEFAULT_HANDLER 8 /* Reserved */
31  IRQ_DEFAULT_HANDLER 9 /* Reserved */
32  IRQ_DEFAULT_HANDLER 10 /* Reserved */
33  IRQ_DEFAULT_HANDLER 11 /* Reserved */
34  IRQ_DEFAULT_HANDLER 12 /* Reserved */
35  IRQ_DEFAULT_HANDLER 13 /* UART0 IRQ handler */
36  IRQ_DEFAULT_HANDLER 14 /* UART1 IRQ handler */
37  IRQ_DEFAULT_HANDLER 15 /* UART2 IRQ handler */
38  IRQ_DEFAULT_HANDLER 16 /* UART3 IRQ handler */
39  IRQ_DEFAULT_HANDLER 17 /* Reserved */
40  IRQ_DEFAULT_HANDLER 18 /* Reserved */
41  IRQ_DEFAULT_HANDLER 19 /* Reserved */
42  IRQ_DEFAULT_HANDLER 20 /* Reserved */
43  IRQ_DEFAULT_HANDLER 21 /* I2C0 IRQ handler */
44  IRQ_DEFAULT_HANDLER 22 /* I2C1 IRQ handler */
45  IRQ_DEFAULT_HANDLER 23 /* I2C2 IRQ handler */
46  IRQ_DEFAULT_HANDLER 24 /* I2C3 IRQ handler */
47  IRQ_DEFAULT_HANDLER 25 /* SPI0 IRQ handler */
48  IRQ_DEFAULT_HANDLER 26 /* SPI1 IRQ handler */
49  IRQ_DEFAULT_HANDLER 27 /* SPI2 IRQ handler */
50  IRQ_DEFAULT_HANDLER 28 /* SPI3 IRQ handler */
51  IRQ_DEFAULT_HANDLER 29 /* TSNS IRQ handler */
52  IRQ_DEFAULT_HANDLER 30 /* MBX0A IRQ handler */
53  IRQ_DEFAULT_HANDLER 31 /* MBX0B IRQ handler */
54  IRQ_DEFAULT_HANDLER 32 /* EWDG0 IRQ handler */
55  IRQ_DEFAULT_HANDLER 33 /* EWDG1 IRQ handler */
56  IRQ_DEFAULT_HANDLER 34 /* HDMA IRQ handler */
57  IRQ_DEFAULT_HANDLER 35 /* Reserved */
58  IRQ_DEFAULT_HANDLER 36 /* Reserved */
59  IRQ_DEFAULT_HANDLER 37 /* Reserved */
60  IRQ_DEFAULT_HANDLER 38 /* Reserved */
61  IRQ_DEFAULT_HANDLER 39 /* Reserved */
62  IRQ_DEFAULT_HANDLER 40 /* Reserved */
63  IRQ_DEFAULT_HANDLER 41 /* Reserved */
64  IRQ_DEFAULT_HANDLER 42 /* Reserved */
65  IRQ_DEFAULT_HANDLER 43 /* Reserved */
66  IRQ_DEFAULT_HANDLER 44 /* TRGMUX0 IRQ handler */
67  IRQ_DEFAULT_HANDLER 45 /* Reserved */
68  IRQ_DEFAULT_HANDLER 46 /* Reserved */
69  IRQ_DEFAULT_HANDLER 47 /* Reserved */
70  IRQ_DEFAULT_HANDLER 48 /* Reserved */
71  IRQ_DEFAULT_HANDLER 49 /* TRGMUX1 IRQ handler */
72  IRQ_DEFAULT_HANDLER 50 /* Reserved */
73  IRQ_DEFAULT_HANDLER 51 /* USB0 IRQ handler */
74  IRQ_DEFAULT_HANDLER 52 /* XPI0 IRQ handler */
75  IRQ_DEFAULT_HANDLER 53 /* Reserved */
76  IRQ_DEFAULT_HANDLER 54 /* PSEC IRQ handler */
77  IRQ_DEFAULT_HANDLER 55 /* SECMON IRQ handler */
78  IRQ_DEFAULT_HANDLER 56 /* Reserved */
79  IRQ_DEFAULT_HANDLER 57 /* FUSE IRQ handler */
80  IRQ_DEFAULT_HANDLER 58 /* ADC0 IRQ handler */
81  IRQ_DEFAULT_HANDLER 59 /* Reserved */
82  IRQ_DEFAULT_HANDLER 60 /* Reserved */
83  IRQ_DEFAULT_HANDLER 61 /* Reserved */
84  IRQ_DEFAULT_HANDLER 62 /* ACMP_0 IRQ handler */
85  IRQ_DEFAULT_HANDLER 63 /* ACMP_1 IRQ handler */
86  IRQ_DEFAULT_HANDLER 64 /* SYSCTL IRQ handler */
87  IRQ_DEFAULT_HANDLER 65 /* PGPIO IRQ handler */
88  IRQ_DEFAULT_HANDLER 66 /* PTMR IRQ handler */
89  IRQ_DEFAULT_HANDLER 67 /* PUART IRQ handler */
90  IRQ_DEFAULT_HANDLER 68 /* PEWDG IRQ handler */
91  IRQ_DEFAULT_HANDLER 69 /* BROWNOUT IRQ handler */
92  IRQ_DEFAULT_HANDLER 70 /* PAD_WAKEUP IRQ handler */
93  IRQ_DEFAULT_HANDLER 71 /* DEBUG0 IRQ handler */
94  IRQ_DEFAULT_HANDLER 72 /* DEBUG1 IRQ handler */
95 
96  EXTERN irq_handler_trap
97  SECTION `.vector_table`:CODE:ROOT(9)
98  PUBLIC __vector_table
99  DATA
100 
101 __vector_table
102 #if (!defined(USE_NONVECTOR_MODE) || (USE_NONVECTOR_MODE == 0)) && defined(CONFIG_FREERTOS)
103  dc32 freertos_risc_v_trap_handler
104 #else
105  dc32 irq_handler_trap
106 #endif
107  IRQ_HANDLER 1 /* GPIO0_A IRQ handler */
108  IRQ_HANDLER 2 /* GPIO0_B IRQ handler */
109  IRQ_HANDLER 3 /* GPIO0_X IRQ handler */
110  IRQ_HANDLER 4 /* GPIO0_Y IRQ handler */
111  IRQ_HANDLER 5 /* GPTMR0 IRQ handler */
112  IRQ_HANDLER 6 /* GPTMR1 IRQ handler */
113  IRQ_HANDLER 7 /* Reserved */
114  IRQ_HANDLER 8 /* Reserved */
115  IRQ_HANDLER 9 /* Reserved */
116  IRQ_HANDLER 10 /* Reserved */
117  IRQ_HANDLER 11 /* Reserved */
118  IRQ_HANDLER 12 /* Reserved */
119  IRQ_HANDLER 13 /* UART0 IRQ handler */
120  IRQ_HANDLER 14 /* UART1 IRQ handler */
121  IRQ_HANDLER 15 /* UART2 IRQ handler */
122  IRQ_HANDLER 16 /* UART3 IRQ handler */
123  IRQ_HANDLER 17 /* Reserved */
124  IRQ_HANDLER 18 /* Reserved */
125  IRQ_HANDLER 19 /* Reserved */
126  IRQ_HANDLER 20 /* Reserved */
127  IRQ_HANDLER 21 /* I2C0 IRQ handler */
128  IRQ_HANDLER 22 /* I2C1 IRQ handler */
129  IRQ_HANDLER 23 /* I2C2 IRQ handler */
130  IRQ_HANDLER 24 /* I2C3 IRQ handler */
131  IRQ_HANDLER 25 /* SPI0 IRQ handler */
132  IRQ_HANDLER 26 /* SPI1 IRQ handler */
133  IRQ_HANDLER 27 /* SPI2 IRQ handler */
134  IRQ_HANDLER 28 /* SPI3 IRQ handler */
135  IRQ_HANDLER 29 /* TSNS IRQ handler */
136  IRQ_HANDLER 30 /* MBX0A IRQ handler */
137  IRQ_HANDLER 31 /* MBX0B IRQ handler */
138  IRQ_HANDLER 32 /* EWDG0 IRQ handler */
139  IRQ_HANDLER 33 /* EWDG1 IRQ handler */
140  IRQ_HANDLER 34 /* HDMA IRQ handler */
141  IRQ_HANDLER 35 /* Reserved */
142  IRQ_HANDLER 36 /* Reserved */
143  IRQ_HANDLER 37 /* Reserved */
144  IRQ_HANDLER 38 /* Reserved */
145  IRQ_HANDLER 39 /* Reserved */
146  IRQ_HANDLER 40 /* Reserved */
147  IRQ_HANDLER 41 /* Reserved */
148  IRQ_HANDLER 42 /* Reserved */
149  IRQ_HANDLER 43 /* Reserved */
150  IRQ_HANDLER 44 /* TRGMUX0 IRQ handler */
151  IRQ_HANDLER 45 /* Reserved */
152  IRQ_HANDLER 46 /* Reserved */
153  IRQ_HANDLER 47 /* Reserved */
154  IRQ_HANDLER 48 /* Reserved */
155  IRQ_HANDLER 49 /* TRGMUX1 IRQ handler */
156  IRQ_HANDLER 50 /* Reserved */
157  IRQ_HANDLER 51 /* USB0 IRQ handler */
158  IRQ_HANDLER 52 /* XPI0 IRQ handler */
159  IRQ_HANDLER 53 /* Reserved */
160  IRQ_HANDLER 54 /* PSEC IRQ handler */
161  IRQ_HANDLER 55 /* SECMON IRQ handler */
162  IRQ_HANDLER 56 /* Reserved */
163  IRQ_HANDLER 57 /* FUSE IRQ handler */
164  IRQ_HANDLER 58 /* ADC0 IRQ handler */
165  IRQ_HANDLER 59 /* Reserved */
166  IRQ_HANDLER 60 /* Reserved */
167  IRQ_HANDLER 61 /* Reserved */
168  IRQ_HANDLER 62 /* ACMP_0 IRQ handler */
169  IRQ_HANDLER 63 /* ACMP_1 IRQ handler */
170  IRQ_HANDLER 64 /* SYSCTL IRQ handler */
171  IRQ_HANDLER 65 /* PGPIO IRQ handler */
172  IRQ_HANDLER 66 /* PTMR IRQ handler */
173  IRQ_HANDLER 67 /* PUART IRQ handler */
174  IRQ_HANDLER 68 /* PEWDG IRQ handler */
175  IRQ_HANDLER 69 /* BROWNOUT IRQ handler */
176  IRQ_HANDLER 70 /* PAD_WAKEUP IRQ handler */
177  IRQ_HANDLER 71 /* DEBUG0 IRQ handler */
178  IRQ_HANDLER 72 /* DEBUG1 IRQ handler */
179 
180 #else
181 
183 .align 2
185 1: j 1b
186 
187 .macro IRQ_HANDLER irq
188  .weak default_isr_\irq
189  .set default_isr_\irq, default_irq_handler
190  .long default_isr_\irq
191 .endm
192 
193 .section .vector_table, "a"
194 .global __vector_table
195 .align 9
196 
197 #if (!defined(USE_NONVECTOR_MODE) || (USE_NONVECTOR_MODE == 0)) && defined(CONFIG_FREERTOS)
198  .set default_isr_trap, freertos_risc_v_trap_handler
199 #else
201 #endif
202 
203 __vector_table:
204  .weak default_isr_trap
205  .long default_isr_trap
206  IRQ_HANDLER 1 /* GPIO0_A IRQ handler */
207  IRQ_HANDLER 2 /* GPIO0_B IRQ handler */
208  IRQ_HANDLER 3 /* GPIO0_X IRQ handler */
209  IRQ_HANDLER 4 /* GPIO0_Y IRQ handler */
210  IRQ_HANDLER 5 /* GPTMR0 IRQ handler */
211  IRQ_HANDLER 6 /* GPTMR1 IRQ handler */
212  IRQ_HANDLER 7 /* Reserved */
213  IRQ_HANDLER 8 /* Reserved */
214  IRQ_HANDLER 9 /* Reserved */
215  IRQ_HANDLER 10 /* Reserved */
216  IRQ_HANDLER 11 /* Reserved */
217  IRQ_HANDLER 12 /* Reserved */
218  IRQ_HANDLER 13 /* UART0 IRQ handler */
219  IRQ_HANDLER 14 /* UART1 IRQ handler */
220  IRQ_HANDLER 15 /* UART2 IRQ handler */
221  IRQ_HANDLER 16 /* UART3 IRQ handler */
222  IRQ_HANDLER 17 /* Reserved */
223  IRQ_HANDLER 18 /* Reserved */
224  IRQ_HANDLER 19 /* Reserved */
225  IRQ_HANDLER 20 /* Reserved */
226  IRQ_HANDLER 21 /* I2C0 IRQ handler */
227  IRQ_HANDLER 22 /* I2C1 IRQ handler */
228  IRQ_HANDLER 23 /* I2C2 IRQ handler */
229  IRQ_HANDLER 24 /* I2C3 IRQ handler */
230  IRQ_HANDLER 25 /* SPI0 IRQ handler */
231  IRQ_HANDLER 26 /* SPI1 IRQ handler */
232  IRQ_HANDLER 27 /* SPI2 IRQ handler */
233  IRQ_HANDLER 28 /* SPI3 IRQ handler */
234  IRQ_HANDLER 29 /* TSNS IRQ handler */
235  IRQ_HANDLER 30 /* MBX0A IRQ handler */
236  IRQ_HANDLER 31 /* MBX0B IRQ handler */
237  IRQ_HANDLER 32 /* EWDG0 IRQ handler */
238  IRQ_HANDLER 33 /* EWDG1 IRQ handler */
239  IRQ_HANDLER 34 /* HDMA IRQ handler */
240  IRQ_HANDLER 35 /* Reserved */
241  IRQ_HANDLER 36 /* Reserved */
242  IRQ_HANDLER 37 /* Reserved */
243  IRQ_HANDLER 38 /* Reserved */
244  IRQ_HANDLER 39 /* Reserved */
245  IRQ_HANDLER 40 /* Reserved */
246  IRQ_HANDLER 41 /* Reserved */
247  IRQ_HANDLER 42 /* Reserved */
248  IRQ_HANDLER 43 /* Reserved */
249  IRQ_HANDLER 44 /* TRGMUX0 IRQ handler */
250  IRQ_HANDLER 45 /* Reserved */
251  IRQ_HANDLER 46 /* Reserved */
252  IRQ_HANDLER 47 /* Reserved */
253  IRQ_HANDLER 48 /* Reserved */
254  IRQ_HANDLER 49 /* TRGMUX1 IRQ handler */
255  IRQ_HANDLER 50 /* Reserved */
256  IRQ_HANDLER 51 /* USB0 IRQ handler */
257  IRQ_HANDLER 52 /* XPI0 IRQ handler */
258  IRQ_HANDLER 53 /* Reserved */
259  IRQ_HANDLER 54 /* PSEC IRQ handler */
260  IRQ_HANDLER 55 /* SECMON IRQ handler */
261  IRQ_HANDLER 56 /* Reserved */
262  IRQ_HANDLER 57 /* FUSE IRQ handler */
263  IRQ_HANDLER 58 /* ADC0 IRQ handler */
264  IRQ_HANDLER 59 /* Reserved */
265  IRQ_HANDLER 60 /* Reserved */
266  IRQ_HANDLER 61 /* Reserved */
267  IRQ_HANDLER 62 /* ACMP_0 IRQ handler */
268  IRQ_HANDLER 63 /* ACMP_1 IRQ handler */
269  IRQ_HANDLER 64 /* SYSCTL IRQ handler */
270  IRQ_HANDLER 65 /* PGPIO IRQ handler */
271  IRQ_HANDLER 66 /* PTMR IRQ handler */
272  IRQ_HANDLER 67 /* PUART IRQ handler */
273  IRQ_HANDLER 68 /* PEWDG IRQ handler */
274  IRQ_HANDLER 69 /* BROWNOUT IRQ handler */
275  IRQ_HANDLER 70 /* PAD_WAKEUP IRQ handler */
276  IRQ_HANDLER 71 /* DEBUG0 IRQ handler */
277  IRQ_HANDLER 72 /* DEBUG1 IRQ handler */
278 
279 #endif
HPM_ATTR_MACHINE_INTERRUPT void irq_handler_trap(void)
Definition: trap.c:109
weak default_irq_handler align default_irq_handler long default_isr_ irq endm section a global __vector_table align set default_isr_trap
Definition: vectors.h:200
weak default_irq_handler align default_irq_handler long default_isr_ irq endm section vector_table
Definition: vectors.h:193
weak default_irq_handler align default_irq_handler
Definition: vectors.h:189