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

📄 drv_defs.h

📁 基于Freescale的MX21处理器的bootloader程序
💻 H
字号:
/*-------------------------------------------------------------------
FILE NAME:
	drv_extr.h
DESCRIPTION:
	this file includes driver functions. 
AUTHOR:
	WYF
VERSION:
	2005.1122.00
COMPANY:
	DATANG MICROELECTRONICS TECHNOLOGY CO,.LTD
HISTORY:
	2005.1122 Creat this file
	...
--------------------------------------------------------------------*/
#ifndef __DRV_DEFS_H
#define __DRV_DEFS_H

#define PrP_EN
#ifdef PrP_EN
#define PrP_YUV_IN 0
#endif

#include "memory.h"
#include "nucleus.h"

/*----------------------------------------------------------
		keyboad map for MX21 ADS board
----------------------------------------------------------*/
#define KEY_SW1     0x2020
#define KEY_SW2     0x1020
#define KEY_SW3     0x0820
#define KEY_SW4     0x0420
#define KEY_SW5     0x0220
#define KEY_SW6     0x0120
#define KEY_SW7     0x2010
#define KEY_SW8     0x1010
#define KEY_SW9     0x0810
#define KEY_SW10    0x0410
#define KEY_SW11    0x0210
#define KEY_SW12    0x0110
#define KEY_SW13    0x2008
#define KEY_SW14    0x1008
#define KEY_SW15    0x0808
#define KEY_SW16    0x0408
#define KEY_SW17    0x0208
#define KEY_SW18    0x0108
#define KEY_SW19    0x2004
#define KEY_SW20    0x1004
#define KEY_SW21    0x0804
#define KEY_SW22    0x0404
#define KEY_SW23    0x0204
#define KEY_SW24    0x0104
#define KEY_SW25    0x2002
#define KEY_SW26    0x1002
#define KEY_SW27    0x0802
#define KEY_SW28    0x0402
#define KEY_SW29    0x0202
#define KEY_SW30    0x0102
#define KEY_SW31    0x2001
#define KEY_SW32    0x1001
#define KEY_SW33    0x0801
#define KEY_SW34    0x0401
#define KEY_SW35    0x0201
#define KEY_SW36    0x0101


typedef struct SYSTEM_MESSAGE
{
	unsigned char   src;
	unsigned char   des;
	unsigned short  id;
	unsigned int    para;
} TSYSTEM_MESSAGE, *P_SYSTEM_MESSAGE;


typedef struct{
	int intstatus;
	NU_HISR hisr;
	char statck[1024];
}TDRV_PrP;

typedef struct{
	NU_TASK task;
	NU_QUEUE que;

	char stack[1024];
	int  msg[8];
}TDRV_LCDC;

typedef struct{
	NU_HISR hisr;
	NU_TIMER timer; 

	char stack[1024];

	void (*cb)(int,int);
	int status;
	int key;
}TDRV_KPP;

typedef struct{
	int FbTxMode;
	int FbProcessTxMode;
	int FbProgress;
	int FiTxBufferSize;
	int FiTxProgressIndex;
	int FiRxBufferSize;
	int FiRxProgressIndex;
	char *FpbyTxBuffer;
	char *FpbyRxBuffer;

	NU_SEMAPHORE lock;
}TDRV_I2C;


#define DMA_MODE_LINEAR    0
#define DMA_MODE_2D        1
#define DMA_MODE_FIFO      2

typedef struct{
	int sar; 
	int dar; 
	int cntr;
	int ccr; 
	int rssr;
	int blr; 
	int rtor;
	int bucr;
	int ccnr;

	int wsr;
	int xsr;
	int ysr;

	void (*cb)(int);
}TCON_DMA;

typedef struct{
	int channel;
	void (*cb)(int);
	NU_SEMAPHORE sem;
	TCON_DMA *cfg;
	volatile unsigned * reg_sar;   /* Channel Source Address Registers */
	volatile unsigned * reg_dar;   /* Channel Destination Address Registers */
	volatile unsigned * reg_cntr;  /* Channel Count Registers */
	volatile unsigned * reg_ccr;   /* Channel Control Registers */
	volatile unsigned * reg_rssr;  /* Channel Request Source Select Registers */
	volatile unsigned * reg_blr;   /* Channel Burst Length Registers */
	volatile unsigned * reg_rtor;  /* Channel Request Time-Out Registers */
	volatile unsigned * reg_bucr;  /* Channel Bus Utilization Control Registers */
	volatile unsigned * reg_ccnr;  /* Channel Counter Register */
}TDRV_DMA;


enum __AUC_MODE_STRUCT{
	AUC_WRITE,
	AUC_READ,
	AUC_RDWR,
	AUC_PHONE,
	AUC_MODE_END
};
typedef enum __AUC_MODE_STRUCT AUC_MODE_T;

enum __AUC_FS_STRUCT{
	AUC_FS_8K = 8000,
	AUC_FS_11K = 11025,
	AUC_FS_16K = 16000,
	AUC_FS_22K = 22050,
	AUC_FS_44K = 44100,
	AUC_FS_END
};

typedef enum __AUC_FS_STRUCT AUC_FS_T;

enum __AUC_PARAM_STRUCT{
	AUC_HS_MIC,
	AUC_HF_MIC,
	AUC_HS_SPK,
	AUC_HF_SPK,
	AUC_MIC_VOL,
	AUC_SPK_VOL,
	AUC_SET_MIC_VOL,
	AUC_SET_SPK_VOL,
	AUC_HS_ANALOG,
	AUC_HF_ANALOG,
	AUC_MUTE_SPK,
	AUC_MUTE_ALL,
	AUC_CHANNEL,
	AUC_SYNC,
	AUC_STOP,
	AUC_PARAM_END
	};
typedef enum __AUC_PARAM_STRUCT AUC_PARAM_T;

enum __AUC_CHANNEL_STRUCT{
	AUC_MONO =0,
	AUC_STERO
};
typedef enum __AUC_CHANNEL_STRUCT AUC_CHANNEL_T;



typedef struct{
	int year;
	int month;
	int date;
	int week;
	int hour;
	int minute;
	int second;
}TDRV_RTC;

struct __struct_drivers{
	TDRV_DMA dma;
	TDRV_I2C i2c;
	TDRV_KPP kpp;
	TDRV_LCDC lcdc;

};


#endif

⌨️ 快捷键说明

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