www.pudn.com > bu1566.rar > fat32.h


#ifndef __FAT32_H__ 
#define __FAT32_H__ 
#include "config.h" 
/* ¼ì²â¿¨ÊÇ·ñÍêÈ«²åÈë  check weather card is insert entirely */ 
#define UARTBUF_LENGTH  32 
#define BUFFER_LENGTH	512 
 
typedef struct 
{ 
	UINT32 StartSector; 
	UINT32 TotalSector; 
   
	UINT16 BPB_BytesPerSec; 
	UINT8 BPB_SecPerClus; 
   
	UINT8 BPB_NumFATs; 
	UINT16 BPB_RootEntCnt; 
	UINT16 BPB_TotSec16; 
	UINT32 BPB_TotSec32; 
	UINT32 FatStartSector; 
	UINT32 RootStartSector; 
	UINT32 FirstDataSector; 
	UINT32 BPB_FATSz32; 
	UINT32 RootStartCluster; 
	UINT32 TotCluster; 
}SYS_INFO_BLOCK; 
 
typedef struct{ 
  UINT8 bFileOpen; 
  UINT32 StartCluster; 
  UINT32 LengthInByte; 
  UINT32 ClusterPointer; 
  UINT32 SectorPointer; 
  UINT16 OffsetofSector; 
  UINT8 SectorofCluster; 
  UINT32 pointer; 
  UINT32 FatSectorPointer; 
}FILE_INFO; 
 
extern SYS_INFO_BLOCK  DeviceInfo; 
extern FILE_INFO  ThisFile; 
 
extern UINT8  DBUF[BUFFER_LENGTH]; 
extern UINT8 UARTBUF[UARTBUF_LENGTH]; 
extern UINT32  DirStartCluster32,NowCluster32; 
extern UINT32 NowSector; 
 
extern UINT16 LSwapINT16(UINT16 dData1,UINT16 dData2); 
extern UINT32 LSwapINT32(UINT32 dData1,UINT32 dData2,UINT32 dData3,UINT32 dData4); 
extern UINT8 EnumSdDev(void); 
extern UINT32 FirstSectorofCluster(UINT32 clusterNum); 
extern UINT32 ThisFatSecNum(UINT32 clusterNum); 
extern UINT32 ThisFatEntOffset(UINT32 clusterNum); 
extern UINT32 GetNextClusterNum(UINT32 clusterNum); 
extern UINT8 GoToPointer(UINT32 pointer); 
extern UINT32 CreateClusterLink(UINT32 currentCluster); 
#endif