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

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

?? fat.h

?? 周立功MagicArm2410上的SD卡驅動
?? 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一区二区三区免费野_久草精品视频
一区二区高清视频在线观看| 亚洲激情六月丁香| 色88888久久久久久影院野外| 日韩在线播放一区二区| 国产日产欧美精品一区二区三区| 色老头久久综合| 国产精品香蕉一区二区三区| 性欧美大战久久久久久久久| 日韩理论片中文av| 久久综合精品国产一区二区三区| 日本道免费精品一区二区三区| 国产电影一区在线| 精品一区二区综合| 天天射综合影视| 亚洲精品国产a久久久久久| 精品久久久久久久久久久久久久久| 色播五月激情综合网| 国产成人免费在线| 久久国产精品99精品国产| 亚洲香肠在线观看| 中文字幕综合网| 中文字幕国产一区| 2023国产精品| 日韩欧美色综合网站| 制服丝袜国产精品| 欧美亚洲综合网| 色噜噜狠狠色综合中国| 成人一区二区三区| 福利视频网站一区二区三区| 久久国内精品自在自线400部| 天堂蜜桃91精品| 亚洲二区在线观看| 一区二区三区在线免费观看| 亚洲人成人一区二区在线观看| 中文字幕av一区二区三区| 久久久99精品久久| 国产亚洲福利社区一区| 久久一区二区视频| 欧美精品一区二区久久久| 日韩精品一区二区三区swag| 欧美一区二区二区| 欧美成人一区二区三区在线观看| 欧美一区二区日韩一区二区| 制服丝袜亚洲精品中文字幕| 91精品国产91久久久久久一区二区| 欧美日韩成人综合天天影院 | 国产精品国产三级国产有无不卡| 精品日韩一区二区三区| 精品成人免费观看| 国产亚洲午夜高清国产拍精品 | 国产日韩欧美制服另类| 久久久精品国产免大香伊| 国产亚洲自拍一区| 中文字幕中文字幕在线一区| 亚洲丝袜另类动漫二区| 亚洲乱码国产乱码精品精的特点| 自拍偷拍欧美精品| 亚洲福利国产精品| 美国三级日本三级久久99| 精品一区二区在线免费观看| 国产成人亚洲综合色影视| 成人三级伦理片| 色国产综合视频| 91精品国产欧美一区二区18| 精品久久久久久久人人人人传媒| 久久精品欧美日韩精品| 亚洲午夜精品在线| 另类小说欧美激情| 日韩一区二区三区免费观看| 99re成人精品视频| 欧美在线视频日韩| 精品免费99久久| 中文字幕精品在线不卡| 亚洲一区二区视频在线| 九一久久久久久| 99久久久久免费精品国产| 欧美精品久久一区二区三区| 久久蜜桃香蕉精品一区二区三区| 国产精品盗摄一区二区三区| 天天综合色天天综合| 韩国三级中文字幕hd久久精品| 不卡影院免费观看| 欧美一区二区黄| ...av二区三区久久精品| 亚洲超碰精品一区二区| 国产精品888| 91精彩视频在线| 精品国产一区二区三区久久久蜜月| 国产精品久久午夜| 奇米影视在线99精品| 成人精品视频一区二区三区 | 91色视频在线| 精品福利一区二区三区免费视频| 国产精品国产三级国产a| 日本成人中文字幕在线视频| 99精品久久99久久久久| 日韩一区二区三区在线| 亚洲欧洲日产国码二区| 久久精品久久精品| 欧美日韩亚洲另类| 欧美国产日本视频| 美女一区二区三区| 在线观看区一区二| 国产精品久久福利| 久久99热国产| 在线观看91av| 亚洲午夜一区二区| 91麻豆精品在线观看| 久久噜噜亚洲综合| 日韩中文欧美在线| 欧美午夜精品久久久久久孕妇 | 色噜噜狠狠一区二区三区果冻| 国产喂奶挤奶一区二区三区| 青青草伊人久久| 欧美色窝79yyyycom| 亚洲欧美色图小说| 不卡在线视频中文字幕| 国产网站一区二区三区| 裸体健美xxxx欧美裸体表演| 欧美色视频一区| 一区二区视频免费在线观看| 99热99精品| 国产精品超碰97尤物18| 国产成人精品www牛牛影视| 欧美成人a∨高清免费观看| 免费av成人在线| 5858s免费视频成人| 亚洲午夜电影网| 欧洲一区二区三区在线| 亚洲精品国产品国语在线app| 成人禁用看黄a在线| 国产丝袜在线精品| 国产酒店精品激情| 国产日韩精品一区| 国产成人精品免费在线| 中文字幕av一区 二区| 高清视频一区二区| 中文字幕中文字幕一区| 成人h动漫精品一区二区| 国产精品麻豆视频| 成人av网站在线观看免费| 国产精品女上位| 91小视频免费看| 一区二区欧美在线观看| 欧美日韩成人高清| 午夜在线电影亚洲一区| 欧美一区二区性放荡片| 麻豆精品视频在线观看| 2022国产精品视频| 东方欧美亚洲色图在线| 中文字幕一区二区三| 91丨porny丨户外露出| 亚洲精品久久嫩草网站秘色| 欧美日韩国产一级二级| 蜜桃一区二区三区在线观看| 精品对白一区国产伦| 成人性视频免费网站| 亚洲免费av观看| 欧美日韩成人在线| 国产精品一区二区三区四区| 国产精品视频你懂的| 欧美日韩一区中文字幕| 久久精品国产99国产精品| 亚洲国产精品精华液2区45| 91原创在线视频| 日韩福利视频网| 日本一区二区免费在线观看视频 | 水野朝阳av一区二区三区| 日韩一级大片在线| 国产白丝精品91爽爽久久| 亚洲最色的网站| 欧美精品一区二区三区在线播放| 成人网页在线观看| 午夜精品影院在线观看| 久久综合国产精品| 色香蕉成人二区免费| 日av在线不卡| 中文字幕一区二区三中文字幕| 欧美日韩中文字幕一区| 国产一区不卡视频| 性做久久久久久免费观看| 国产日本一区二区| 欧美日韩国产电影| 成人97人人超碰人人99| 免费观看一级欧美片| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 欧美激情中文不卡| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲视频资源在线| 日韩欧美一级二级三级久久久| 99国产精品一区| 黄一区二区三区| 天天综合网 天天综合色| 中文字幕永久在线不卡| 精品久久99ma| 欧美精品123区| 91麻豆视频网站| 国产成人亚洲综合a∨婷婷图片| 亚洲国产一二三| 国产精品国产a|