?? osfile.h
字號:
/****************************************Copyright (c)**************************************************
** 廣州周立功單片機發展有限公司
** 研 究 所
** ARM開發組
**
** http://www.zlgmcu.com
**
**--------------文件信息--------------------------------------------------------------------------------
**文 件 名: OSFile.h
**創 建 人: 陳明計
**最后修改日期: 2004年7月9日
**描 述: ZLG/FS在μCOS-II下使用的接口
**
**--------------歷史版本信息----------------------------------------------------------------------------
** 創建人: 陳明計
** 版 本: V1.0
** 日 期: 2003年12月12日
** 描 述: 原始版本
**
**--------------當前版本修訂------------------------------------------------------------------------------
** 修改人: 陳明計
** 日 期: 2004年7月9日
** 描 述: 修改注釋
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#ifndef __OSFILE_H
#define __OSFILE_H
#ifdef __cplusplus
extern "C" {
#endif
typedef uint8 HANDLE;
#define Not_Open_FILE 0xff
#define ZLG_FS_VER 141
/* 函數返回值 */
#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 NO_MEMERY 0x17 /* 內存不足 */
#define FIND_FILE 0x18 /* 找到文件 */
#define FIND_DIR 0x19 /* 找到目錄 */
#define FDT_EOF 0x20 /* FTD表結束 */
#define NOT_RUN 0xfd /* 命令未執行 */
#define BAD_COMMAND 0xfe /* 錯誤命令 */
#define PARAMETER_ERR 0xff /* 非法參數 */
/* 簇類型 */
#define EMPTY_CLUS 0
#define EMPTY_CLUS_1 1
#define BAD_CLUS 0x0ffffff7L
#define EOF_CLUS_1 0x0ffffff8L
#define EOF_CLUS_END 0x0fffffffL
/* 文件指針調整方式 */
#define SEEK_SET 0 /* 從文件開始處移動文件指針 */
#define SEEK_CUR 1 /* 從文件當前位置移動文件指針 */
#define SEEK_END 2 /* 從文件尾移動文件指針 */
/* 用戶設置的時間格式 */
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;
typedef struct _L_CHIP_INFO // 參數由DataSheet提供
{
uint32 BlockPreDisk; // 芯片最大有效塊(總塊數)
uint32 MinBlockS; // 最少有效塊(保證有效塊數)
volatile uint8 *CLE;
volatile uint8 *ALE;
volatile uint8 *Data;
}LChipInfo;
typedef struct _L_FFS_DISK
{
const LChipInfo *Drive; // 底層驅動信息
uint32 none1;
uint32 none2;
uint32 none3;
uint32 none4;
}LFFSDisk;
extern HANDLE OSFileOpen(char *DirFileName, char *Type);
/*********************************************************************************************************
** Function name: OSFileOpen
** Descriptions: 以指定方式打開文件
** input parameters: DirFileName:用戶使用的文件名
** Type:打開方式
** Returned value: 文件句柄,Not_Open_FILE為不能打開
********************************************************************************************************/
extern uint8 OSFileClose(HANDLE Handle);
/*********************************************************************************************************
** Function name: OSFileClose
** Descriptions: 關閉指定文件
** input parameters: Handle:文件句柄
** Returned value: RETURN_OK:成功
** 其它參考fat.h中關于返回值的說明
********************************************************************************************************/
extern uint32 OSFileRead(void *Buf, uint32 Size, HANDLE Handle);
/*********************************************************************************************************
** Function name: OSFileRead
** Descriptions: 讀取文件
** input parameters: Buf:保存讀回的數據
** Size:要讀的字節數
** Handle:文件句柄
** Returned value: 實際讀到的字節數
********************************************************************************************************/
extern uint32 OSFileWrite(void *Buf, uint32 Size, HANDLE Handle);
/*********************************************************************************************************
** Function name: OSFileWrite
** Descriptions: 寫文件
** input parameters: Buf:保存讀回的數據
** Size:要讀的字節數
** Handle:文件句柄
** Returned value: 實際寫的字節數
********************************************************************************************************/
extern void OSFileCloseAll(void);
/*********************************************************************************************************
** Function name: OSFileCloseAll
** Descriptions: 關閉所有打開的文件
** input parameters: none
** Returned value: none
********************************************************************************************************/
extern uint8 OSFileEof(HANDLE Handle);
/*********************************************************************************************************
** Function name: OSFileEof
** Descriptions: 判斷文件是否到讀\寫到文件尾
** input parameters: Handle:文件句柄
** Returned value: 0:否
** 1:是
********************************************************************************************************/
extern uint8 OSFileSeek(HANDLE Handle, int32 offset, uint8 Whence);
/*********************************************************************************************************
** Function name: OSFileSeek
** Descriptions: 移動文件讀\寫位置
** input parameters: Handle:文件句柄
** offset:移動偏移量
** Whence:移動模式
** SEEK_SET:從文件頭計算
** SEEK_CUR:從當前位置計算
** SEEK_END:從文件尾計算
** Returned value: 0:否
** 1:是
********************************************************************************************************/
extern uint8 OSRemoveFile(char *DirFileName);
/*********************************************************************************************************
** Function name: OSRemoveFile
** Descriptions: 刪除文件
** input parameters: DirFileName:用戶使用的文件名
** Returned value: RETURN_OK:成功
** 其它參考fat.h中關于返回值的說明
********************************************************************************************************/
extern uint8 OSRenameFile(char *OldName, char *NewName);
/*********************************************************************************************************
** Function name: OSRenameFile
** Descriptions: 文件改名
** input parameters: oldName:舊文件名
** NewName:新文件名
** Returned value: RETURN_OK:成功
** 其它參考fat.h中關于返回值的說明
********************************************************************************************************/
extern uint32 OSGetFileSize(char *DirFileName);
/*********************************************************************************************************
** Function name: OSGetFileSize
** Descriptions: 獲得指定文件大小
** input parameters: DirFileName:用戶使用的文件名
** Returned value: 文件大小,文件不存在返回0
********************************************************************************************************/
extern uint8 OSGetFileDataTime(DATE_TIME *Data, char *DirFileName);
/*********************************************************************************************************
** Function name: OSGetFileDataTime
** Descriptions: 獲得指定文件最后寫時間
** input parameters: DirFileName:用戶使用的文件名
** Returned value: RETURN_OK:成功
** 其它參考fat.h中關于返回值的說明
********************************************************************************************************/
extern uint32 OSGetFileOffset(HANDLE Handle, uint8 *err);
/*********************************************************************************************************
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -