WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
vectors.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2018-2022. All rights reserved.
3 * Description: Hi113X Vector Table Definitions
4 *
5 * Create: 2018-10-15
6 */
7#ifndef VECTORS_H
8#define VECTORS_H
9
10#include <stdint.h>
11#include "core.h"
12#include "interrupt_porting.h"
13
20#define ISR_VECTOR_MAX_SUPPORTED (BUTT_IRQN - 1)
21
22#define LOCIEN_IRQ_NUM 32
23#define LOCIPRI_IRQ_NUM 8
24#define LOCIPRI_IRQ_BITS 4
25#define LOCIPRI_DEFAULT_VAL 0x11111111 /* The default interrupt priority is 1. */
26
30#define INTERRUPT_PRIO_HIGHEST 7
31
35#define INTERRUPT_PRIO_LOWEST 1
36
40#define RISCV_SYS_VECTOR_CNT 26
41
45#define RISCV_MIE_IRQ_VECTOR_CNT 6
46
50#define RISCV_CUSTOM_IRQ_VECTOR_CNT 60
51
55#define RISCV_LOCAL_IRQ_VECTOR_CNT (RISCV_MIE_IRQ_VECTOR_CNT + RISCV_SYS_VECTOR_CNT)
56
60#define RISCV_VECTOR_CNT (RISCV_LOCAL_IRQ_VECTOR_CNT + RISCV_CUSTOM_IRQ_VECTOR_CNT)
61
65typedef enum {
66 USER_SOFTWARE_INT_IRQN = 0, // !< RISCV Trap Entry
78 NON_MASKABLE_INT_IRQN = 12, // !< RISCV NMI vector
82#if ARCH == RISCV70
83 ISR_VECTOR_IRQ_0 = 16, // !< RISCV Local Interrupt request 0 vector
84#else
85 RESERVED_INT16_IRQN = 16,
86 RESERVED_INT17_IRQN = 17,
87 RESERVED_INT18_IRQN = 18,
88 RESERVED_INT19_IRQN = 19,
89 RESERVED_INT20_IRQN = 20,
90 RESERVED_INT21_IRQN = 21,
91 RESERVED_INT22_IRQN = 22,
92 RESERVED_INT23_IRQN = 23,
93 RESERVED_INT24_IRQN = 24,
94 RESERVED_INT25_IRQN = 25,
95 ISR_VECTOR_IRQ_0 = 26, // !< RISCV Local Interrupt request 0 vector
96#endif
97 ISR_VECTOR_IRQ_1, // !< RISCV Local Interrupt request 1 vector
98 ISR_VECTOR_IRQ_2, // !< RISCV Local Interrupt request 2 vector
99 ISR_VECTOR_IRQ_3, // !< RISCV Local Interrupt request 3 vector
100 ISR_VECTOR_IRQ_4, // !< RISCV Local Interrupt request 4 vector
101 ISR_VECTOR_IRQ_5, // !< RISCV Local Interrupt request 5 vector
102 ISR_VECTOR_IRQ_6, // !< RISCV Local Interrupt request 6 vector
103 ISR_VECTOR_IRQ_7, // !< RISCV Local Interrupt request 7 vector
104 ISR_VECTOR_IRQ_8, // !< RISCV Local Interrupt request 8 vector
105 ISR_VECTOR_IRQ_9, // !< RISCV Local Interrupt request 9 vector
106 ISR_VECTOR_IRQ_10, // !< RISCV Local Interrupt request 10 vector
107 ISR_VECTOR_IRQ_11, // !< RISCV Local Interrupt request 11 vector
108 ISR_VECTOR_IRQ_12, // !< RISCV Local Interrupt request 12 vector
109 ISR_VECTOR_IRQ_13, // !< RISCV Local Interrupt request 13 vector
110 ISR_VECTOR_IRQ_14, // !< RISCV Local Interrupt request 14 vector
111 ISR_VECTOR_IRQ_15, // !< RISCV Local Interrupt request 15 vector
112 ISR_VECTOR_IRQ_16, // !< RISCV Local Interrupt request 16 vector
113 ISR_VECTOR_IRQ_17, // !< RISCV Local Interrupt request 17 vector
114 ISR_VECTOR_IRQ_18, // !< RISCV Local Interrupt request 18 vector
115 ISR_VECTOR_IRQ_19, // !< RISCV Local Interrupt request 19 vector
116 ISR_VECTOR_IRQ_20, // !< RISCV Local Interrupt request 20 vector
117 ISR_VECTOR_IRQ_21, // !< RISCV Local Interrupt request 21 vector
118 ISR_VECTOR_IRQ_22, // !< RISCV Local Interrupt request 22 vector
119 ISR_VECTOR_IRQ_23, // !< RISCV Local Interrupt request 23 vector
120 ISR_VECTOR_IRQ_24, // !< RISCV Local Interrupt request 24 vector
121 ISR_VECTOR_IRQ_25, // !< RISCV Local Interrupt request 25 vector
122
123 ISR_VECTOR_IRQ_26, // !< RISCV Local Interrupt request 26 vector
124 ISR_VECTOR_IRQ_27, // !< RISCV Local Interrupt request 27 vector
125 ISR_VECTOR_IRQ_28, // !< RISCV Local Interrupt request 28 vector
126 ISR_VECTOR_IRQ_29, // !< RISCV Local Interrupt request 29 vector
127 ISR_VECTOR_IRQ_30, // !< RISCV Local Interrupt request 30 vector
128 ISR_VECTOR_IRQ_31, // !< RISCV Local Interrupt request 31 vector
129
130 ISR_VECTOR_IRQ_32, // !< RISCV External Interrupt request 32 vector
131 ISR_VECTOR_IRQ_33, // !< RISCV External Interrupt request 33 vector
132 ISR_VECTOR_IRQ_34, // !< RISCV External Interrupt request 34 vector
133 ISR_VECTOR_IRQ_35, // !< RISCV External Interrupt request 35 vector
134 ISR_VECTOR_IRQ_36, // !< RISCV External Interrupt request 36 vector
135 ISR_VECTOR_IRQ_37, // !< RISCV External Interrupt request 37 vector
136 ISR_VECTOR_IRQ_38, // !< RISCV External Interrupt request 38 vector
137 ISR_VECTOR_IRQ_39, // !< RISCV External Interrupt request 39 vector
138 ISR_VECTOR_IRQ_40, // !< RISCV External Interrupt request 40 vector
139 ISR_VECTOR_IRQ_41, // !< RISCV External Interrupt request 41 vector
140 ISR_VECTOR_IRQ_42, // !< RISCV External Interrupt request 42 vector
141 ISR_VECTOR_IRQ_43, // !< RISCV External Interrupt request 43 vector
142 ISR_VECTOR_IRQ_44, // !< RISCV External Interrupt request 44 vector
143 ISR_VECTOR_IRQ_45, // !< RISCV External Interrupt request 45 vector
144 ISR_VECTOR_IRQ_46, // !< RISCV External Interrupt request 46 vector
145 ISR_VECTOR_IRQ_47, // !< RISCV External Interrupt request 47 vector
146 ISR_VECTOR_IRQ_48, // !< RISCV External Interrupt request 48 vector
147 ISR_VECTOR_IRQ_49, // !< RISCV External Interrupt request 49 vector
148 ISR_VECTOR_IRQ_50, // !< RISCV External Interrupt request 50 vector
149 ISR_VECTOR_IRQ_51, // !< RISCV External Interrupt request 51 vector
150 ISR_VECTOR_IRQ_52, // !< RISCV External Interrupt request 52 vector
151 ISR_VECTOR_IRQ_53, // !< RISCV External Interrupt request 53 vector
152 ISR_VECTOR_IRQ_54, // !< RISCV External Interrupt request 54 vector
153 ISR_VECTOR_IRQ_55, // !< RISCV External Interrupt request 55 vector
154 ISR_VECTOR_IRQ_56, // !< RISCV External Interrupt request 56 vector
155 ISR_VECTOR_IRQ_57, // !< RISCV External Interrupt request 57 vector
156 ISR_VECTOR_IRQ_58, // !< RISCV External Interrupt request 58 vector
157 ISR_VECTOR_IRQ_59, // !< RISCV External Interrupt request 59 vector
158 ISR_VECTOR_IRQ_60, // !< RISCV External Interrupt request 60 vector
159 ISR_VECTOR_IRQ_61, // !< RISCV External Interrupt request 61 vector
160 ISR_VECTOR_IRQ_62, // !< RISCV External Interrupt request 62 vector
161 ISR_VECTOR_IRQ_63, // !< RISCV External Interrupt request 63 vector
162 ISR_VECTOR_IRQ_64, // !< RISCV External Interrupt request 64 vector
163 ISR_VECTOR_IRQ_65, // !< RISCV External Interrupt request 65 vector
164 ISR_VECTOR_IRQ_66, // !< RISCV External Interrupt request 66 vector
165 ISR_VECTOR_IRQ_67, // !< RISCV External Interrupt request 67 vector
166 ISR_VECTOR_IRQ_68, // !< RISCV External Interrupt request 68 vector
167 ISR_VECTOR_IRQ_69, // !< RISCV External Interrupt request 69 vector
168 ISR_VECTOR_IRQ_70, // !< RISCV External Interrupt request 70 vector
169 ISR_VECTOR_IRQ_71, // !< RISCV External Interrupt request 71 vector
170 ISR_VECTOR_IRQ_72, // !< RISCV External Interrupt request 72 vector
171 ISR_VECTOR_IRQ_73, // !< RISCV External Interrupt request 73 vector
172 ISR_VECTOR_IRQ_74, // !< RISCV External Interrupt request 74 vector
173 ISR_VECTOR_IRQ_75, // !< RISCV External Interrupt request 75 vector
174 ISR_VECTOR_IRQ_76, // !< RISCV External Interrupt request 76 vector
175 ISR_VECTOR_IRQ_77, // !< RISCV External Interrupt request 77 vector
176 ISR_VECTOR_IRQ_78, // !< RISCV External Interrupt request 78 vector
177 ISR_VECTOR_IRQ_79, // !< RISCV External Interrupt request 79 vector
178 ISR_VECTOR_IRQ_80, // !< RISCV External Interrupt request 80 vector
179 ISR_VECTOR_IRQ_81, // !< RISCV External Interrupt request 81 vector
181
187
188typedef struct {
189 uint32_t mstatus;
190 uint32_t mepc;
191 uint32_t tp; /* X4 */
192 uint32_t sp; /* X2 */
193
194 uint32_t s11; /* X27 */
195 uint32_t s10; /* X26 */
196 uint32_t s9; /* X25 */
197 uint32_t s8; /* X24 */
198 uint32_t s7; /* X23 */
199 uint32_t s6; /* X22 */
200 uint32_t s5; /* X21 */
201 uint32_t s4; /* X20 */
202 uint32_t s3; /* X19 */
203 uint32_t s2; /* X18 */
204
205 uint32_t s1; /* X9 */
206 uint32_t s0; /* X8 */
207
208 uint32_t t6; /* X31 */
209 uint32_t t5; /* X30 */
210 uint32_t t4; /* X29 */
211 uint32_t t3; /* X28 */
212
213 uint32_t a7; /* X17 */
214 uint32_t a6; /* X16 */
215 uint32_t a5; /* X15 */
216 uint32_t a4; /* X14 */
217 uint32_t a3; /* X13 */
218 uint32_t a2; /* X12 */
219 uint32_t a1; /* X11 */
220 uint32_t a0; /* X10 */
221
222 uint32_t t2; /* X7 */
223 uint32_t t1; /* X6 */
224 uint32_t t0; /* X5 */
225
226 uint32_t ra; /* X1 */
228
229typedef struct {
230 uint32_t ccause;
231 uint32_t mcause;
232 uint32_t mtval;
233 uint32_t gp;
236
237typedef struct exc_info {
238 uint16_t phase;
239 uint16_t type;
240 uint32_t fault_addr;
241 uint32_t thrd_pid;
242 uint16_t nest_cnt;
243 uint16_t reserved;
246
251
256
261void exc_info_display(const exc_info_t *exc);
265#endif
void exc_info_display(const exc_info_t *exc)
Print exception info.
Definition exception_riscv.c:360
const isr_function * isr_get_ramexceptiontable_addr(void)
Get the ram exception table address.
void default_handler(void)
Default handler process.
isr_vector_t
Interrupt vector identifiers
Definition vectors.h:65
void reserve_handler(void)
Reserve handler process.
struct exc_info exc_info_t
@ ISR_VECTOR_IRQ_38
Definition vectors.h:136
@ ISR_VECTOR_IRQ_25
Definition vectors.h:121
@ ISR_VECTOR_IRQ_49
Definition vectors.h:147
@ ISR_VECTOR_IRQ_31
Definition vectors.h:128
@ ISR_VECTOR_IRQ_21
Definition vectors.h:117
@ ISR_VECTOR_IRQ_1
Definition vectors.h:97
@ USER_TIMER_INT_IRQN
Definition vectors.h:70
@ ISR_VECTOR_IRQ_17
Definition vectors.h:113
@ ISR_VECTOR_IRQ_2
Definition vectors.h:98
@ ISR_VECTOR_IRQ_76
Definition vectors.h:174
@ ISR_VECTOR_IRQ_4
Definition vectors.h:100
@ ISR_VECTOR_IRQ_55
Definition vectors.h:153
@ ISR_VECTOR_IRQ_22
Definition vectors.h:118
@ ISR_VECTOR_IRQ_81
Definition vectors.h:179
@ ISR_VECTOR_IRQ_29
Definition vectors.h:126
@ ISR_VECTOR_IRQ_57
Definition vectors.h:155
@ ISR_VECTOR_IRQ_14
Definition vectors.h:110
@ ISR_VECTOR_IRQ_36
Definition vectors.h:134
@ ISR_VECTOR_IRQ_58
Definition vectors.h:156
@ ISR_VECTOR_IRQ_53
Definition vectors.h:151
@ ISR_VECTOR_IRQ_28
Definition vectors.h:125
@ RESERVED_INT10_IRQN
Definition vectors.h:76
@ ISR_VECTOR_IRQ_13
Definition vectors.h:109
@ ISR_VECTOR_IRQ_0
Definition vectors.h:83
@ ISR_VECTOR_IRQ_60
Definition vectors.h:158
@ ISR_VECTOR_IRQ_47
Definition vectors.h:145
@ ISR_VECTOR_IRQ_69
Definition vectors.h:167
@ RESERVED_INT15_IRQN
Definition vectors.h:81
@ SUPERVISOR_SOFTWARE_INT_IRQN
Definition vectors.h:67
@ ISR_VECTOR_IRQ_9
Definition vectors.h:105
@ RESERVED_INT14_IRQN
Definition vectors.h:80
@ RESERVED_INT2_IRQN
Definition vectors.h:68
@ ISR_VECTOR_IRQ_61
Definition vectors.h:159
@ ISR_VECTOR_IRQ_77
Definition vectors.h:175
@ ISR_VECTOR_IRQ_23
Definition vectors.h:119
@ ISR_VECTOR_IRQ_63
Definition vectors.h:161
@ ISR_VECTOR_IRQ_41
Definition vectors.h:139
@ MACHINE_TIMER_INT_IRQN
Definition vectors.h:73
@ USER_EXTERNAL_INT_IRQN
Definition vectors.h:74
@ ISR_VECTOR_IRQ_54
Definition vectors.h:152
@ ISR_VECTOR_IRQ_50
Definition vectors.h:148
@ ISR_VECTOR_IRQ_78
Definition vectors.h:176
@ ISR_VECTOR_IRQ_64
Definition vectors.h:162
@ ISR_VECTOR_IRQ_65
Definition vectors.h:163
@ ISR_VECTOR_IRQ_20
Definition vectors.h:116
@ ISR_VECTOR_IRQ_30
Definition vectors.h:127
@ ISR_VECTOR_IRQ_42
Definition vectors.h:140
@ ISR_VECTOR_IRQ_62
Definition vectors.h:160
@ ISR_VECTOR_IRQ_24
Definition vectors.h:120
@ ISR_VECTOR_IRQ_48
Definition vectors.h:146
@ ISR_VECTOR_IRQ_59
Definition vectors.h:157
@ ISR_VECTOR_IRQ_45
Definition vectors.h:143
@ ISR_VECTOR_IRQ_33
Definition vectors.h:131
@ SUPERVISOR_EXTERNAL_INT_IRQN
Definition vectors.h:75
@ SUPERVISOR_TIMER_INT_IRQN
Definition vectors.h:71
@ ISR_VECTOR_IRQ_37
Definition vectors.h:135
@ ISR_VECTOR_IRQ_7
Definition vectors.h:103
@ NON_MASKABLE_INT_IRQN
Definition vectors.h:78
@ USER_SOFTWARE_INT_IRQN
Definition vectors.h:66
@ ISR_VECTOR_IRQ_43
Definition vectors.h:141
@ ISR_VECTOR_IRQ_74
Definition vectors.h:172
@ ISR_VECTOR_IRQ_16
Definition vectors.h:112
@ ISR_VECTOR_IRQ_5
Definition vectors.h:101
@ ISR_VECTOR_IRQ_79
Definition vectors.h:177
@ ISR_VECTOR_IRQ_46
Definition vectors.h:144
@ ISR_VECTOR_IRQ_12
Definition vectors.h:108
@ ISR_VECTOR_IRQ_66
Definition vectors.h:164
@ ISR_VECTOR_IRQ_80
Definition vectors.h:178
@ ISR_VECTOR_IRQ_19
Definition vectors.h:115
@ ISR_VECTOR_IRQ_44
Definition vectors.h:142
@ ISR_VECTOR_IRQ_68
Definition vectors.h:166
@ ISR_VECTOR_IRQ_35
Definition vectors.h:133
@ ISR_VECTOR_IRQ_32
Definition vectors.h:130
@ ISR_VECTOR_IRQ_26
Definition vectors.h:123
@ ISR_VECTOR_IRQ_11
Definition vectors.h:107
@ ISR_VECTOR_IRQ_6
Definition vectors.h:102
@ ISR_VECTOR_IRQ_72
Definition vectors.h:170
@ ISR_VECTOR_IRQ_18
Definition vectors.h:114
@ ISR_VECTOR_IRQ_67
Definition vectors.h:165
@ ISR_VECTOR_IRQ_56
Definition vectors.h:154
@ ISR_VECTOR_IRQ_52
Definition vectors.h:150
@ ISR_VECTOR_IRQ_70
Definition vectors.h:168
@ ISR_VECTOR_IRQ_39
Definition vectors.h:137
@ RESERVED_INT6_IRQN
Definition vectors.h:72
@ ISR_VECTOR_IRQ_75
Definition vectors.h:173
@ MACHINE_EXTERNAL_INT_IRQN
Definition vectors.h:77
@ ISR_VECTOR_IRQ_71
Definition vectors.h:169
@ ISR_VECTOR_IRQ_51
Definition vectors.h:149
@ ISR_VECTOR_IRQ_40
Definition vectors.h:138
@ ISR_VECTOR_IRQ_73
Definition vectors.h:171
@ ISR_VECTOR_IRQ_15
Definition vectors.h:111
@ MACHINE_SOFTWARE_INT_IRQN
Definition vectors.h:69
@ ISR_VECTOR_IRQ_10
Definition vectors.h:106
@ ISR_VECTOR_IRQ_34
Definition vectors.h:132
@ ISR_VECTOR_IRQ_3
Definition vectors.h:99
@ ISR_VECTOR_IRQ_27
Definition vectors.h:124
@ RESERVED_INT13_IRQN
Definition vectors.h:79
@ ISR_VECTOR_IRQ_8
Definition vectors.h:104
void(* isr_function)(void)
interupt callback function declaration.
Definition interrupt_porting.h:20
Definition vectors.h:229
uint32_t mtval
Definition vectors.h:232
task_context_t task_context
Definition vectors.h:234
uint32_t gp
Definition vectors.h:233
uint32_t ccause
Definition vectors.h:230
uint32_t mcause
Definition vectors.h:231
Definition exception.h:170
Definition vectors.h:237
uint16_t nest_cnt
Definition vectors.h:242
uint32_t fault_addr
Definition vectors.h:240
uint32_t thrd_pid
Definition vectors.h:241
uint16_t reserved
Definition vectors.h:243
uint16_t phase
Definition vectors.h:238
uint16_t type
Definition vectors.h:239
exc_context_t * context
Definition vectors.h:244
Definition vectors.h:188
uint32_t s11
Definition vectors.h:194
uint32_t a5
Definition vectors.h:215
uint32_t t4
Definition vectors.h:210
uint32_t sp
Definition vectors.h:192
uint32_t a1
Definition vectors.h:219
uint32_t t3
Definition vectors.h:211
uint32_t t5
Definition vectors.h:209
uint32_t a0
Definition vectors.h:220
uint32_t s2
Definition vectors.h:203
uint32_t t0
Definition vectors.h:224
uint32_t s5
Definition vectors.h:200
uint32_t mepc
Definition vectors.h:190
uint32_t s10
Definition vectors.h:195
uint32_t a4
Definition vectors.h:216
uint32_t s3
Definition vectors.h:202
uint32_t s0
Definition vectors.h:206
uint32_t s9
Definition vectors.h:196
uint32_t ra
Definition vectors.h:226
uint32_t s6
Definition vectors.h:199
uint32_t a2
Definition vectors.h:218
uint32_t s8
Definition vectors.h:197
uint32_t tp
Definition vectors.h:191
uint32_t t1
Definition vectors.h:223
uint32_t a3
Definition vectors.h:217
uint32_t s4
Definition vectors.h:201
uint32_t t2
Definition vectors.h:222
uint32_t s7
Definition vectors.h:198
uint32_t a7
Definition vectors.h:213
uint32_t s1
Definition vectors.h:205
uint32_t t6
Definition vectors.h:208
uint32_t a6
Definition vectors.h:214
uint32_t mstatus
Definition vectors.h:189