?? 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 FILE_Q_SIZE
#define FILE_Q_SIZE 32 /* 可以保存的未處理的命令數目 */
#endif
typedef enum _OSFileCommand /* 命令代碼 */
{
OS_RemoveFile, /* 刪除文件 */
OS_FileOpen, /* 打開文件 */
OS_FileClose, /* 關閉文件 */
OS_FileGetCh, /* 從文件中讀取一個字節數據 */
OS_FileRead, /* 從文件中讀取多個字節數據 */
OS_FilePutCh, /* 寫一個字節數據到文件 */
OS_FileWrite, /* 寫多個字節數據到文件 */
OS_FileCloseAll, /* 關閉所有文件 */
OS_FileEof, /* 判斷文件是否結束 */
OS_FileSeek, /* 移動文件指針 */
OS_MakeDir, /* 建立目錄 */
OS_RemoveDir, /* 刪除空目錄 */
OS_ChangeDir, /* 改變當前目錄 */
OS_GetDrive, /* 獲取指定目錄所在的邏輯盤的內部表示法 */
OS_ChangeDrive, /* 改變當前邏輯盤 */
OS_GetFDTInfo, /* 獲取指定FDT信息 */
OS_AddFileDriver, /* 增加底層驅動程序 */
OS_RemoveFileDriver, /* 刪除底層驅動程序 */
OS_AllCacheWriteBack /* 同步cache和邏輯盤 */
}OSFileCommand;
typedef union _Parameter
{
uint8 Puint8;
uint16 Puint16;
uint32 Puint32;
int8 Pint8;
int16 Pint16;
int32 Pint32;
HANDLE Handle;
char *cp;
unsigned char *ucp;
void *Pvp;
}Parameter;
/* OS下文件系統參數數據結構 */
typedef struct _OSFileParameter
{
OSFileCommand Command; // 命令
OS_EVENT *Rt; // 用于返回
Parameter P1; // 第一個參數及返回值
Parameter P2; // 第二個參數
Parameter P3; // 第三個參數
Parameter P4; // 第四個參數
}OSFileParameter;
#ifndef IN_OSFILE
extern uint8 OSRemoveFile(char *DirFileName);
/*********************************************************************************************************
** 函數名稱: OSRemoveFile
** 功能描述: 刪除文件
**
** 輸 入: DirFileName:用戶使用的文件名
**
** 輸 出: RETURN_OK:成功
** 其它參考fat.h中關于返回值的說明
** 全局變量:
** 調用模塊: OSQPost,OSTaskSuspend
********************************************************************************************************/
HANDLE OSFileOpen(char *DirFileName, char *Type);
/*********************************************************************************************************
** 函數名稱: OSFileOpen
** 功能描述: 以指定方式打開文件
**
** 輸 入: DirFileName:用戶使用的文件名
** Type:打開方式
** 輸 出: 文件句柄,Not_Open_FILE為不能打開
**
** 全局變量:
** 調用模塊: OSQPost,OSTaskSuspend
********************************************************************************************************/
extern uint8 OSFileClose(HANDLE Handle);
/*********************************************************************************************************
** 函數名稱: OSFileClose
** 功能描述: 關閉指定文件
**
** 輸 入: Handle:文件句柄
**
** 輸 出: RETURN_OK:成功
** 其它參考fat.h中關于返回值的說明
** 全局變量:
** 調用模塊: OSQPost,OSTaskSuspend
********************************************************************************************************/
extern uint8 OSFileGetCh(uint8 *Ch, HANDLE Handle);
/*********************************************************************************************************
** 函數名稱: OSFileGetCh
** 功能描述: 從文件讀一個字節
**
** 輸 入: Ch:返回讀到的數據
** Handle:文件句柄
** 輸 出: RETURN_OK:成功
** 其它參考fat.h中關于返回值的說明
** 全局變量:
** 調用模塊: OSQPost,OSTaskSuspend
********************************************************************************************************/
extern uint32 OSFileRead(void *Buf, uint32 Size, HANDLE Handle);
/*********************************************************************************************************
** 函數名稱: OSFileRead
** 功能描述: 讀取文件
**
** 輸 入: Buf:保存讀回的數據
** Size:要讀的字節數
** Handle:文件句柄
** 輸 出: 實際讀到的字節數
**
** 全局變量:
** 調用模塊: OSQPost,OSTaskSuspend
********************************************************************************************************/
extern uint8 OSFilePutCh(uint8 Ch, HANDLE Handle);
/*********************************************************************************************************
** 函數名稱: OSFilePutCh
** 功能描述: 寫一個字節到文件
**
** 輸 入: Ch:要寫的數據
** Handle:文件句柄
** 輸 出: RETURN_OK:成功
** 其它參考fat.h中關于返回值的說明
** 全局變量:
** 調用模塊: OSQPost,OSTaskSuspend
********************************************************************************************************/
extern uint32 OSFileWrite(void *Buf, uint32 Size, HANDLE Handle);
/*********************************************************************************************************
** 函數名稱: OSFileWrite
** 功能描述: 寫文件
**
** 輸 入: Buf:要寫的數據
** Size:要寫的字節數
** Handle:文件句柄
** 輸 出: 實際寫的字節數
**
** 全局變量:
** 調用模塊: OSQPost,OSTaskSuspend
********************************************************************************************************/
extern uint8 OSFileCloseAll(void);
/*********************************************************************************************************
** 函數名稱: OSFileCloseAll
** 功能描述: 關閉所有打開的文件
**
** 輸 入: 無
**
** 輸 出: NOT_RUN:未執行
** RETURN_OK:成功
** 全局變量:
** 調用模塊: OSQPost,OSTaskSuspend
**
********************************************************************************************************/
extern uint8 OSFileEof(HANDLE Handle);
/*********************************************************************************************************
** 函數名稱: OSFileEof
** 功能描述: 判斷文件是否到讀\寫到文件尾
**
** 輸 入: Handle:文件句柄
**
** 輸 出: 0:否
** 1:是
** 全局變量:
** 調用模塊: OSQPost,OSTaskSuspend
**
********************************************************************************************************/
extern uint8 OSFileSeek(HANDLE Handle, int32 offset, uint8 Whence);
/*********************************************************************************************************
** 函數名稱: OSFileSeek
** 功能描述: 移動文件讀\寫位置
**
** 輸 入: Handle:文件句柄
** offset:移動偏移量
** Whence:移動模式SEEK_SET:從文件頭計算SEEK_CUR:從當前位置計算SEEK_END:從文件尾計算
** 輸 出: 無
**
** 全局變量:
** 調用模塊: OSQPost,OSTaskSuspend
**
********************************************************************************************************/
extern uint8 OSMakeDir(char *Path);
/*********************************************************************************************************
** 函數名稱: OSMakeDir
** 功能描述: 建立目錄
**
** 輸 入: Path:絕對路徑名
**
** 輸 出: RETURN_OK:成功
** 其它參考fat.h中關于返回值的說明
** 全局變量:
** 調用模塊: OSQPost,OSTaskSuspend
**
********************************************************************************************************/
extern uint8 OSRemoveDir(char *Path);
/*********************************************************************************************************
** 函數名稱: OSRemoveDir
** 功能描述: 刪除目錄
**
** 輸 入: Path:絕對路徑名
**
** 輸 出: RETURN_OK:成功
** 其它參考fat.h中關于返回值的說明
** 全局變量:
** 調用模塊: OSQPost,OSTaskSuspend
**
********************************************************************************************************/
extern uint8 OSChangeDir(char *Path);
/*********************************************************************************************************
** 函數名稱: OSChangeDir
** 功能描述: 改變當前目錄
**
** 輸 入: Path:路徑名
**
** 輸 出: RETURN_OK:成功
** 其它參考fat.h中關于返回值的說明
** 全局變量:
** 調用模塊: OSQPost,OSTaskSuspend
**
********************************************************************************************************/
extern uint8 OSGetDrive(char *Path);
/*********************************************************************************************************
** 函數名稱: OSGetDrive
** 功能描述: 獲取指定目錄的驅動器
**
** 輸 入: Path:路徑名
**
** 輸 出: 驅動器號
**
** 全局變量:
** 調用模塊: OSQPost,OSTaskSuspend
**
********************************************************************************************************/
extern uint8 OSChangeDrive(char *Drive);
/*********************************************************************************************************
** 函數名稱: OSChangeDrive
** 功能描述: 改變當前邏輯盤
**
** 輸 入: Drive:邏輯盤符字符串
**
** 輸 出: RETURN_OK:成功
** NOT_FIND_DISK:邏輯盤不存在
** PARAMETER_ERR:非法參數
** 全局變量:
** 調用模塊: OSQPost,OSTaskSuspend
**
** 作 者: 陳明計
** 日 期: 2003年9月8日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
extern uint8 OSGetFDTInfo(FDT *Rt,uint8 Drive, uint32 ClusIndex, uint32 Index);
/*********************************************************************************************************
** 函數名稱: OSGetFDTInfo
** 功能描述: 獲取指定目錄指定文件(目錄)信息
**
** 輸 入: Rt:存儲返回信息的指針
** Drive:驅動器號
** ClusIndex:目錄首簇號
** Index:文件(目錄)在FDT中的位置
** 輸 出: RETURN_OK:成功
** 其它參考fat.h中關于返回值的說明
** 全局變量:
** 調用模塊: OSQPost,OSTaskSuspend
**
********************************************************************************************************/
extern uint8 OSAddFileDriver(uint16 (* DiakCommand)(uint8 Cammand, void *Parameter));
/*********************************************************************************************************
** 函數名稱: OSAddFileDriver
** 功能描述: 增加一個底層驅動程序
**
** 輸 入: DiakCommand:驅動程序接口函數
**
** 輸 出: NOT_RUN:沒有執行
** RETURN_OK:執行成功
** 全局變量:
** 調用模塊: OSQPost,OSTaskSuspend
**
********************************************************************************************************/
extern uint8 OSRemoveFileDriver(uint8 Drive);
/*********************************************************************************************************
** 函數名稱: OSRemoveFileDriver
** 功能描述: 刪除一個底層驅動程序
**
** 輸 入: Drive:邏輯驅動器號
**
** 輸 出: 無
**
** 全局變量:
** 調用模塊: OSQPost,OSTaskSuspend
**
********************************************************************************************************/
extern void OSAllCacheWriteBack(void);
/*********************************************************************************************************
** 函數名稱: OSAllCacheWriteBack
** 功能描述: 把所有已改變的扇區寫回邏輯盤
**
** 輸 入: 無
**
** 輸 出: NOT_RUN:沒有執行
** RETURN_OK:執行成功
**
** 全局變量:
** 調用模塊: OSQPost,OSTaskSuspend
**
********************************************************************************************************/
extern void OSFileTask(void *pdata);
/*********************************************************************************************************
** 函數名稱: OSFileTask
** 功能描述: 文件系統服務任務
**
** 輸 入: 無
**
** 輸 出: 無
**
** 全局變量:
** 調用模塊: OSQPost,OSTaskSuspend
**
********************************************************************************************************/
#endif
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -