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

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

?? cfs.hpp

?? 一款運行于ARM上的文件系統
?? HPP
字號:

//
//  CFS是一款基于小存儲器的文件系統,系統結構如下:
//  
//      |----------|
//      |  ROM  0  |   --引導扇區DBR,從第0個扇區開始存放,占用扇區0
//      |       1  |
//      |       2  |   --FAT文件分配表,從第1扇區開始存儲,范圍為1~CFS_FAT_SEC
//      |       3  |
//      |       4  |   --文件根目錄區,從第CFS_FAT_SEC+1扇區開始存儲
//      |       5  |
//      |       6  |   --文件數據區
//      |       7  |
//      |       .  |
//      |       .  |
//      |----------|
//
//  CFS沒有主引導扇區,所以她不能作為引導盤。
//  為了降低文件操作的復雜性,她對DBR進行了精簡,只保留了一些系統相關部分。
//  CFS只支持一個根目錄,所有文件都放于該文件目錄下。雖然這個‘缺點’使得文件存儲無法
//層次化,但其代碼的實現將會簡單化,同時更能保證系統的穩定性。
//  CFS的最小單位為扇區,且她的文件存儲形式是以扇區為文件的存儲單位,而非簇,即一個
//文件存儲于一個或多個扇區中。
//  對于超過一個字節的數據,全部為高位在后
#include"..\cfs_drive\cfs_drive.hpp"





#define  ROM_SEC_SIZE        (ROM_SIZE/CFS_BYTES_PER_SEC)  //存儲器上扇區的數目,單位為扇區
#define  CFS_FAT_NUM         ROM_SEC_SIZE                 //文件分配表FAT的表項數目,單位為字節

#define  CFS_EXT_MARKER1     0X55                         //引導結束符1,為0X55
#define  CFS_EXT_MARKER2     0XAA                         //引導結束符2,為0XAA                             //文件數據區所占用的扇區數目


/*
 *判斷文件分配表FAT所占用的扇區數目
 *
 */
#if   (CFS_FAT_NUM * 2) % CFS_BYTES_PER_SEC > 0
	#define   CFS_FAT_SEC    ((CFS_FAT_NUM * 2) / CFS_BYTES_PER_SEC + 1)    //CFS_FAT_NUM * 2是因為FAT的表項是兩個字節
#else                                        
    #define   CFS_FAT_SEC    ((CFS_FAT_NUM * 2) / CFS_BYTES_PER_SEC)
#endif



/*
 *判斷根目錄區的目錄項所占用的扇區數目
 *設定每一個文件占用一個扇區,則根目錄區的目錄項所占用的最大扇區數目由以下的計算公式得出
 *  因為  ROM_SEC_SIZE = 1 + CFS_FAT_SEC + CFS_ROOTDIR_SEC + CFS_FILE_DAT_SEC
 *  又    CFS_ROOTDIR_SEC = CFS_FILE_DAT_SEC * CFS_DIR_ENTYR_SIZE / CFS_BYTES_PER_SEC;
 *  所以  CFS_ROOTDIR_SEC = ((ROM_SEC_SIZE - (1 + CFS_FAT_SEC))* CFS_DIR_ENTYR_SIZE)/ (CFS_DIR_ENTYR_SIZE + CFS_BYTES_PER_SEC);
 */
#define CFS_DIR_ENTYR_SIZE  32     //目錄項的大小,單位為字節

#if ((ROM_SEC_SIZE - (1 + CFS_FAT_SEC))* CFS_DIR_ENTYR_SIZE) % (CFS_DIR_ENTYR_SIZE + CFS_BYTES_PER_SEC) > 0
	#define   CFS_ROOTDIR_SEC  (((ROM_SEC_SIZE - (1 + CFS_FAT_SEC))* CFS_DIR_ENTYR_SIZE) / (CFS_DIR_ENTYR_SIZE + CFS_BYTES_PER_SEC) +1 )
#else
	#define   CFS_ROOTDIR_SEC  (((ROM_SEC_SIZE - (1 + CFS_FAT_SEC))* CFS_DIR_ENTYR_SIZE) / (CFS_DIR_ENTYR_SIZE + CFS_BYTES_PER_SEC))
#endif



#define  CFS_DBR_START_SEC     0                        //DBR的起始扇區
#define  CFS_FAT_START_SEC     1                        //FAT的起始扇區
#define  CFS_ROOTDIR_START_SEC (CFS_FAT_START_SEC + 1)  //ROOTDIR的起始扇區

#define  CFS_FAT_USE_END       0XFFFF
#define  CFS_FAT_NOT_USE       0X0000










class cCFS_DBR{
	public:
		cfs_uint8    boOEMName[8];       //卷描述字符串
		cfs_uint16   bpbBytsPerSec;      //每扇區字節數
		cfs_uint16   bpbRootDirEnts;     //根目錄區的目錄項數
	    cfs_uint16   bpbTotSec;          //存儲卷上的扇區總數目
		cfs_uint16   bpbFATSec;          //文件分配表FAT所占用的扇區數目
		cfs_uint8    ExtMarker1;         //引導結束符1,為0X55
		cfs_uint8    ExtMarker2;         //引導結束符2,為0XAA
	public:
		cfs_bool    cfsDBRGet(cfs_int8 *pSec);
		cfs_bool    cfsDBRWrt(cfs_int8 *pSec);
		cfs_bool    cfsDBRForMat(cfs_int8 *pSec);
};




		




/*
 *每個文件目錄占用32字節
 *但有用信息只有26字節
 *
 */

class cCFS_FILEENTRY
{
	public:
		cfs_int8   fileName[8];          //文件名,地址偏移0
		cfs_int8   fileExtension[3];     //文件擴展名,地址偏移8
		cfs_uint8   fileAttributes;       //文件屬性,地址偏移11
#define ATTR_NORMAL     0X00
#define	ATTR_READONLY   0X01
#define ATTR_HIDDEN     0X02
#define ATTR_SYSTEM     0X04
	    //cfs_int8 filenotuse[6];        //地址偏移12
		//cfs_int8 fileCrtTimeTenth;
		cfs_uint16  fileCrtTime;          //創建時間,地址偏移18
		cfs_uint16  fileCrtDate;          //創建日期,地址偏移20
		//cfs_int16  fileLstAccDate;     //最后操作日期
		cfs_uint16  fileWrtTime;          //最后更新時間,地址偏移22
		cfs_uint16  fileWrtDate;          //最后更新日期,地址偏移24
		cfs_uint16  fileStartSec;         //起始扇區,地址偏移26
		cfs_uint32  fileSize;			 //文件大小,單位為字節,地址偏移28
	public:
		cfs_bool    fileIsOpen;          //文件是否被打開,TURE OR FALSE
		cfs_int8   *pfile;
		cfs_bool cfsFILEGet(cfs_int8 *pSec);
};
typedef  cCFS_FILEENTRY cfsFILE;









class cCFS{
    public:
        cCFS_DBR      CfsDbr;                       //DBR類
		cfs_uint16   *pCfsFat;                      //指向FAT區的指針
		cfs_int8	 *pCfsSecBuf;					//一個扇區大小的數據緩沖區
		cfs_uint16    CfsRootDirSec;                //根目錄區所占用的扇區數目
//		cfs_uint32    cfsROMSize;                   //存儲器的大小,單位為字節
		//cfs_uint16    CfsFATSec;                  //FAT區所占用的扇區數目
		CDchain<cCFS_FILEENTRY>	CfsRootDir;
	public:
		cCFS();
		~cCFS();
	private:
		cfs_uint32  cfscntsize(cfs_int8 *p);
	public:
        cfs_bool    cfsFATForMat(void);
        cfs_bool    cfsFATGet(void);
		cfs_uint16  cfsFATNextSec(cfs_uint16 currentSec);
		cfs_uint16  cfsFATFindNullSec(void);
		cfs_uint16  cfsFATCntNullSec(void); 
		void        cfsFATSetSec(cfs_uint16 currentsec,cfs_uint16 nextsec);
		cfs_bool    cfsFATWrt(void);
        void cfsRootDirGetAEntry(cfs_uint16 x,cCFS_FILEENTRY *p);	
		cfs_bool    cfsRootDirWrtAEntry(cfs_uint32 x);	
        cfs_bool    cfsRootDirRead(void);
		cfs_bool    cfsRootDirWrt(void);


		cfs_int32	cfsSearchFile(cfs_int8 *pfilename);
		cfs_int32   cfsCrtFile(cfs_int8 *pfilename);
		cfs_bool   	cfsLoadFile(cfs_uint32 x);
		cfs_bool    cfsWrtFile(cfs_uint32 x);
		cfs_bool    cfsformat(void);
		cfs_bool    cfsinit(void);
		cfs_int32	cfsopen(cfs_int8 *pfilename);
		cfs_bool	cfsclose(cfs_uint16 hfile);
		cfs_bool	cfswrite(cfs_int32 i,cfs_int8 *pdat,cfs_uint32 datsize);
		cfs_int8*	cfsread(cfs_int32 i);
		cfs_bool    cfsremove(cfs_int8 *pfilename);
		cfs_bool	cfsrename();
};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本网站在线观看一区二区三区| 久久久久国产成人精品亚洲午夜| 亚洲人亚洲人成电影网站色| 99视频热这里只有精品免费| 亚洲欧洲精品一区二区三区| 不卡av免费在线观看| 亚洲手机成人高清视频| 一本色道久久综合亚洲精品按摩| 亚洲图片激情小说| 欧美亚洲综合在线| 蜜臀av国产精品久久久久| 精品国产麻豆免费人成网站| 粉嫩av一区二区三区粉嫩| 中文字幕一区三区| 欧美日产在线观看| 国产精品自拍一区| 国产自产高清不卡| 国产精品久久免费看| 欧洲人成人精品| 捆绑调教美女网站视频一区| 欧美激情一区三区| 欧美亚洲尤物久久| 久久国产精品区| 国产精品初高中害羞小美女文| 色噜噜狠狠色综合中国| 蜜桃视频一区二区三区| 中文字幕二三区不卡| 欧美日韩中字一区| 国产老肥熟一区二区三区| 亚洲人一二三区| 日韩免费视频一区| 99国产欧美久久久精品| 奇米精品一区二区三区在线观看| 久久久久久久久久久黄色| 欧美性大战久久久久久久| 国产一区二区在线观看视频| 亚洲黄网站在线观看| 久久一区二区三区国产精品| 日本乱码高清不卡字幕| 国产一区二区三区黄视频| 亚洲综合一区在线| 欧美国产日韩在线观看| 欧美日韩精品一区二区三区蜜桃| 国产成人亚洲精品青草天美| 日韩电影在线免费看| 国产精品美女久久久久aⅴ国产馆| 欧美三级电影在线看| 国产成a人亚洲| 美女视频黄频大全不卡视频在线播放| 中文字幕一区二区三区视频| 日韩欧美国产一区二区三区 | 色www精品视频在线观看| 麻豆精品视频在线观看| 一区二区成人在线视频 | 亚洲国产精品激情在线观看| 欧美日韩一区二区在线观看视频 | 成人动漫在线一区| 狂野欧美性猛交blacked| 依依成人精品视频| 亚洲欧洲三级电影| 国产欧美日韩一区二区三区在线观看| 在线不卡一区二区| 欧美日韩中文一区| 日本韩国精品在线| 97精品国产97久久久久久久久久久久| 国产最新精品免费| 青青青伊人色综合久久| 亚洲18影院在线观看| 一卡二卡欧美日韩| 亚洲美腿欧美偷拍| 亚洲女同ⅹxx女同tv| 国产精品成人网| 国产精品久久久爽爽爽麻豆色哟哟| 91麻豆精品国产91| 91麻豆精品国产| 欧美日本一区二区| 91.com在线观看| 欧美日产在线观看| 在线播放中文字幕一区| 欧美日韩性生活| 欧美精品v国产精品v日韩精品 | 亚洲电影视频在线| 亚洲一线二线三线久久久| 亚洲欧美日韩国产综合| 亚洲精品免费一二三区| 亚洲精品国产无天堂网2021 | 一本色道亚洲精品aⅴ| 精品国产一区久久| 久久综合色综合88| 国产日韩影视精品| ㊣最新国产の精品bt伙计久久| 国产精品电影一区二区三区| 亚洲欧美日韩在线播放| 一区二区三区四区激情| 午夜一区二区三区在线观看| 日韩国产在线一| 国产在线精品一区二区不卡了 | 狠狠久久亚洲欧美| 国产成a人亚洲精品| 99riav一区二区三区| 欧美亚洲高清一区二区三区不卡| 欧美欧美午夜aⅴ在线观看| 91精品国产综合久久婷婷香蕉 | 国产一区二区三区四区五区美女| 韩国一区二区视频| jlzzjlzz欧美大全| 欧美美女一区二区在线观看| 日韩欧美国产综合| 中文字幕欧美一| 日韩精品欧美精品| 国产福利精品导航| 在线观看日韩国产| 精品91自产拍在线观看一区| 亚洲国产精品ⅴa在线观看| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲福利视频导航| 国产精品69毛片高清亚洲| 91片在线免费观看| 日韩欧美综合在线| 中文字幕一区不卡| 欧美aaaaa成人免费观看视频| 国产激情一区二区三区四区| 色欧美88888久久久久久影院| 欧美一区二区在线播放| 中文字幕第一页久久| 日韩二区三区四区| 91麻豆国产福利精品| 日韩视频一区二区三区在线播放| 国产精品乱码人人做人人爱| 亚洲超丰满肉感bbw| 东方aⅴ免费观看久久av| 777色狠狠一区二区三区| 久久精品噜噜噜成人av农村| www.成人网.com| 精品国产欧美一区二区| 亚洲午夜国产一区99re久久| 国产91在线观看| 日韩片之四级片| 亚洲一级片在线观看| 成人做爰69片免费看网站| 91精品欧美久久久久久动漫| 亚洲欧美日韩国产手机在线 | 成人性生交大合| 日韩一区二区三区在线观看| 亚洲精品午夜久久久| 成人免费毛片片v| 精品国产精品网麻豆系列 | 日本va欧美va欧美va精品| 91在线高清观看| 欧美国产精品一区二区| 九九在线精品视频| 在线播放91灌醉迷j高跟美女 | 欧美色手机在线观看| 国产精品国产自产拍高清av | 成人福利视频网站| 久久精品人人做人人爽人人| 麻豆久久久久久| 91精品国产综合久久福利软件 | 亚洲国产精品一区二区www| voyeur盗摄精品| 国产精品网站在线观看| 国产成人精品亚洲日本在线桃色| 精品国产1区二区| 久久精品国产免费| 日韩精品一区二区三区老鸭窝| 五月综合激情婷婷六月色窝| 欧美午夜视频网站| 亚洲一区二区视频| 欧美亚洲一区二区在线| 粉嫩蜜臀av国产精品网站| 亚洲国产精品传媒在线观看| 国产成人精品aa毛片| 日本一区二区三区国色天香 | 在线播放中文字幕一区| 亚洲国产va精品久久久不卡综合| 色婷婷综合久久久久中文| 亚洲图片激情小说| 91久久一区二区| 亚洲.国产.中文慕字在线| 欧美日韩精品欧美日韩精品一综合| 亚洲一二三四区不卡| 91精品国产欧美一区二区| 六月婷婷色综合| 久久久国际精品| av一二三不卡影片| 一区二区三区资源| 欧美日韩国产高清一区二区| 青青草成人在线观看| 精品成人一区二区| www.性欧美| 亚洲一区二区三区小说| 日韩一级成人av| 国产激情视频一区二区在线观看| 国产精品久久久久一区二区三区 | 久久超碰97人人做人人爱| 国产网红主播福利一区二区| 91在线观看一区二区| 五月婷婷激情综合| 久久免费偷拍视频| 色av成人天堂桃色av|