📄 typedef.h
字号:
/*H**************************************************************************
* NAME: typedef.h
*----------------------------------------------------------------------------
* Copyright (c)
*----------------------------------------------------------------------------
* RELEASE:
* REVISION:
*----------------------------------------------------------------------------
* PURPOSE:
* This file contains the type definitions
*****************************************************************************/
#ifndef TYPE_DEFINITION
#define TYPE_DEFINITION
#define VALID_DATA 1
#define INVALID_DATA 0
#ifndef NULL
#define NULL ((void *) 0L)
#endif
typedef unsigned char U8 ;
typedef unsigned short U16;
typedef unsigned long U32;
typedef char S8 ;
typedef short S16;
typedef long S32;
// U16/U32 endian handlers
#ifdef LITTLE_ENDIAN // => 16bit: (LSB,MSB), 32bit: (LSW,MSW) or (LSB0,LSB1,LSB2,LSB3) or (MSB3,MSB2,MSB1,MSB0)
# define MSB(u16) (((U8* )&u16)[1])
# define LSB(u16) (((U8* )&u16)[0])
# define MSW(u32) (((U16*)&u32)[1])
# define LSW(u32) (((U16*)&u32)[0])
# define MSB0(u32) (((U8* )&u32)[3])
# define MSB1(u32) (((U8* )&u32)[2])
# define MSB2(u32) (((U8* )&u32)[1])
# define MSB3(u32) (((U8* )&u32)[0])
# define LSB0(u32) MSB3(u32)
# define LSB1(u32) MSB2(u32)
# define LSB2(u32) MSB1(u32)
# define LSB3(u32) MSB0(u32)
#else // BIG_ENDIAN => 16bit: (MSB,LSB), 32bit: (MSW,LSW) or (LSB3,LSB2,LSB1,LSB0) or (MSB0,MSB1,MSB2,MSB3)
# define MSB(u16) (((U8* )&u16)[0])
# define LSB(u16) (((U8* )&u16)[1])
# define MSW(u32) (((U16*)&u32)[0])
# define LSW(u32) (((U16*)&u32)[1])
# define MSB0(u32) (((U8* )&u32)[0])
# define MSB1(u32) (((U8* )&u32)[1])
# define MSB2(u32) (((U8* )&u32)[2])
# define MSB3(u32) (((U8* )&u32)[3])
# define LSB0(u32) MSB3(u32)
# define LSB1(u32) MSB2(u32)
# define LSB2(u32) MSB1(u32)
# define LSB3(u32) MSB0(u32)
#endif
// Endian converters
#define Le16(b) \
( ((U16)( (b) & 0xFF) << 8) \
| ( ((U16)(b) & 0xFF00) >> 8) \
)
#define Le32(b) \
( ((U32)( (b) & 0xFF) << 24) \
| ((U32)((U16)(b) & 0xFF00) << 8) \
| ( ((U32)(b) & 0xFF0000) >> 8) \
| ( ((U32)(b) & 0xFF000000) >> 24) \
)
// host to network conversion: used for Intel HEX format, TCP/IP, ...
// Convert a 16-bit value from host-byte order to network-byte order
// Standard Unix, POSIX 1003.1g (draft)
#ifdef LITTLE_ENDIAN
# define htons(a) LE16(a)
# define ntohs(a) htons(a)
# define htonl(a) LE32(a)
# define ntohl(a) htonl(a)
#else
# define htons(a) (a)
# define ntohs(a) (a)
# define htonl(a) (a)
# define ntohl(a) (a)
#endif
// Bit and bytes manipulations
#define Low(u16) ((U8)u16)
#define High(u16) ((U8)(u16>>8))
#define Tst_bit_x(addrx,mask) (*addrx & mask)
#define Set_bit_x(addrx,mask) (*addrx = (*addrx | mask))
#define Clr_bit_x(addrx,mask) (*addrx = (*addrx & ~mask))
#define Out_x(addrx,value) (*addrx = value)
#define In_x(addrx) (*addrx)
typedef unsigned char Uint8;
typedef unsigned char Uchar;
typedef unsigned char Byte;
typedef unsigned int Uint16;
typedef unsigned long int Uint32;
typedef char Int8;
typedef int Int16;
typedef long int Int32;
typedef unsigned int Word;
typedef unsigned long int DWord;
#define LOW(U16) ((U8)U16)
#define HIGH(U16) ((U8)(U16>>8))
#define TST_BIT_X(addrx,mask) (*addrx & mask)
#define SET_BIT_X(addrx,mask) (*addrx = (*addrx | mask))
#define CLR_BIT_X(addrx,mask) (*addrx = (*addrx & ~mask))
#define OUT_X(addrx,value) (*addrx = value)
#define IN_X(addrx) (*addrx)
#define OK 1//函数返回成功
#define KO 0//函数返回失败
#define TRUE 1
#define FALSE 0
#define RETRY_NOENTRY 0//重传队列中无元素
#define RETRY_DATAVALID 1//重传队列中有元素
/**********************************************
*公用的延迟函数,在main.c中被定义
**********************************************/
#define REMOTE_BUFFER_ID 3
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -