VSF Documented
i_reg_inc.h
Go to the documentation of this file.
1/*****************************************************************************
2 * Copyright(C)2009-2022 by VSF Team *
3 * *
4 * Licensed under the Apache License, Version 2.0 (the "License"); *
5 * you may not use this file except in compliance with the License. *
6 * You may obtain a copy of the License at *
7 * *
8 * http://www.apache.org/licenses/LICENSE-2.0 *
9 * *
10 * Unless required by applicable law or agreed to in writing, software *
11 * distributed under the License is distributed on an "AS IS" BASIS, *
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
13 * See the License for the specific language governing permissions and *
14 * limitations under the License. *
15 * *
16 ****************************************************************************/
17
18#ifndef __I_REG_INC_H__
19#define __I_REG_INC_H__
20
21/*============================ INCLUDES ======================================*/
22
28#include <stdint.h>
29
30#ifdef __cplusplus
31extern "C" {
32#endif
33
34/*============================ MACROS ========================================*/
35
36// copied from utilities/compiler/__common/__type.h
37#ifndef __REG_TYPE__
38#define __REG_TYPE__
39
40typedef volatile uint8_t reg8_t;
41typedef volatile uint16_t reg16_t;
42typedef volatile uint32_t reg32_t;
43
44#define __REG_CONNECT(__A, __B) __A##__B
45#define __REG_RSVD_NAME(__NAME) __REG_CONNECT(__unused_, __NAME)
46
47#define ____REG_RSVD(__NAME, __BIT) \
48 reg##__BIT##_t __NAME : __BIT;
49#define ____REG_RSVD_N(__NAME, __BIT, __N) \
50 reg##__BIT##_t __NAME[__N];
51#define __REG_RSVD(__BIT) ____REG_RSVD(REG_RSVD_NAME, __BIT)
52#define __REG_RSVD_N(__BIT, __N) ____REG_RSVD_N(REG_RSVD_NAME, __BIT, (__N))
53
54#define REG_RSVD_NAME __REG_RSVD_NAME(__LINE__)
55#define REG_RSVD(__BIT) __REG_RSVD(__BIT)
56#define REG_RSVD_N(__BIT, __N) __REG_RSVD_N(__BIT, (__N))
57
58#define REG_RSVD_U8 REG_RSVD(8)
59#define REG_RSVD_U16 REG_RSVD(16)
60#define REG_RSVD_U32 REG_RSVD(32)
61
62#define REG_RSVD_U8N(__N) REG_RSVD_N(8, (__N))
63#define REG_RSVD_U16N(__N) REG_RSVD_N(16, (__N))
64#define REG_RSVD_U32N(__N) REG_RSVD_N(32, (__N))
65
66#define REG8_RSVD_N(__N) REG_RSVD_U8N(__N)
67#define REG8_RSVD_B(__BYTE_CNT) REG8_RSVD_N(__BYTE_CNT)
68#define REG8_RSVD_8B REG8_RSVD_B(8)
69#define REG8_RSVD_16B REG8_RSVD_B(16)
70#define REG8_RSVD_32B REG8_RSVD_B(32)
71#define REG8_RSVD_64B REG8_RSVD_B(64)
72#define REG8_RSVD_128B REG8_RSVD_B(128)
73#define REG8_RSVD_256B REG8_RSVD_B(256)
74#define REG8_RSVD_512B REG8_RSVD_B(512)
75#define REG8_RSVD_1K REG8_RSVD_B(1024)
76#define REG8_RSVD_2K REG8_RSVD_B(2048)
77#define REG8_RSVD_4K REG8_RSVD_B(4096)
78#define REG8_RSVD_8K REG8_RSVD_B(8192)
79#define REG8_RSVD_16K REG8_RSVD_B(16 * 1024)
80#define REG8_RSVD_32K REG8_RSVD_B(32 * 1024)
81#define REG8_RSVD_64K REG8_RSVD_B(64 * 1024)
82#define REG8_RSVD_128K REG8_RSVD_B(128 * 1024)
83#define REG8_RSVD_256K REG8_RSVD_B(256 * 1024)
84#define REG8_RSVD_512K REG8_RSVD_B(512 * 1024)
85#define REG8_RSVD_1M REG8_RSVD_B(1024 * 1024)
86
87#define REG16_RSVD_N(__N) REG_RSVD_U16N(__N)
88// __BYTE_CNT MUST be multiple of 2
89#define REG16_RSVD_B(__BYTE_CNT) REG16_RSVD_N(__BYTE_CNT >> 1)
90#define REG16_RSVD_8B REG16_RSVD_B(8)
91#define REG16_RSVD_16B REG16_RSVD_B(16)
92#define REG16_RSVD_32B REG16_RSVD_B(32)
93#define REG16_RSVD_64B REG16_RSVD_B(64)
94#define REG16_RSVD_128B REG16_RSVD_B(128)
95#define REG16_RSVD_256B REG16_RSVD_B(256)
96#define REG16_RSVD_512B REG16_RSVD_B(512)
97#define REG16_RSVD_1K REG16_RSVD_B(1024)
98#define REG16_RSVD_2K REG16_RSVD_B(2048)
99#define REG16_RSVD_4K REG16_RSVD_B(4096)
100#define REG16_RSVD_8K REG16_RSVD_B(8192)
101#define REG16_RSVD_16K REG16_RSVD_B(16 * 1024)
102#define REG16_RSVD_32K REG16_RSVD_B(32 * 1024)
103#define REG16_RSVD_64K REG16_RSVD_B(64 * 1024)
104#define REG16_RSVD_128K REG16_RSVD_B(128 * 1024)
105#define REG16_RSVD_256K REG16_RSVD_B(256 * 1024)
106#define REG16_RSVD_512K REG16_RSVD_B(512 * 1024)
107#define REG16_RSVD_1M REG16_RSVD_B(1024 * 1024)
108
109#define REG32_RSVD_N(__N) REG_RSVD_U32N(__N)
110// __BYTE_CNT MUST be multiple of 4
111#define REG32_RSVD_B(__BYTE_CNT) REG_RSVD_U32N(__BYTE_CNT >> 2)
112#define REG32_RSVD_8B REG32_RSVD_B(8)
113#define REG32_RSVD_16B REG32_RSVD_B(16)
114#define REG32_RSVD_32B REG32_RSVD_B(32)
115#define REG32_RSVD_64B REG32_RSVD_B(64)
116#define REG32_RSVD_128B REG32_RSVD_B(128)
117#define REG32_RSVD_256B REG32_RSVD_B(256)
118#define REG32_RSVD_512B REG32_RSVD_B(512)
119#define REG32_RSVD_1K REG32_RSVD_B(1024)
120#define REG32_RSVD_2K REG32_RSVD_B(2048)
121#define REG32_RSVD_4K REG32_RSVD_B(4096)
122#define REG32_RSVD_8K REG32_RSVD_B(8192)
123#define REG32_RSVD_16K REG32_RSVD_B(16 * 1024)
124#define REG32_RSVD_32K REG32_RSVD_B(32 * 1024)
125#define REG32_RSVD_64K REG32_RSVD_B(64 * 1024)
126#define REG32_RSVD_128K REG32_RSVD_B(128 * 1024)
127#define REG32_RSVD_256K REG32_RSVD_B(256 * 1024)
128#define REG32_RSVD_512K REG32_RSVD_B(512 * 1024)
129#define REG32_RSVD_1M REG32_RSVD_B(1024 * 1024)
130
131#endif // __REG_TYPE__
132
134#define F1CX00S_INTC (*(intc_reg_t *)F1CX00S_INTC_BASE_ADDRESS)
135
136#ifndef __REG_MACRO__
137#define __REG_MACRO__
138#define DEF_REG \
139 union { \
140 struct {
141
142#define END_DEF_REG32(__NAME) \
143 }; \
144 reg32_t VALUE; \
145 }__NAME;
146#endif
147
150/* ---------------------------REGISTER DEFINE BEGIN ------------------------- */
151
152/* ----------------------------REGISTER DEFINE END-------------------------- */
154
157/* ----------------------- DEFINE REGISTER MACROS BETIN -------------------- */
158
159
160/* ----------------------- DEFINE REGISTER MACROS END -------------------- */
162
163
164
165/*============================ MACROFIED FUNCTIONS ===========================*/
166/*============================ TYPES =========================================*/
167
168typedef struct intc_reg_t {
170
171 union {
174 };
176
177 DEF_REG
180 END_DEF_REG32(NMI_INT_CTRL)
181
182 union {
185 };
188
189 union {
192 };
195
196 union {
199 };
202
206
207 union {
210 };
213
214 union {
215 struct {
216 DEF_REG
233 END_DEF_REG32(PRIO0)
234
235 DEF_REG
252 END_DEF_REG32(PRIO1)
253
254 DEF_REG
271 END_DEF_REG32(PRIO2)
272
273 DEF_REG
290 END_DEF_REG32(PRIO3)
291 };
292
294 };
296
297/*============================ GLOBAL VARIABLES ==============================*/
298/*============================ INCLUDES ======================================*/
299/*============================ PROTOTYPES ====================================*/
300
301#ifdef __cplusplus
302}
303#endif
304
305#endif
306/* EOF */
volatile uint32_t reg32_t
Definition i_reg_inc.h:42
volatile uint16_t reg16_t
Definition i_reg_inc.h:41
#define REG_RSVD_U32
Definition i_reg_inc.h:60
volatile uint8_t reg8_t
Definition i_reg_inc.h:40
#define END_DEF_REG32(__NAME)
Definition i_reg_inc.h:142
#define DEF_REG
Definition i_reg_inc.h:138
unsigned short uint16_t
Definition stdint.h:7
unsigned uint32_t
Definition stdint.h:9
unsigned char uint8_t
Definition stdint.h:5
Definition i_reg_inc.h:168
reg32_t IRQ46_PRIO
Definition i_reg_inc.h:269
reg32_t IRQ09_PRIO
Definition i_reg_inc.h:226
reg32_t IRQ19_PRIO
Definition i_reg_inc.h:239
reg32_t IRQ21_PRIO
Definition i_reg_inc.h:241
reg32_t IRQ17_PRIO
Definition i_reg_inc.h:237
reg32_t IRQ52_PRIO
Definition i_reg_inc.h:278
reg32_t MASK[2]
Interrupt Mask Register 0/1.
Definition i_reg_inc.h:197
reg32_t IRQ03_PRIO
Definition i_reg_inc.h:220
reg32_t PENDING[2]
Alias as interrupt Pending Status Register.
Definition i_reg_inc.h:184
reg32_t DISABLE[2]
Alias as interrupt Disable register.
Definition i_reg_inc.h:198
reg32_t IRQ50_PRIO
Definition i_reg_inc.h:276
reg32_t IRQ61_PRIO
Definition i_reg_inc.h:287
reg32_t IRQ58_PRIO
Definition i_reg_inc.h:284
reg32_t IRQ33_PRIO
Definition i_reg_inc.h:256
reg32_t IRQ37_PRIO
Definition i_reg_inc.h:260
reg32_t IRQ41_PRIO
Definition i_reg_inc.h:264
reg32_t SRC_MASK[2]
Interrupt Source Mask Register 0/1
Definition i_reg_inc.h:191
DEF_REG reg32_t IRQ00_PRIO
< Interrupt Source Priority Register 0
Definition i_reg_inc.h:217
reg32_t IRQ36_PRIO
Definition i_reg_inc.h:259
reg32_t IRQ05_PRIO
Definition i_reg_inc.h:222
reg32_t IRQ53_PRIO
Definition i_reg_inc.h:279
DEF_REG reg32_t IRQ16_PRIO
< Interrupt Source Priority Register 1
Definition i_reg_inc.h:236
reg32_t IRQ47_PRIO
Definition i_reg_inc.h:270
DEF_REG reg32_t IRQ32_PRIO
< Interrupt Source Priority Register 2
Definition i_reg_inc.h:255
reg32_t STIR[2]
Alias as NVIC.STIR Software Trigger Interrupt Register.
Definition i_reg_inc.h:209
reg32_t IRQ23_PRIO
Definition i_reg_inc.h:243
reg32_t IRQ42_PRIO
Definition i_reg_inc.h:265
reg32_t IRQ22_PRIO
Definition i_reg_inc.h:242
reg32_t IRQ24_PRIO
Definition i_reg_inc.h:244
reg32_t IRQ04_PRIO
Definition i_reg_inc.h:221
reg32_t IRQ10_PRIO
Definition i_reg_inc.h:227
reg32_t IRQ45_PRIO
Definition i_reg_inc.h:268
reg32_t IRQ59_PRIO
Definition i_reg_inc.h:285
reg32_t IRQ12_PRIO
Definition i_reg_inc.h:229
reg32_t IRQ15_PRIO
Definition i_reg_inc.h:232
reg32_t IRQ60_PRIO
Definition i_reg_inc.h:286
reg32_t IRQ25_PRIO
Definition i_reg_inc.h:245
reg32_t IRQ14_PRIO
Definition i_reg_inc.h:231
reg32_t IRQ26_PRIO
Definition i_reg_inc.h:246
reg32_t IRQ43_PRIO
Definition i_reg_inc.h:266
reg32_t IRQ28_PRIO
Definition i_reg_inc.h:248
reg32_t IRQ40_PRIO
Definition i_reg_inc.h:263
REG_RSVD_U32 REG_RSVD_U32 reg32_t RESP[2]
Interrupt Response Register 0/1.
Definition i_reg_inc.h:203
reg32_t IRQ07_PRIO
Definition i_reg_inc.h:224
reg32_t IRQ39_PRIO
Definition i_reg_inc.h:262
reg32_t IRQ31_PRIO
Definition i_reg_inc.h:251
reg32_t PRIO[4]
Definition i_reg_inc.h:293
reg32_t VECTOR
interrupt vector register
Definition i_reg_inc.h:169
REG_RSVD_U32 DEF_REG reg32_t NMI_SRC_TYPE
< NMI interrupt control
Definition i_reg_inc.h:178
reg32_t IRQ13_PRIO
Definition i_reg_inc.h:230
reg32_t BASE_ADDR
vector table base address
Definition i_reg_inc.h:172
reg32_t IRQ35_PRIO
Definition i_reg_inc.h:258
reg32_t IRQ56_PRIO
Definition i_reg_inc.h:282
reg32_t IRQ44_PRIO
Definition i_reg_inc.h:267
reg32_t IRQ08_PRIO
Definition i_reg_inc.h:225
reg32_t EN[2]
Interrupt Enable Register 0/1.
Definition i_reg_inc.h:190
reg32_t PEND[2]
Interrupt Pending Register 0/1.
Definition i_reg_inc.h:183
reg32_t IRQ18_PRIO
Definition i_reg_inc.h:238
reg32_t IRQ01_PRIO
Definition i_reg_inc.h:218
reg32_t IRQ38_PRIO
Definition i_reg_inc.h:261
reg32_t IRQ63_PRIO
Definition i_reg_inc.h:289
reg32_t IRQ54_PRIO
Definition i_reg_inc.h:280
reg32_t FF[2]
Interrupt Fast Forcing Register 0/1.
Definition i_reg_inc.h:208
reg32_t IRQ55_PRIO
Definition i_reg_inc.h:281
reg32_t IRQ51_PRIO
Definition i_reg_inc.h:277
reg32_t IRQ11_PRIO
Definition i_reg_inc.h:228
reg32_t IRQ49_PRIO
Definition i_reg_inc.h:275
reg32_t IRQ27_PRIO
Definition i_reg_inc.h:247
reg32_t IRQ29_PRIO
Definition i_reg_inc.h:249
reg32_t IRQ02_PRIO
Definition i_reg_inc.h:219
reg32_t IRQ20_PRIO
Definition i_reg_inc.h:240
reg32_t IRQ34_PRIO
Definition i_reg_inc.h:257
reg32_t IRQ06_PRIO
Definition i_reg_inc.h:223
reg32_t IRQ62_PRIO
Definition i_reg_inc.h:288
reg32_t VTOR
alias as NVIC.VTOR
Definition i_reg_inc.h:173
reg32_t IRQ57_PRIO
Definition i_reg_inc.h:283
DEF_REG reg32_t IRQ48_PRIO
< Interrupt Source Priority Register 3
Definition i_reg_inc.h:274
reg32_t IRQ30_PRIO
Definition i_reg_inc.h:250