⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 osfile.h

📁 基于周立功m2020-NU201+ASD1.2编写; 通过网络访问插入板中的U盘上指定文件
💻 H
📖 第 1 页 / 共 2 页
字号:
/****************************************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 + -