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

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

?? fat.h

?? zlg nand flash 寫平衡 在LINUX XIA
?? H
?? 第 1 頁 / 共 3 頁
字號:
/****************************************Copyright (c)**************************************************
**                               廣州周立功單片機發展有限公司
**                                     研    究    所
**                                        ARM開發組
**
**                                 http://www.zlgmcu.com
**
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名: fat.h
**創   建   人: 陳明計
**最后修改日期: 2003年9月3日
**描        述: FAT文件系統總頭文件
**              
**--------------歷史版本信息----------------------------------------------------------------------------
** 創建人: 陳明計
** 版  本: V1.0
** 日 期: 2003年9月3日
** 描 述: 原始版本
**
**--------------當前版本修訂------------------------------------------------------------------------------
** 修改人: 陳明計
** 日 期: 2004年4月10日
** 描 述: 修改注釋
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#ifndef MAX_OPEN_FILES
#define MAX_OPEN_FILES              10          /* 可以同時打開的文件數目 */
#endif

#ifndef DISK_CACHE_SIZE
#define DISK_CACHE_SIZE             512         /* 文件系統Cache大小(字節),應當是最大的扇區所占字節數 */
#endif

#ifndef MAX_DISK_CACHES
#define MAX_DISK_CACHES             256         /* 文件系統Cache數目,必須為16的整數倍 */
#endif

#define BASE_CACHE_NUM              4

#ifndef MAX_DRIVES
#define MAX_DRIVES                  1           /* 可以同時加載的邏輯驅動器數目 */
#endif

#ifndef MAX_PATHFILE_LENGTHS
#define MAX_PATHFILE_LENGTHS        512         /* 字符串的長度 */
#endif

#ifndef RW_ID_BASE
#define RW_ID_BASE                  0x20        /* 用于cache分配策略,越大cache越不易寫回磁盤 */
#endif

#if MAX_OPEN_FILES < 0x100
typedef uint8 HANDLE;
#define Not_Open_FILE               0xff
#else
#if MAX_OPEN_FILES < 0x10000
typedef uint16 HANDLE;
#define Not_Open_FILE               0xffff
#else
typedef uint32 HANDLE;
#define Not_Open_FILE               0xffffffff
#endif
#endif

#define ZLG_FS_VER                  110

/* 底層驅動命令 */
#define DISK_INIT                   0       /* 初始化,必須實現             */
#define DISK_CLOSE                  1       /* 關閉,必須實現               */
#define DISK_READ_SECTOR            2       /* 讀扇區,必須實現             */
#define DISK_WRITE_SECTOR           3       /* 寫扇區,必須實現             */
#define DISK_DRIVER_VER             4       /* 查看驅動程序版本號,必須實現 */
#define DISK_CHECK_CMD              5       /* 查看命令是否實現,必須實現   */
#define DISK_LOW_FORMAT             6       /* 低級格式化,可選命令         */
#define DISK_FREE_SECTOR            7       /* 釋放扇區,可選命令           */
#define DISK_GET_SECTOR_NUMBER      8       /* 獲得設備總扇區數,可選命令   */
#define DISK_GET_BYTES_PER_SECTOR   9       /* 獲得每扇區字節數,可選命令   */
#define DISK_CHECK_CHANGE           10      /* 查看介質是否改變,可選命令   */
#define DISK_GET_SECTORS_PER_BLOCK  11      /* 獲取每塊扇區數,可選命令     */
#define DISK_READ_BLOCK             12      /* 讀數據塊,可選命令           */
#define DISK_WRITE_BLOCK            13      /* 寫數據塊,可選命令           */

/* 底層驅動返回值 */
#define DISK_RETURN_OK              0x00
#define DISK_READ_OK                0x01
#define DISK_READ_NOT_OK            0x80
#define DISK_WRITE_OK               0x02
#define DISK_WRITE_NOT_OK           0x82
#define DISK_INIT_OK                0x03
#define DISK_INIT_NOT_OK            0x83
#define DISK_TRUE                   0x04
#define DISK_FALSE                  0x84
#define BAD_DISK_COMMAND            0xffff

