📄 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_mount, /* 加载卷 */
OS_umount, /* 卸载卷 */
OS_GetFDTInfo, /* 获取指定FDT信息 */
OS_AddFileDriver, /* 增加底层驱动程序 */
OS_RemoveFileDriver, /* 删除底层驱动程序 */
OS_AllCacheWriteBack, /* 同步cache和逻辑盘 */
OS_GetDirClusIndex /* 获取目录开始簇号 */
}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; // 第四个参数
uint32 *PathSave;
uint8 *DriveSave;
}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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -