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

📄 cdevice.h

📁 一个操作系统源代码 用于嵌入式设备 在Vc++环境下仿真 成功移植到多款处理器上
💻 H
字号:
//------------------------------------------------------------------------------
// File:        cDevice.h
// Date:        2001-5-10 pm 04:42:09
// Written by:  CYu
// Decription:  
// Modification record
//------------------------------------------------------------------------------
// Copyright:   EPSON Proprietary Material
//              Copyright (c) 2001, All Rights Reserved
//              SHANGHAI EPSON ELECTRONICS CO., LTD.
//
//              DISTRIBUTION PROHIBITED without written authorization from EPSON
//------------------------------------------------------------------------------
#ifndef _C_DEVICE_H_
#define _C_DEVICE_H_

#include <sys\wintype.h>

#define LCD_WIDTH		240		// physical screen width
#define LCD_HEIGHT 		320		// physical screen height
#define LCD_WIDTH240	1
//#define LCD_WIDTH160 1

/*2004.07.19 Writed by DSA for define color and black-white START*/

//#define BLACK_WHITE_PDA
#define COLOR_PDA
#define COLOR_12BIT 	0
#define COLOR_16BIT 	1

#ifdef BLACK_WHITE_PDA

#define BITS_PER_PIXEL	2				// 像素占据的比特数1/2/4/8/12/16/32
#define LOG_PIXEL_BITS	1				// log2(BITS_PER_PIXEL)
#define PIXEL_BIT_DEPTH	2				// 像素实际使用到的比特数

#define PIXEL_UNIT		8				// 像素存储单位的比特数8/16/32
#define LOG_UNIT		3				// log2(PIXEL_UNIT)
#define UNIT_BYTE		1				// 像素存储单位的字节数1/2/4
#define LOG_UNIT_BYTE	0				// log2(UNIT_BYTE)
#define PIXELS_PER_UNIT	4				// PIXEL_UNIT/BITS_PER_PIXEL
#define LOG_PIXEL_NUM	2				// log2(PIXELS_PER_UNIT)

#endif

#ifdef COLOR_PDA
#if COLOR_12BIT
#define BITS_PER_PIXEL	16				// 像素占据的比特数1/2/4/8/12/16/32
#define LOG_PIXEL_BITS	4				// log2(BITS_PER_PIXEL)
#define PIXEL_BIT_DEPTH	12				// 像素实际使用到的比特数

#define PIXEL_UNIT		16				// 像素存储单位的比特数8/16/32
#define LOG_UNIT		4				// log2(PIXEL_UNIT)
#define UNIT_BYTE		2				// 像素存储单位的字节数1/2/4
#define LOG_UNIT_BYTE	1				// log2(UNIT_BYTE)
#define PIXELS_PER_UNIT	1				// PIXEL_UNIT/BITS_PER_PIXEL
#define LOG_PIXEL_NUM	0				// log2(PIXELS_PER_UNIT)

#define INDEX_RED_BITS			4
#define INDEX_GREEN_BITS		4
#define INDEX_BLUE_BITS			4
#define INDEX_RED_OFFSET		12
#define INDEX_GREEN_OFFSET		8
#define INDEX_BLUE_OFFSET		4
#endif
#if COLOR_16BIT
#define BITS_PER_PIXEL	16				// 像素占据的比特数1/2/4/8/12/16/32
#define LOG_PIXEL_BITS	4				// log2(BITS_PER_PIXEL)
#define PIXEL_BIT_DEPTH	16				// 像素实际使用到的比特数

#define PIXEL_UNIT		16				// 像素存储单位的比特数8/16/32
#define LOG_UNIT		4				// log2(PIXEL_UNIT)
#define UNIT_BYTE		2				// 像素存储单位的字节数1/2/4
#define LOG_UNIT_BYTE	1				// log2(UNIT_BYTE)
#define PIXELS_PER_UNIT	1				// PIXEL_UNIT/BITS_PER_PIXEL
#define LOG_PIXEL_NUM	0				// log2(PIXELS_PER_UNIT)

#define INDEX_RED_BITS			5
#define INDEX_GREEN_BITS		6
#define INDEX_BLUE_BITS			5
#define INDEX_RED_OFFSET		11
#define INDEX_GREEN_OFFSET		5
#define INDEX_BLUE_OFFSET		0
#endif
#endif

/*2004.07.19 Writed by DSA for define color and black-white END*/

typedef DWORD			GRAMPIXEL;		//

#if PIXEL_UNIT <= 8
typedef	BYTE			PIXEL;			// 像素存储单位BYTE
#elif PIXEL_UNIT <= 16
typedef	WORD			PIXEL;			// 像素存储单位WORD
#elif PIXEL_UNIT <= 32
typedef	DWORD			PIXEL;			// 像素存储单位DWORD
#endif

#if BITS_PER_PIXEL >= 8
extern PIXEL INDEX_RED_MASK;
extern PIXEL INDEX_GREEN_MASK;
extern PIXEL INDEX_BLUE_MASK;
#endif


typedef struct
{
	PIXEL	*ad;
	WORD	widthInBit;
	WORD	widthInPixel;
	WORD	widthInUnit;
	WORD	height;
	SHORT	lcdx;
	SHORT	lcdy;
}VRAM;

typedef struct
{
#if ( BITS_PER_PIXEL < 8 )
	DWORD		threshold;
#endif
	GRAMPIXEL	rgb;
}GRAMPALETTE;

extern GRAMPALETTE *GRAMPalette;
//extern GRAMPALETTE GRAMPalette[1<< BITS_PER_PIXEL];

#define MAKEMASK( n )	( ( 1 << (n) ) -1 )

#define SWAPWORD( v )	( ((v) >> 8) | ((v) << 8 ) )
#define INVERTDWORD( v )	( ((v) >> 24) | (((v) >> 8)&0xff00) | ((v) << 24) | (((v) << 8)&0xff0000) )

#ifndef	SIM_ON_PC
#define BIG_ENDIAN_ORDER	// 高数位低字节
#define DMA_MODE
#endif

//#define BIG_BIT_ORDER		// 高比特首像素

#define	SOLIVE_DRAM_16M		// Use DRAM

//#define INTEL_FLASH_8BIT
#define INTEL_FLASH_16BIT

#define FLASH_16M
//#define FLASH_32M

//#define SOLIVE_8_BIT
#define SOLIVE_16_BIT

#define	FLASH_BASE	0x800000
#define	FLASH_CSGBA	0x0400

#define	FLASH_BOTTOM_BOOT
//#define	FLASH_TOP_BOOT

// ROM Allocation Table

#define CODE_SIZE				0x00100000	// 代码
#define HAND_WRITING_LIB_SIZE	0x000A6000	// 手写识别库
#define ENGLISH_FONT_LIB_SIZE	0x00001000	// 英文字库
#define CHINESE_FONT_LIB_SIZE	0x00046000	// 中文字库
#define PINYIN_LIB_SIZE			0x00003000	// 拼音库
#define ECDICTIONARY_LIB_SIZE	0x0002E9F6	// 英汉字典
#define CEDICTIONARY_LIB_SIZE	0x0002960A	// 汉英字典
#define WAVE_TABLE_SIZE			0x000B8000	// 软波表
//#define MEDIA_LIB_SIZE			0x00100000	// 多媒体库
#define FILE_SYSTEM_SIZE		0x00100000	// 文件系统

#define	CODE_START				FLASH_BASE
#define HAND_WRITING_LIB_START	( CODE_START + CODE_SIZE )
#define ENGLISH_FONT_LIB_START	( HAND_WRITING_LIB_START + HAND_WRITING_LIB_SIZE )
#define CHINESE_FONT_LIB_START	( ENGLISH_FONT_LIB_START + ENGLISH_FONT_LIB_SIZE )
#define PINYIN_LIB_START		( CHINESE_FONT_LIB_START + CHINESE_FONT_LIB_SIZE )
#define ECDICTIONARY_LIB_START	( PINYIN_LIB_START + PINYIN_LIB_SIZE )
#define CEDICTIONARY_LIB_START	( ECDICTIONARY_LIB_START + ECDICTIONARY_LIB_SIZE )
#define WAVE_TABLE_START		( CEDICTIONARY_LIB_START + CEDICTIONARY_LIB_SIZE )
//#define MEDIA_LIB_START			( WAVE_TABLE_START + WAVE_TABLE_SIZE )
//#define FILE_SYSTEM_START		( MEDIA_LIB_START + MEDIA_LIB_SIZE )
#define FILE_SYSTEM_START		( WAVE_TABLE_START + WAVE_TABLE_SIZE )


#endif
//----------------------------- The End of the File ----------------------------

⌨️ 快捷键说明

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