/* 函數返回值 */
#define RETURN_OK                   0x00    /* 操作成功         */
#define NOT_FIND_DISK               0x01    /* 邏輯盤不存在     */
#define DISK_FULL                   0x02    /* 邏輯盤滿         */
#define SECTOR_NOT_IN_CACHE         0x03    /* 扇區沒有被cache  */
#define NOT_EMPTY_CACHE             0x04    /* 沒有空閑cache    */
#define SECTOR_READ_ERR             0x05    /* 讀扇區錯誤       */
#define CLUSTER_NOT_IN_DISK         0x06    /* 邏輯盤中沒有此簇  */
#define NOT_FIND_FDT                0x07    /* 沒有發現文件(目錄)*/
#define NOT_FAT_DISK                0x08    /* 非FAT文件系統    */
#define FDT_OVER                    0x09    /* FDT索引超出范圍  */
#define FDT_EXISTS                  0x0a    /* 文件(目錄)已經存在*/
#define ROOT_FDT_FULL               0x0b    /* 根目錄滿         */
#define DIR_EMPTY                   0x0C    /* 目錄空           */
#define DIR_NOT_EMPTY               0x0d    /* 目錄不空         */
#define PATH_NOT_FIND               0x0e    /* 路徑未找到       */
#define FAT_ERR                     0x0f    /* FAT表錯誤       */
#define FILE_NAME_ERR               0x10    /* 文件(目錄)名錯誤 */
#define FILE_EOF                    0x11    /* 文件結束        */
#define FILE_LOCK                   0x12    /* 文件被鎖定       */
#define NOT_FIND_FILE               0x13    /* 沒有發現指定文件 */
#define NOT_FIND_DIR                0x14    /* 沒有發現指定目錄 */
#define GET_TIME_ERR                0x15    /* 獲取時間錯誤 */
#define DISK_NO_FORMAT              0x16    /* 邏輯盤沒有格式化 */
#define NOT_RUN                     0xfd    /* 命令未執行       */
#define BAD_COMMAND                 0xfe    /* 錯誤命令       */
#define PARAMETER_ERR               0xff    /* 非法參數        */

/* 未使用的邏輯盤  */
#define EMPTY_DRIVE                 0xff
#define UN_MOUNT_DRIVE              0xfe

/* FAT類型 */
#define FAT12                       0
#define FAT16                       1
#define FAT32                       2

/* FDT文件屬性 */
#define ATTR_READ_ONLY              0x01
#define ATTR_HIDDEN                 0x02
#define ATTR_SYSTEM                 0x04
#define ATTR_VOLUME_ID              0x08
#define ATTR_DIRECTORY              0x10
#define ATTR_ARCHIVE                0x20

/* 簇類型 */
#define EMPTY_CLUS                  0
#define EMPTY_CLUS_1                1
#define BAD_CLUS                    0x0ffffff7L
#define EOF_CLUS_1                  0x0ffffff8L
#define EOF_CLUS_END                0x0fffffffL

/* FDT類型 */
#define EMPTY_FDT                   0
#define DEL_FDT                     ((char)(0xe5))
#define ESC_FDT                     0x05

/* Cache狀態 */
#define CACHE_READED                0x02
#define CACHE_WRITED                0x01

/* 文件指針狀態 */
#define FILE_FLAGS_READ             1 << 0          /* 可讀 */
#define FILE_FLAGS_WRITE            1 << 1          /* 可寫 */

/* 文件指針調整方式 */
#define SEEK_SET    0               /* 從文件開始處移動文件指針 */
#define SEEK_CUR    1               /* 從文件當前位置移動文件指針 */
#define SEEK_END    2               /* 從文件尾移動文件指針 */


/* 給底層驅動讀寫命令的參數結構體 */
typedef struct _Disk_RW_Parameter
{
    uint32      SectorIndex;    /* 操作的扇區 */
    void        *RsvdForLow;    /* 保留給底層驅動程序,由_Disk_Info中拷貝過來 */
    uint8       *Buf;           /* 數據存儲位置 */
}Disk_RW_Parameter;

/* 文件系統cache數據結構 */
typedef struct _Disk_Cache
{
    uint8       Drive;          /* 驅動器號,EMPTY_DRIVE為空閑 */
    uint8       Flag;           /* 狀態 */
    uint16      RW_ID;          /* 讀寫ID,用于釋放Cache */
    uint32      SecIndex;       /* 緩沖的扇區索引 */
    uint8       buf[DISK_CACHE_SIZE];
                                /* 緩沖區 */
}Disk_cache;

/* 邏輯盤信息的數據結構 */
typedef struct _Disk_Info
{
    uint8       Drive;          /* 邏輯驅動器號,EMPTY_DRIVE為還未分配 */
    uint8       FATType;        /* 類型:FAT12、FAT16和FAT32 */
    uint8       SecPerClus;     /* 每簇扇區數 */
    uint8       NumFATs;        /* FAT表數目 */

    uint16      BytsPerSec;     /* 每扇區字節數 */
    uint32      SecPerDisk;     /* 邏輯驅動器包含扇區數 */
    uint32      RootDirTable;   /* 根目錄開始扇區號(FAT32為開始簇號)*/
    uint32      RootSecCnt;     /* 根目錄占用扇區數 */
    uint32      FATStartSec;    /* FAT表開始扇區號 */
    uint32      FATSecCnt;      /* 每個FAT占用扇區數 */
    uint32      DataStartSec;   /* 數據區開始扇區號 */
    uint32      ClusPerData;    /* 數據區包含簇數 */
    uint32      PathClusIndex;  /* 當前路徑的FDT表開始簇號, 0為根目錄 */

    uint32      SecOffset;      /* 分區起始位置 */

    void        *RsvdForLow;    /* 保留給底層驅動程序 */
    
    uint16      (* DiakCommand)(uint8 Cammand, void *Parameter);
                                /* 對應的驅動程序 */
}Disk_Info;

/* 目錄表數據結構 */
typedef struct _FDT
{
    char    Name[11];           /* 短文件名主文件名 */
    uint8   Attr;               /* 文件屬性 */
    uint8   NTRes;              /* 保留給NT */
    uint8   CrtTimeTenth;       /* 建立時間(fat16保留)*/
    uint16  CrtTime;            /* 建立時間(fat16保留)*/
    uint16  CrtDate;            /* 建立日期(fat16保留)*/
    uint16  LstAccDate;         /* 最后訪問日期(fat16保留)*/
    uint16  FstClusHI;          /* 起始簇號高兩個字節(fat16保留)*/
    uint16  WrtTime;            /* 最后寫時間 */
    uint16  WrtDate;            /* 最后寫日期 */
    uint16  FstClusLO;          /* 起始簇(cluster)號低兩個字節 */
    uint32  FileSize;           /* 文件大小 */
} FDT;

/* 文件信息結構體 */
typedef struct _FILE
{
    uint8       Flags;          /* 一些標志 */
    char        Name[11];       /* 文件名 */
    uint8       Drive;          /* 文件所在磁盤 */
    uint32      DirClus;        /* 所在目錄開始簇號 */
    uint32      FileSize;       /* 文件大小 */
    uint32      FstClus;        /* 起始簇號 */
    uint32      Clus;           /* 當前簇號 */
    uint32      Offset;         /* 文件指針偏移量 */
} MY_FILE;



/* 用戶設置的時間格式 */
typedef struct _DATE_TIME
{
    uint16  da_year;	        /* 公元年 */
    uint8   da_mon;	            /* 月 */ 
    uint8   da_day;	            /* 月中日期 */
    uint8   da_dow;	            /* 星期中日期 */
   
    uint8   ti_hour;	        /* 時 */
    uint8   ti_min;  	        /* 分 */
    uint8   ti_sec;	            /* 秒 */
    uint8   ti_hund;	        /* 百分之一秒 */
}DATE_TIME;


/* 與FS接口的時間格式,與FDT項匹配 */
typedef  struct _SYS_TIME
{
/* 日期:位0~4:日,有效值1~31;位5~8:月,有效值1~12;*/
/*       位9~15:年,從1980年開始的年數,有效值0~127 */
    uint16  date;

/* 時間:位0~4:2秒的數量;位5~10:分,有效值0~59;位11~15:時,有效值0~23 */
    uint16  time;

/* 十分之一秒值,有效值0~199 */
    uint8   msec;	
}SYS_TIME;


/*******************************************************************************************************/


#ifndef IN_FILE

extern void FileInit(void);
/*********************************************************************************************************
** 函數名稱: FileInit
** 功能描述: 初始化文件指針系統
**
** 輸 入: 無
**
** 輸 出: 無
**         
** 全局變量: 無
** 調用模塊: 無
********************************************************************************************************/

extern uint8 RemoveFile(char *DirFileName);
/*********************************************************************************************************
** 函數名稱: RemoveFile
** 功能描述: 刪除文件
**
** 輸 入: DirFileName:用戶使用的文件名
**
** 輸 出: RETURN_OK:成功
**        其它參考fat.h中關于返回值的說明
** 全局變量: 無
** 調用模塊: strupr,_GetFileInfo,GetDrive,FindFDTInfo,FATDelClusChain,DelFDT
********************************************************************************************************/

extern HANDLE FileOpen(char *DirFileName, char *Type);
/*********************************************************************************************************
** 函數名稱: FileOpen
** 功能描述: 以指定方式打開文件
**
** 輸 入: DirFileName:用戶使用的文件名
**        Type:打開方式
** 輸 出: 文件句柄,Not_Open_FILE為不能打開
**         
** 全局變量: 無
** 調用模塊: _FileOpenR,_FileOpenW,_FileOpenRW
********************************************************************************************************/

extern uint8 FileClose(HANDLE Handle);
/*********************************************************************************************************
** 函數名稱: FileClose
** 功能描述: 關閉指定文件
**
** 輸 入: Handle:文件句柄
**
** 輸 出: RETURN_OK:成功
**        其它參考fat.h中關于返回值的說明 
** 全局變量: 無
** 調用模塊: 無
********************************************************************************************************/

extern uint8 FileGetCh(uint8 *Ch, HANDLE Handle);
/*********************************************************************************************************
** 函數名稱: FileGetCh
** 功能描述: 從文件讀一個字節
**
** 輸 入: Ch:返回讀到的數據
**        Handle:文件句柄
** 輸 出: RETURN_OK:成功
**        其它參考fat.h中關于返回值的說明 
** 全局變量: 無
** 調用模塊: 無
********************************************************************************************************/

