📄 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 110
/* 函数返回值 */
#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 /* 非法参数 */
/* 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
/* 文件指针调整方式 */
#define SEEK_SET 0 /* 从文件开始处移动文件指针 */
#define SEEK_CUR 1 /* 从文件当前位置移动文件指针 */
#define SEEK_END 2 /* 从文件尾移动文件指针 */
/* 目录表数据结构 */
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;
__swi(0xaa) unsigned int SwiHandle(int, ...);
#define FILE_SWI_START 0x121
/*********************************************************************************************************
** 函数名称: OSRemoveFile
** 功能描述: 删除文件
**
** 输 入: DirFileName:用户使用的文件名
**
** 输 出: RETURN_OK:成功
** 其它参考关于返回值的说明
********************************************************************************************************/
__inline uint8 OSRemoveFile(char *DirFileName)
{
return SwiHandle(FILE_SWI_START + 0x00, DirFileName);
}
/*********************************************************************************************************
** 函数名称: OSFileOpen
** 功能描述: 以指定方式打开文件
**
** 输 入: DirFileName:用户使用的文件名
** Type:打开方式
** 输 出: 文件句柄,Not_Open_FILE为不能打开
********************************************************************************************************/
__inline HANDLE OSFileOpen(char *DirFileName, char *Type)
{
return SwiHandle(FILE_SWI_START + 0x01, DirFileName, Type);
}
/*********************************************************************************************************
** 函数名称: OSFileClose
** 功能描述: 关闭指定文件
**
** 输 入: Handle:文件句柄
**
** 输 出: RETURN_OK:成功
** 其它参考关于返回值的说明
********************************************************************************************************/
__inline uint8 OSFileClose(HANDLE Handle)
{
return SwiHandle(FILE_SWI_START + 0x02, Handle);
}
/*********************************************************************************************************
** 函数名称: OSFileGetCh
** 功能描述: 从文件读一个字节
**
** 输 入: Ch:返回读到的数据
** Handle:文件句柄
** 输 出: RETURN_OK:成功
** 其它参考关于返回值的说明
********************************************************************************************************/
__inline uint8 OSFileGetCh(uint8 *Ch, HANDLE Handle)
{
return SwiHandle(FILE_SWI_START + 0x03, Ch, Handle);
}
/*********************************************************************************************************
** 函数名称: OSFileRead
** 功能描述: 读取文件
**
** 输 入: Buf:保存读回的数据
** Size:要读的字节数
** Handle:文件句柄
** 输 出: 实际读到的字节数
********************************************************************************************************/
__inline uint32 OSFileRead(void *Buf, uint32 Size, HANDLE Handle)
{
return SwiHandle(FILE_SWI_START + 0x04, Buf, Size, Handle);
}
/*********************************************************************************************************
** 函数名称: OSFilePutCh
** 功能描述: 写一个字节到文件
**
** 输 入: Ch:要写的数据
** Handle:文件句柄
** 输 出: RETURN_OK:成功
** 其它参考关于返回值的说明
********************************************************************************************************/
__inline uint8 OSFilePutCh(uint8 Ch, HANDLE Handle)
{
return SwiHandle(FILE_SWI_START + 0x05, Ch, Handle);
}
/*********************************************************************************************************
** 函数名称: OSFileWrite
** 功能描述: 写文件
**
** 输 入: Buf:要写的数据
** Size:要写的字节数
** Handle:文件句柄
** 输 出: 实际写的字节数
********************************************************************************************************/
__inline uint32 OSFileWrite(void *Buf, uint32 Size, HANDLE Handle)
{
return SwiHandle(FILE_SWI_START + 0x06, Buf, Size, Handle);
}
/*********************************************************************************************************
** 函数名称: OSFileCloseAll
** 功能描述: 关闭所有打开的文件
**
** 输 入: 无
**
** 输 出: NOT_RUN:未执行
** RETURN_OK:成功
********************************************************************************************************/
__inline uint8 OSFileCloseAll(void)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -