xt-sdk 文档
v1.0.3
xt-sdk 嵌入式 SDK API 参考
Toggle main menu visibility
载入中...
搜索中...
未找到
xt_bit.h
浏览该文件的文档.
1
12
13
#ifndef __XT_BIT_H__
14
#define __XT_BIT_H__
15
16
/* ==================== [Includes] ========================================== */
17
18
#ifdef __cplusplus
19
extern
"C"
{
20
#endif
21
28
29
/* ==================== [Defines] =========================================== */
30
31
#if (!defined(BIT0))
32
#define BIT0 0x00000001UL
33
#define BIT1 0x00000002UL
34
#define BIT2 0x00000004UL
35
#define BIT3 0x00000008UL
36
#define BIT4 0x00000010UL
37
#define BIT5 0x00000020UL
38
#define BIT6 0x00000040UL
39
#define BIT7 0x00000080UL
40
#define BIT8 0x00000100UL
41
#define BIT9 0x00000200UL
42
#define BIT10 0x00000400UL
43
#define BIT11 0x00000800UL
44
#define BIT12 0x00001000UL
45
#define BIT13 0x00002000UL
46
#define BIT14 0x00004000UL
47
#define BIT15 0x00008000UL
48
#define BIT16 0x00010000UL
49
#define BIT17 0x00020000UL
50
#define BIT18 0x00040000UL
51
#define BIT19 0x00080000UL
52
#define BIT20 0x00100000UL
53
#define BIT21 0x00200000UL
54
#define BIT22 0x00400000UL
55
#define BIT23 0x00800000UL
56
#define BIT24 0x01000000UL
57
#define BIT25 0x02000000UL
58
#define BIT26 0x04000000UL
59
#define BIT27 0x08000000UL
60
#define BIT28 0x10000000UL
61
#define BIT29 0x20000000UL
62
#define BIT30 0x40000000UL
63
#define BIT31 0x80000000UL
64
#endif
/* (!defined(BIT0)) */
65
66
/* ==================== [Typedefs] ========================================== */
67
68
/* ==================== [Global Prototypes] ================================= */
69
70
/* ==================== [Macros] ============================================ */
71
72
#define BIT_IE (1UL)
73
74
#if defined(__ASSEMBLER__)
75
# undef BIT_IE
76
# define BIT_IE 1
77
#endif
78
79
#if !defined(BIT)
80
# define BIT(n) (BIT_IE << (n))
81
#endif
82
83
#if !defined(BIT_GET)
92
# define BIT_GET(src, n) (((src) >> (n)) & BIT0)
93
#endif
94
95
#if !defined(BIT_GET_MDF0)
104
# define BIT_GET_MDF0(src, n) ((src) & ~BIT(n))
105
#endif
106
107
#if !defined(BIT_GET_MDF1)
116
# define BIT_GET_MDF1(src, n) ((src) | BIT(n))
117
#endif
118
119
#if !defined(BIT_GET_MDF)
129
# define BIT_GET_MDF(src, n, value) (BIT_GET_MDF0(src, n) | (!!(value) << (n)))
130
#endif
131
132
#if !defined(BIT_GET_FLIP)
141
# define BIT_GET_FLIP(src, n) ((src) ^ BIT(n))
142
#endif
143
144
#if !defined(BIT_SET0)
151
# define BIT_SET0(src, n) ((src) = BIT_GET_MDF0(src, n))
152
#endif
153
154
#if !defined(BIT_SET1)
161
# define BIT_SET1(src, n) ((src) = BIT_GET_MDF1(src, n))
162
#endif
163
164
#if !defined(BIT_SET)
172
# define BIT_SET(src, n, value) ((src) = BIT_GET_MDF(src, n, value))
173
#endif
174
175
#if !defined(BIT_FLIP)
182
# define BIT_FLIP(src, n) ((src) = BIT_GET_FLIP(src, n))
183
#endif
184
185
#if !defined(BIT_GET_LSH)
193
# define BIT_GET_LSH(src) ((src) << 1)
194
#endif
195
196
#if !defined(BIT_GET_RSH)
204
# define BIT_GET_RSH(src) ((src) >> 1)
205
#endif
206
207
#if !defined(BIT_MASK)
220
# define BIT_MASK(n) (((n) < (32)) ? (BIT(n) - 1) : (0xFFFFFFFFUL))
221
#endif
222
223
#if !defined(BIT_MASK_LSH)
232
# define BIT_MASK_LSH(n, offset) (BIT_MASK(n) << (offset))
233
#endif
234
235
#if !defined(BITS_GET_MDF0)
245
# define BITS_GET_MDF0(src, bitmask) ((src) & ~(bitmask))
246
#endif
247
248
#if !defined(BITS_GET_MDF1)
258
# define BITS_GET_MDF1(src, bitmask) ((src) | (bitmask))
259
#endif
260
261
#if !defined(BITS_GET_MDF_FLIP)
271
# define BITS_GET_MDF_FLIP(src, bitmask) \
272
((src) ^ (bitmask))
273
#endif
274
275
#if !defined(BITS_SET0)
292
# define BITS_SET0(src, bitmask) ((src) = BITS_GET_MDF0(src, bitmask))
293
#endif
294
295
#if !defined(BITS_SET1)
312
# define BITS_SET1(src, bitmask) ((src) = BITS_GET_MDF1(src, bitmask))
313
#endif
314
315
#if !defined(BITS_FLIP)
325
# define BITS_FLIP(src, bitmask) ((src) = BITS_GET_MDF_FLIP(src, bitmask))
326
#endif
327
328
#if !defined(BITSn_GET_LSH)
340
# define BITSn_GET_LSH(src, n, offset) \
341
(((src) & BIT_MASK(n)) << (offset))
342
#endif
343
344
#if !defined(BITSn_GET_RSH)
367
# define BITSn_GET_RSH(src, n, offset) \
368
(((src) >> (offset)) & BIT_MASK(n))
369
#endif
370
371
#if !defined(BITSn_GET_MDF)
395
# define BITSn_GET_MDF(src, n, offset, value) \
396
(BITS_GET_MDF0((src), BIT_MASK_LSH((n), (offset))) \
397
| BITSn_GET_LSH((value), (n), (offset)))
398
#endif
399
400
#if !defined(BITSn_SET)
408
# define BITSn_SET(src, n, offset, value) \
409
((src) = BITSn_GET_MDF((src), (n), (offset), (value)))
410
#endif
411
/* xt_bit */
413
414
#ifdef __cplusplus
415
}
/*extern "C"*/
416
#endif
417
418
#endif
/* __XT_BIT_H__ */
components
xt_std
xt_bit.h
生成于
, 为 xt-sdk 文档使用
1.17.0