extern uint32 FileRead(void *Buf, uint32 Size, HANDLE Handle);
/*********************************************************************************************************
** 函數名稱: FileRead
** 功能描述: 讀取文件
**
** 輸 入: Buf:保存讀回的數據
**        Size:要讀的字節數
**        Handle:文件句柄
** 輸 出: 實際讀到的字節數
**         
** 全局變量: 無
** 調用模塊: 無
********************************************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99国内精品| 国产精品理论在线观看| 午夜伊人狠狠久久| 欧美日韩三级一区二区| 日韩和欧美一区二区| 日韩色在线观看| 极品少妇xxxx精品少妇偷拍 | 青青草国产成人av片免费| 日韩欧美国产精品| 激情综合色综合久久| 国产日产精品1区| 成人一区二区三区中文字幕| 中文字幕av不卡| 欧美视频日韩视频| 韩国女主播一区| 亚洲图片激情小说| 777xxx欧美| 懂色av一区二区三区免费观看| 中文字幕在线播放不卡一区| 欧洲在线/亚洲| 久久精品国产亚洲aⅴ| 国产精品天天看| 欧美午夜精品久久久久久孕妇| 美女免费视频一区二区| 欧美国产精品一区| 国产三级欧美三级日产三级99| 成人激情午夜影院| 亚洲成人中文在线| 日本一区二区免费在线| 欧美三片在线视频观看| 国产一二精品视频| 亚洲一区二区视频在线| 国产亚洲欧美在线| 欧美疯狂做受xxxx富婆| 懂色av一区二区夜夜嗨| 免播放器亚洲一区| 一区二区三区在线观看动漫| 精品成人在线观看| 精品视频123区在线观看| 高清免费成人av| 日韩精品免费专区| 亚洲美女在线国产| 久久久久久一级片| 欧美精品第一页| 91免费国产视频网站| 捆绑变态av一区二区三区| 亚洲毛片av在线| 欧美经典一区二区三区| 欧美一区二区久久久| 在线观看视频一区二区| 成人午夜私人影院| 另类小说一区二区三区| 亚洲成人激情av| 亚洲欧美日韩小说| 中文字幕av资源一区| 欧美大片在线观看| 亚洲精选一二三| 欧美激情一区二区三区在线| 欧美一区二区三区白人 | 欧美一区二区三区啪啪| 在线视频你懂得一区二区三区| 成人免费视频国产在线观看| 狠狠色狠狠色综合| 精品一区二区三区久久| 日韩成人免费电影| 五月天网站亚洲| 亚洲高清三级视频| 亚洲午夜精品久久久久久久久| 亚洲男人的天堂av| 综合色天天鬼久久鬼色| 中文字幕在线观看一区| 国产精品美女久久久久久久 | 精品在线视频一区| 久久精品国产**网站演员| 日韩高清一区在线| 奇米综合一区二区三区精品视频| 亚洲va国产天堂va久久en| 亚洲福利一二三区| 日本不卡123| 麻豆专区一区二区三区四区五区| 日产欧产美韩系列久久99| 天天亚洲美女在线视频| 日韩激情视频网站| 久久福利资源站| 国产精品白丝jk黑袜喷水| 国产二区国产一区在线观看| 欧美一级视频精品观看| 精品欧美一区二区久久| 久久男人中文字幕资源站| 精品国产免费久久| 国产精品系列在线| 一区二区三区四区不卡在线| 亚洲一区二区美女| 免费在线观看精品| 国产剧情在线观看一区二区| 成人动漫一区二区在线| 色综合久久99| 欧美高清www午色夜在线视频| 欧美一卡2卡3卡4卡| 久久先锋影音av鲁色资源| 国产精品麻豆视频| 一区二区三区免费观看| 日本不卡的三区四区五区| 韩日av一区二区| 91亚洲资源网| 91精品国产欧美日韩| 久久久99久久| 亚洲综合自拍偷拍| 老司机免费视频一区二区| 高清不卡在线观看av| 欧美日韩精品三区| 国产日产精品1区| 性做久久久久久久久| 国产一级精品在线| 91成人在线免费观看| 日韩精品一区二区三区蜜臀| 中文字幕欧美国产| 天天av天天翘天天综合网色鬼国产| 久久国产夜色精品鲁鲁99| 97久久精品人人澡人人爽| 正在播放亚洲一区| 中文成人av在线| 免费高清不卡av| 91老司机福利 在线| 精品国产91乱码一区二区三区 | 成人av网在线| 日韩欧美国产一区二区在线播放| 亚洲人成人一区二区在线观看| 免费成人性网站| 色婷婷久久99综合精品jk白丝| 日韩精品一区二区三区视频播放| 亚洲精品日产精品乱码不卡| 激情综合网av| 制服丝袜av成人在线看| 一区二区三区中文字幕| 国产精品一色哟哟哟| 欧美一区二区免费视频| 夜夜夜精品看看| 93久久精品日日躁夜夜躁欧美| 日韩欧美国产一区二区在线播放| 一区二区在线观看免费视频播放| 国产精品一区二区三区网站| 日韩一级完整毛片| 亚洲成人福利片| 色婷婷狠狠综合| 中文字幕亚洲在| 懂色一区二区三区免费观看| 久久综合九色综合欧美亚洲| 奇米色一区二区| 3atv一区二区三区| 亚洲18影院在线观看| 在线视频你懂得一区二区三区| 中文字幕五月欧美| 国产成人精品aa毛片| 久久综合色播五月| 国产一区二区不卡老阿姨| 日韩美女视频在线| 麻豆久久久久久| 欧美va在线播放| 久久成人av少妇免费| 欧美一级国产精品| 美洲天堂一区二卡三卡四卡视频| 欧美性大战久久久久久久| 亚洲精品乱码久久久久久日本蜜臀| gogogo免费视频观看亚洲一| 中文字幕不卡三区| 99精品热视频| 亚洲三级电影网站| 在线观看三级视频欧美| 亚洲一区二区综合| 欧美日韩久久久一区| 婷婷开心久久网| 欧美一级片免费看| 久久精品国产精品亚洲综合| 日韩欧美国产一二三区| 另类中文字幕网| 国产目拍亚洲精品99久久精品| 国产在线不卡一区| 亚洲国产高清在线观看视频| 成人性生交大片免费看中文网站| 中文字幕一区二区三区在线播放| 97精品视频在线观看自产线路二| 亚洲男同性视频| 欧美午夜精品理论片a级按摩| 天天做天天摸天天爽国产一区| 91精品国产91久久久久久一区二区| 日本va欧美va精品| 久久午夜免费电影| 99久久免费视频.com| 亚洲小说欧美激情另类| 日韩一级二级三级| 风流少妇一区二区| 一区二区三区欧美在线观看| 欧美欧美午夜aⅴ在线观看| 另类综合日韩欧美亚洲| 中文字幕制服丝袜一区二区三区| 在线亚洲高清视频| 国产在线国偷精品免费看| 日韩理论片一区二区| 3d成人h动漫网站入口|