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

📄 endian.h

📁 ssd192X_LPC2210_V2.0 LPC2210的16位数据口控制SSD1926
💻 H
字号:
#ifndef __ENDIAN_H__
#define __ENDIAN_H__

#include "cpu.h"

#ifdef LITTLE_ENDIAN
#undef LITTLE_ENDIAN
#endif

#ifdef BIG_ENDIAN
#undef BIG_ENDIAN
#endif


#define LITTLE_ENDIAN		1
#define BIG_ENDIAN		2

#if (CPU == MC68VZ328)
#define ENDIAN		BIG_ENDIAN
#elif ((CPU == MC9328MXL) || (CPU==LPC22xx))
#define ENDIAN		LITTLE_ENDIAN
#else
#error ENDIAN Setting cannot be defined because CPU is invalid
#endif

#if (ENDIAN==BIG_ENDIAN)

#define SWAP16(x)	((((x) >> 8) & 0x00ff) | (((x) << 8) & 0xff00))
#define SWAP32(x)	((((x) >> 24) & 0x000000ff) | \
			 (((x) >> 8) &  0x0000ff00) | \
			 (((x) << 8) &  0x00ff0000) | \
			 (((x) << 24) & 0xff000000))

#else

#define SWAP16(x)	x
#define SWAP32(x)	x

#endif

	// these macros are for swapping regardless of endian
#define SWAPSHORT(x)	((((x) >> 8) & 0x00ff) | (((x) << 8) & 0xff00))
#define SWAPLONG(x)	((((x) >> 24) & 0x000000ff) | \
			 (((x) >> 8) &  0x0000ff00) | \
			 (((x) << 8) &  0x00ff0000) | \
			 (((x) << 24) & 0xff000000))
#endif	/* _ENDIAN_H_ */

⌨️ 快捷键说明

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