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