www.pudn.com > s3c2410_code_Test.rar > compactflash.h


/* 
********************************************************* 
* Copyright (c) 
* All rights reserved.				             
* 
* 文件名称:compactflash.h 
* 文件标识:头文件 
* 摘    要:本文件是对CF CARD进行初始化和操作的头文件声明 
*            
* 当前版本:1.0 
* 作    者:刘征 
* 完成日期:2005.4.3 
* 
* 取代版本: 
* 作    者: 
* 完成日期: 
********************************************************* 
*/ 
#ifndef __COMPACTFLASH_H__ 
#define __COMPACTFLASH_H__ 
 
#ifdef __cplusplus 
extern "C" { 
#endif 
 
/* 
********************************************************* 
*   					宏定义 
********************************************************* 
*/ 
// base addresses 
#define COMPACTFLASH_BASE  0x20000000 
 
// addresses 
#define DATA_REG (*(volatile unsigned short *)(COMPACTFLASH_BASE + 0x20))//数据寄存器 
#define ERROR_REG (*(volatile unsigned char *)(COMPACTFLASH_BASE + 0x22))//错误寄存器 
#define FEATURES_REG (*(volatile unsigned char *)(COMPACTFLASH_BASE + 0x22))//特征寄存器 
#define BLOCKCOUNT_REG (*(volatile unsigned char *)(COMPACTFLASH_BASE + 0x24))//扇区数寄存器 
#define BLOCKLOW_REG (*(volatile unsigned char *)(COMPACTFLASH_BASE + 0x26))//扇区号寄存器 
#define BLOCKMIDDLE_REG (*(volatile unsigned char *)(COMPACTFLASH_BASE + 0x28))//低柱面号寄存器 
#define BLOCKHIGH_REG (*(volatile unsigned char *)(COMPACTFLASH_BASE + 0x2A))//高柱面号寄存器 
#define HEAD_REG (*(volatile unsigned char *)(COMPACTFLASH_BASE + 0x2C))//驱动器/磁头寄存器 
#define STATUS_REG (*(volatile unsigned char *)(COMPACTFLASH_BASE + 0x2E))//状态寄存器 
#define COMMAND_REG (*(volatile unsigned char *)(COMPACTFLASH_BASE + 0x2E))//命令寄存器 
 
// commands 
#define DIAGNOSTIC 0x90 
#define IDENTIFY 0xEC 
#define WRITE_BLOCK 0x30 
#define READ_BLOCK 0x20 
 
/* 
********************************************************* 
*   					 函数原型 
********************************************************* 
*/ 
void compactFlashInit(void); 
 
void compactFlashReadBuffer(void); 
void compactFlashWriteBuffer(void); 
void compactFlashClearBuffer(void); 
 
void compactFlashReadBlock(char blockHigh, char blockMiddle, char blockLow); 
void compactFlashWriteBlock(char blockHigh, char blockMiddle, char blockLow); 
void compactFlashIdentify(void); 
char compactFlashDiagnostic(void); 
 
#ifdef __cplusplus 
} 
#endif 
#endif  //__COMPACTFLASH_H__