www.pudn.com > NAND.rar > HardwareAdaptationLayer.h


 
 
#ifndef _HARDWAREADAPTATIONLAYER_H_ 
#define _HARDWAREADAPTATIONLAYER_H_ 
 
 
#include "Common.h" 
#include "HalUserDirective.h" 
#define CHUNK_SIZE 528 
#define CHUNK_DATA_SIZE 512 
#define CHUNK_SPARE_SIZE 16 
 
 
//typedef INT8 NFTL_Return; 
 
//struct used to store device details 
//********************************************** 
typedef struct Device_Architecture 
{ 
	UINT32 blockSize; 
	UINT8 pagesInBlock; 
	UINT8 manCode; 
	UINT8 devCode; 
	UINT16 numOfBlocks; 
	UINT16 mainSize; 
	UINT16 spareSize; 
	UINT16 pageSize; 
	UINT8 planNumber; 
	UINT16 deviceFamily; 
	UINT8 devicesNumber; 
	UINT8 busWidth; 
}DeviceArchitecture; 
//******************************************************************/ 
 
 
 
 
NFTL_Return ReadPage(UINT16 BlockNumber, UINT8 PageNumber, UINT8 *buffer); 
NFTL_Return WritePage(UINT16 BlockNumber, UINT8 PageNumber, UINT8 *buffer); 
NFTL_Return CopyPage(UINT16 SourceBlockNumber, UINT8 SourcePageNumber, 
	UINT32 DestinationBlockNumber, UINT8 DestinationPageNumber); 
NFTL_Return GetPageStatus(UINT16 BlockNumber, UINT8 PageNumber, UINT8 *buffer); 
NFTL_Return SetPageStatus(UINT16 BlockNumber, UINT8 PageNumber, UINT8 *buffer); 
NFTL_Return BlockErase(UINT16 BlockNumber); 
DeviceArchitecture GetDeviceArchitecture(void); 
NFTL_Return RecognizeDevice(void); 
 void CalculateAddress(UINT16 blockNumber, UINT8 pageNumber, UINT32 *returnAddress); 
NFTL_Return HALInitialization(void); 
NFTL_Return Unmount_HAL(void); 
NFTL_Return FlushBuffer(void); 
 
#define mCalculateAddress(BlockNumber,PageNumber) (((UINT32)(BlockNumber)<<14)+(((UINT32)(PageNumber))<<9)) 
 
#endif //_HARDWAREADAPTATIONLAYER_H_