亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? fat.h

?? SD卡調試所用的資料
?? H
字號:
#ifndef __FAT_H__
#define __FAT_H__

#include "mytype.h" //類型重定義

#define SOC(c) (((c-pArg->FirstDirClust)*(pArg->SectorsPerClust))+pArg->FirstDirSector) // 用于計算簇的開始扇區
#define DEVS 1 //這里表明存儲設備的個數,這里只有1個存儲設備,就是SD卡

//設備表
#define SDCARD 0 //SD卡
#define UDISK  1 //U盤
#define CFCARD 2 //CF卡
#define OTHER  3 //其它
				 //這里的存儲設備表,可以靈活擴充,以實現對更多存儲設備的支持
//-------------------------------------------

#define MAKE_FILE_TIME(h,m,s)	((((unsigned int)h)<<11)+(((unsigned int)m)<<5)+(((unsigned int)s)>>1))	/* 生成指定時分秒的文件時間數據 */
#define MAKE_FILE_DATE(y,m,d)	(((((unsigned int)y)+20)<<9)+(((unsigned int)m)<<5)+((unsigned int)d))	/* 生成指定年月日的文件日期數據 */

//DPT:分區記錄結構如下
struct PartRecord
{
 UINT8 Active;         //0x80表示此分區有效
 UINT8 StartHead;      //分區的開始磁頭
 UINT8 StartCylSect[2];//開始柱面與扇區
 UINT8 PartType;       //分區類型
 UINT8 EndHead;        //分區的結束頭
 UINT8 EndCylSect[2];  //結束柱面與扇區
 UINT8 StartLBA[4];    //分區的第一個扇區
 UINT8 Size[4];        //分區的大小 
};

//MBR:分區扇區(絕對0扇區)定義如下
struct PartSector
{
 UINT8 PartCode[446]; //MBR的引導程序
 struct PartRecord Part[4];   //4個分區記錄
 UINT8 BootSectSig0;  //55
 UINT8 BootSectSig1;  //AA
};


//FAT32中對BPB的定義如下  一共占用90個字節
struct FAT32_BPB
{
 UINT8 BS_jmpBoot[3];     //跳轉指令            offset: 0
 UINT8 BS_OEMName[8];     //                    offset: 3
 UINT8 BPB_BytesPerSec[2];//每扇區字節數        offset:11
 UINT8 BPB_SecPerClus[1]; //每簇扇區數          offset:13
 UINT8 BPB_RsvdSecCnt[2]; //保留扇區數目        offset:14
 UINT8 BPB_NumFATs[1];    //此卷中FAT表數       offset:16
 UINT8 BPB_RootEntCnt[2]; //FAT32為0            offset:17
 UINT8 BPB_TotSec16[2];   //FAT32為0            offset:19
 UINT8 BPB_Media[1];      //存儲介質            offset:21
 UINT8 BPB_FATSz16[2];    //FAT32為0            offset:22
 UINT8 BPB_SecPerTrk[2];  //磁道扇區數          offset:24
 UINT8 BPB_NumHeads[2];   //磁頭數              offset:26
 UINT8 BPB_HiddSec[4];    //FAT區前隱扇區數     offset:28
 UINT8 BPB_TotSec32[4];   //該卷總扇區數        offset:32
 UINT8 BPB_FATSz32[4];    //一個FAT表扇區數     offset:36
 UINT8 BPB_ExtFlags[2];   //FAT32特有           offset:40
 UINT8 BPB_FSVer[2];      //FAT32特有           offset:42
 UINT8 BPB_RootClus[4];   //根目錄簇號          offset:44
 UINT8 FSInfo[2];         //保留扇區FSINFO扇區數offset:48
 UINT8 BPB_BkBootSec[2];  //通常為6             offset:50
 UINT8 BPB_Reserved[12];  //擴展用              offset:52
 UINT8 BS_DrvNum[1];      //                    offset:64
 UINT8 BS_Reserved1[1];   //                    offset:65
 UINT8 BS_BootSig[1];     //                    offset:66
 UINT8 BS_VolID[4];       //                    offset:67
 UINT8 BS_FilSysType[11]; //	                offset:71
 UINT8 BS_FilSysType1[8]; //"FAT32    "         offset:82
};

struct FAT32_FAT_Item
{
 UINT8 Item[4];
};

struct FAT32_FAT
{
 struct FAT32_FAT_Item Items[128];
};

struct direntry 
{
 UINT8 deName[8];       // 文件名,不足部分以空格補充
 UINT8 deExtension[3]; 	// 擴展名,不足部分以空格補充
 UINT8 deAttributes;   	// 文件屬性
 UINT8 deLowerCase;    	// 0
 UINT8 deCHundredth;   	// 世紀
 UINT8 deCTime[2];     	// 創建時間
 UINT8 deCDate[2];     	// 創建日期
 UINT8 deADate[2];     	// 訪問日期
 UINT8 deHighClust[2];  // 開始簇的高字
 UINT8 deMTime[2];     	// 最近的修改時間
 UINT8 deMDate[2];     	// 最近的修改日期
 UINT8 deLowCluster[2]; 	// 開始簇的低字
 UINT8 deFileSize[4];      // 文件大小 
};

//FAT32初始化時初始參數裝入如下結構體中
struct FAT32_Init_Arg
{
 UINT8 DEV_No;

 UINT8 BPB_Sector_No;   //BPB所在扇區號
 UINT32 Total_Size;      //磁盤的總容量

 UINT32 FirstDirClust;   //根目錄的開始簇
 UINT32  BytesPerSector;	//每個扇區的字節數
 UINT32  FATsectors;      //FAT表所占扇區數
 UINT32  SectorsPerClust;	 //每簇的扇區數
 UINT32 FirstFATSector;	 //第一個FAT表所在扇區
 UINT32 FirstDirSector;	 //第一個目錄所在扇區
};

struct Date
{
 UINT16 year;
 UINT8 month;
 UINT8 day;
};

struct Time
{
 UINT8 hour;
 UINT8 min;
 UINT8 sec;
};

// Stuctures
struct FileInfoStruct
{
 UINT8  FileName[12];       //文件名
 UINT32  FileStartCluster;   //文件的開始簇

 UINT32  FileCurCluster;
 UINT32  FileSize;	    //文件的當前簇
 UINT32  FileCurSector;	    //文件的當前扇區
 UINT16   FileCurPos;         //文件在當前扇區中的位置
 UINT32  FileCurOffset;	    //文件的當前偏移量
 UINT32  Rec_Sec;            //文件的文件/目錄項所在的扇區
 UINT16   nRec;               //文件的文件/目錄項所在扇區中的位置

 UINT8  FileAttr;	    //文件屬性				
 struct Time    FileCreateTime;	    //文件的創建時間
 struct Date    FileCreateDate;	    //文件的創建日期
 struct Time    FileMTime;          //文件的修改時間
 struct Date    FileMDate;          //文件的修改日期
 struct Date	FileADate;          //文件的訪問日期

};

struct FSInfo //FAT32的文件系統信息結構
{
 UINT8 Head[4];
 UINT8 Resv1[480];
 UINT8 Sign[4];
 UINT8 Free_Cluster[4];
 UINT8 Last_Cluster[4];
 UINT8 Resv2[14];
 UINT8 Tail[2];
};

UINT8 FAT32_ReadSector(UINT32 addr,UINT8 *buf); //znFAT的與底層存儲設備的驅動接口,讀取扇區
UINT8 FAT32_WriteSector(UINT32 addr,UINT8 *buf);//znFAT的與底層存儲設備的驅動接口,寫入扇區

UINT32 LE2BE(UINT8 *dat,UINT8 len); //小端轉大端

UINT8 FAT32_is_MBR(); //是否存在MBR
void FAT32_Analysis_DPT(); //分析DPT結構
UINT16 FAT32_Find_DBR(); //定位DBR

UINT32 FAT32_Get_Total_Size(); //獲取總容量
void FAT32_Init(); //文件系統初始化

UINT32 Search_Last_Usable_Cluster(); //從獲取FSInfo中的下一個可用空閑簇
UINT32 FAT32_Get_Remain_Cap(); //獲取剩余容量

void FAT32_Update_FSInfo_Free_Clu(UINT32 PlusOrMinus); //更新FSInfo的空閑簇的數量
void FAT32_Update_FSInfo_Last_Clu(UINT32 Last_Clu); //更新FSInfo的下一個可用空閑簇

UINT32 FAT32_GetNextCluster(UINT32 LastCluster); //獲取下一個簇
UINT32 FAT32_Enter_Dir(INT8 *path); //進入目錄
UINT8 FAT32_Open_File(struct FileInfoStruct *pfi,INT8 *filepath,UINT32 item); //打開文件,支持通配
UINT8 FAT32_Seek_File(struct FileInfoStruct *pfi,UINT32 offset); //文件定位 
UINT32 FAT32_Read_File(struct FileInfoStruct *pfi,UINT32 offset,UINT32 len,UINT8 *pbuf); //讀取文件數據
UINT32 FAT32_Read_FileX(struct FileInfoStruct *pfi,UINT32 offset,UINT32 len,void (*pfun)(UINT8)); //讀取文件數據并進行數據處理
UINT32 FAT32_Find_Free_Clust(unsigned char flag);	//尋找下一個可用的空閑簇
UINT8 FAT32_Create_Rec(struct FileInfoStruct *pfi,UINT32 cluster,INT8 *name,UINT8 is_dir,UINT8 *ptd); //構建文件/目錄項
UINT32 FAT32_Add_Dat(struct FileInfoStruct *pfi,UINT32 len,UINT8 *pbuf); //向文件追加數據
UINT8 FAT32_Create_Dir(struct FileInfoStruct *pfi,INT8 *dirpath,UINT8 *ptd); //創建目錄,支持創建時間
UINT8 FAT32_Create_File(struct FileInfoStruct *pfi,INT8 *filepath,UINT8 *ptd); //創建文件,支持創建時間
UINT8 FAT32_Del_File(INT8 *filepath); //刪除文件
unsigned char FAT32_XCopy_File(struct FAT32_Init_Arg *pArg1,struct FAT32_Init_Arg *pArg2,INT8 *sfilename,INT8 *tfilename,UINT8 *file_buf,UINT32 buf_size,unsigned char *pt); //文件拷貝,支持多設備中文件互拷
UINT8 FAT32_File_Close(struct FileInfoStruct *pfi); //文件關閉
UINT8 FAT32_Rename_File(INT8 *filename,INT8 *newfilename); //文件重命名

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久久三级丝袜| 欧美肥妇bbw| 美国欧美日韩国产在线播放| 亚洲日本va在线观看| 国产精品沙发午睡系列990531| 精品欧美一区二区在线观看 | 日韩欧美视频在线| 91.麻豆视频| 欧美一级理论片| 久久亚洲免费视频| 日本一区二区视频在线观看| 中文字幕乱码亚洲精品一区| 亚洲精品国产第一综合99久久 | 欧美午夜寂寞影院| 91精品国产一区二区三区蜜臀| 在线播放国产精品二区一二区四区| 欧美挠脚心视频网站| 日韩一卡二卡三卡四卡| 久久综合久久久久88| 中文字幕一区二区在线观看| 亚洲一区二三区| 日韩高清欧美激情| 国产成人自拍在线| 欧美中文字幕一区二区三区亚洲| 欧美日产在线观看| 国产片一区二区| 一区二区三区欧美激情| 蜜桃视频免费观看一区| 国产精品影视在线| 欧美日韩日日夜夜| 久久久久久黄色| 亚洲18色成人| 成人动漫一区二区在线| 欧美日韩www| 自拍视频在线观看一区二区| 五月天一区二区| 国产成人精品aa毛片| 欧美日韩成人综合| 亚洲日本va在线观看| 国产一区二区三区在线观看免费 | 91麻豆产精品久久久久久| 9191精品国产综合久久久久久 | 欧美日韩高清一区| 国产精品成人在线观看| 麻豆成人在线观看| 色先锋aa成人| 国产亚洲女人久久久久毛片| 亚洲一区二区成人在线观看| 国产成人在线电影| 日韩精品中文字幕在线不卡尤物| 亚洲女与黑人做爰| 国产成人自拍高清视频在线免费播放| 91行情网站电视在线观看高清版| 久久婷婷成人综合色| 午夜欧美一区二区三区在线播放| 国产成人精品亚洲日本在线桃色| 666欧美在线视频| 亚洲一区二区三区中文字幕在线 | 成人在线视频一区二区| 欧美午夜精品一区| 玉米视频成人免费看| 国产91精品一区二区麻豆亚洲| 欧美一区二区三区视频免费| 一区二区三区免费网站| 99国产精品久| 18成人在线视频| www..com久久爱| 中文字幕乱码久久午夜不卡| 国产精品亚洲第一| 国产日韩欧美在线一区| 激情图片小说一区| 日韩免费高清视频| 久久狠狠亚洲综合| 欧美精品一区二区高清在线观看| 奇米一区二区三区| 日韩视频一区二区三区在线播放| 午夜视频一区二区| 这里是久久伊人| 毛片av一区二区三区| 久久综合成人精品亚洲另类欧美| 狠狠v欧美v日韩v亚洲ⅴ| 精品国产一区二区三区忘忧草| 蜜臂av日日欢夜夜爽一区| 欧美一级二级三级蜜桃| 激情小说欧美图片| 国产人成一区二区三区影院| av在线播放成人| 亚洲欧美乱综合| 欧美日韩美少妇| 日本欧美在线看| 国产亚洲成aⅴ人片在线观看| 99久久久无码国产精品| 亚洲成人精品影院| 日韩视频在线你懂得| 成人在线综合网站| 亚洲成人午夜影院| 久久久精品2019中文字幕之3| 粉嫩av亚洲一区二区图片| 亚洲私人黄色宅男| 91精品综合久久久久久| 国产成人小视频| 亚洲综合免费观看高清在线观看| 91精品国产福利在线观看| 国产一区二区调教| 亚洲无线码一区二区三区| 欧美精品一区二区在线观看| 99久久精品国产导航| 日韩精品午夜视频| 国产精品久久久一本精品| 欧美精三区欧美精三区| 成人免费观看视频| 日本三级韩国三级欧美三级| 中文字幕电影一区| 777亚洲妇女| 91同城在线观看| 久久精品国产精品亚洲红杏| 亚洲蜜臀av乱码久久精品蜜桃| 日韩欧美激情四射| 一本大道av伊人久久综合| 激情六月婷婷久久| 亚洲永久免费av| 国产精品色一区二区三区| 欧美va日韩va| 欧美日韩美少妇| 91蝌蚪国产九色| 国产宾馆实践打屁股91| 美洲天堂一区二卡三卡四卡视频 | 国产成人在线电影| 免费的成人av| 一区二区三区在线观看欧美| 国产亚洲人成网站| 日韩一级片网站| 欧美日本一区二区| 在线日韩国产精品| a级精品国产片在线观看| 国产美女娇喘av呻吟久久| 日本不卡一区二区三区高清视频| 艳妇臀荡乳欲伦亚洲一区| 中文字幕亚洲一区二区av在线| 精品日韩av一区二区| 91麻豆精品国产91久久久久 | 亚洲mv在线观看| 亚洲精品成人少妇| 亚洲欧美色一区| 中文字幕一区三区| 国产精品欧美一级免费| 欧美激情一区二区三区四区 | 亚洲一区二区三区免费视频| 成人免费视频在线观看| 亚洲色图清纯唯美| 亚洲青青青在线视频| 亚洲欧洲一区二区三区| **欧美大码日韩| 亚洲女子a中天字幕| 亚洲另类一区二区| 亚洲一区二区三区四区五区中文| 一区二区三区久久久| 亚洲一区二区精品3399| 日韩精品欧美成人高清一区二区| 日韩影视精彩在线| 麻豆国产精品777777在线| 国产在线视频精品一区| 国产成人在线视频免费播放| 成人h动漫精品一区二区| 99久久国产免费看| 欧美日高清视频| 26uuu欧美日本| 国产精品久久久一本精品| 一区二区三区在线观看动漫 | 国产精品欧美一区喷水| 亚洲人成在线播放网站岛国| 亚洲一区二区av电影| 日本不卡视频一二三区| 国产精品一区二区x88av| 99精品一区二区三区| 在线看国产一区二区| 欧美一区二区视频在线观看2022 | 欧美一级爆毛片| 国产目拍亚洲精品99久久精品| 亚洲人成网站精品片在线观看| 亚洲欧美电影院| 久草这里只有精品视频| 成人一区二区三区| 欧美性受xxxx黑人xyx| 久久综合狠狠综合久久激情 | 6080亚洲精品一区二区| 日本一区二区综合亚洲| 五月天激情综合| 高清av一区二区| 欧美人牲a欧美精品| 久久久亚洲精华液精华液精华液 | 免费黄网站欧美| 成人av中文字幕| 欧美一级生活片| 亚洲激情图片一区| 国产高清亚洲一区| 91精品国产日韩91久久久久久| 18欧美乱大交hd1984| 韩国三级中文字幕hd久久精品| 99视频有精品|