⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datatype.h

📁 ARM入门学习源码
💻 H
字号:
#ifndef	__DATATYPE_H
#define	__DATATYPE_H

#define	NULL	0
#define	STATUS_ERR	1
#define	STATUS_OK		0
typedef	void (* PrVoid)(void);
typedef	PrVoid (*PrPrVoid)(void);

#define INT32U unsigned int
#define INT32	int
#define INT32S	signed int
#define INT16U unsigned short
#define INT16	short int
#define INT16S	signed   short
#define INT8U  unsigned char
#define INT8  char
#define INT8S signed   char
	
#define U8	unsigned char
#define U16 unsigned short
#define U32 unsigned int
#define S8	signed char
#define S16 signed short
#define S32 signed int

typedef unsigned char  BOOLEAN;
typedef	unsigned char	BYTE;
typedef unsigned short	WORD;
typedef unsigned int	DWORD;
typedef float          FP32;                   
typedef double         FP64;  

#define TRUE 	1
#define FALSE 	0
#define OK		1
#define FAIL	0
#define FileEnd	1
#define	NotEnd	0
//After ES3, this define does not need
#define SET_INTMSK_IRQ(n) while(1)\
			  {\
			     	rI_ISPC=(n);\
				rINTMSK|=(n);\
				if(rI_ISPR==(n))\
				    rINTMSK&=~(n);\
			  	else\
				    break;\
			  }	

typedef struct{
	U16 year;
	U8 month;
	U8 day;
	U8 weekday;
	U8 hour;
	U8 min;
	U8 sec;
}TIME_STRUC;

#define	outportb(port, data)	*((volatile U8 *)(port)) = (U8)(data)
#define	outportw(port, data)	*((volatile U16 *)(port)) = (U16)(data)
#define	outport(port, data)		*((volatile U32 *)(port)) = (U32)(data)
#define	inportb(port)			*((volatile U8 *)(port))
#define	inportw(port)			*((volatile U16 *)(port))
#define	inport(port)			*((volatile U32 *)(port))

#define	SIZE_1K		0x00000400
#define	SIZE_2K		0x00000800
#define	SIZE_4K		0x00001000
#define	SIZE_8K		0x00002000
#define	SIZE_16K	0x00004000
#define	SIZE_32K	0x00008000
#define	SIZE_64K	0x00010000
#define	SIZE_128K	0x00020000
#define	SIZE_256K	0x00040000
#define	SIZE_512K	0x00080000
#define	SIZE_1M		0x00100000
#define	SIZE_2M		0x00200000
#define	SIZE_4M		0x00400000
#define	SIZE_8M		0x00800000
#define	SIZE_16M	0x01000000
#define	SIZE_32M	0x02000000
#define	SIZE_64M	0x04000000
#define	SIZE_128M	0x08000000
#define	SIZE_256M	0x10000000
#define	SIZE_512M	0x20000000
#define	SIZE_1G		0x40000000
#define	SIZE_2G		0x80000000

struct Partition{
	U32 offset;
	U32 size;
	char *name;
};

typedef struct {
	unsigned char flag[8];
	struct {
		unsigned long ip;
		unsigned long mask;
		unsigned long gate;
	}nic_cfg;
	unsigned long baud;
	unsigned int  current_uart;
	unsigned long clk_para[4];
	unsigned long prog_s_addr;
	unsigned long prog_r_addr;
	struct Partition NandPartition[8];
	unsigned char boot_params[256];
	unsigned long boot_key;
	unsigned long saved_in;
	unsigned long initrd_addr;
	unsigned long machine;
}EnvParams;

#define	ENTER_KEY	0x0d
#define	BACK_KEY	0x08
#define	ESC_KEY		0x1b

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -