2022年ZLGFS文件系统简要说明 .pdf
《2022年ZLGFS文件系统简要说明 .pdf》由会员分享,可在线阅读,更多相关《2022年ZLGFS文件系统简要说明 .pdf(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、广州周立功单片机发展有限公司 Tel:(020)38730916 38730917 38730976 38730977 Fax:38730925 ZLG/FS 文件系统简要说明1 概述1.1 ZLG/FS简介ZLG/FS是广州周立功单片机发展有限公司开发的面向嵌入式系统开发的小型文件系统,是ZLG 系列中间件的重要成员之一。它是与FAT12、FAT16、FAT32 高度兼容的文件系统,可以直接与个人电脑交换文件。它是可移植的、可固化的文件系统,可以用于前后台系统,也可用于多任务环境。目前,ZLG/FS 的最新版本为1.0。1.2 ZLG/FS的特点高度兼容 FAT12、FAT16、FAT32
2、ZLG/FS 可以正确访问由windows98 建立的 FAT12、FAT16、FAT32 逻辑盘,ZLG/FS建立的逻辑盘也可以被windows98 正确的访问。可移植 全部代码由ANSI C编写,并且与目标处理器的存储器结构无关(即与无论存储器是大端结构还是小端结构均不影响程序的执行),方便用户移植到自己的目标系统中。可固化 ZLG/FS 为嵌入系统设计,如果您有固化手段,它可以嵌入到您的产品中成为产品的一部分支持多任务操作系统 提供 ZLG/FS 在 C/OS-II 使用的接口代码,用户参考这些代码就可以很方便的在别的多任务环境下使用ZLG/FS。兼容多种介质 ZLG/FS 提供一个底层
3、驱动程序的接口,用户只需要提供相应的介质的扇区访问代码就可以在相应的介质上使用ZLG/FS。提供源代码 需要购买源码的用户可以与广州周立功单片机发展有限公司联系。可配置 得到源码的用户可以对一些参数进行配置。1.3 已实现的特性支持多个逻辑盘 不同的逻辑盘可以在不同的介质上 支持树型目录结构,子目录层数不受限制 支持以 FAT12、FAT16、FAT32 格式化的逻辑盘 支持 8.3 文件名格式 支持文件读写和目录操作 提供格式化(format)范例代码 1.4 暂时未实现的特性对文件、目录名的限制不够严格 这一版本的ZLG/FS 有一些 FAT 规范限制使用的字符没有过滤掉。-1-名师资料总
4、结-精品资料欢迎下载-名师精心整理-第 1 页,共 12 页 -广州周立功单片机发展有限公司 Tel:(020)38730916 38730917 38730976 38730977 Fax:38730925 忽略文件(目录)属性中的时间相关属性 因为嵌入式系统常常没有系统时钟,而且即使有,也没有统一的标准,所以这一个版本的 ZLG/FS 没有处理文件、目录关于时间相关的特性。忽略文件(目录)属性中的只读、存档、隐含、系统属性 这一版本的ZLG/FS 没有对带有着几个属性的文件、目录进行特殊处理。忽略除第一个FAT表以外的所有FAT表 如果逻辑盘有几个FAT 表,则这一版本的ZLG/FS 只操
5、作第一个FAT 表,其它的 FAT表保持不变。这几个FAT 表就不同步。忽略长文件名 这一版本的ZLG/FS 不支持创建和访问长文件名的文件。不过,具有长文件名的文件还是可以通过短文件名访问。ZLG/FS 的升级版将逐步解决上述问题。2 ZLG/FS的结构视图2.1 概述ZLG/FS 采用模块化层次结构设计,并使用底层驱动程序来兼容不同的硬件结构和不同的介质,其结构如图1 所示。2.2 应用程序应用程序是用户自己编写的程序,是ZLG/FS 的使用者,位于整个程序的最高层。应用程序可以调用ZLG/FS 提供的函数(API)对文件和目录进行相应的操作。2.3 文件管理与目录管理文件管理模块和目录管
6、理模块是直接与应用程序接口的模块,位于ZLG/FS 的最高层。大部分用户接口函数(API)都在这两个模块中定义。文件管理模块提供所有与相关文件相关的函数(API);目录管理模块提供与操作录相关的函数(API)。2.4 文件分配表管理与文件目录表管理文件分配表管理模块和文件目录表管理模块管理着FAT 文件系统的两个重要的数据结构,用户程序不能调用它们。2.5 逻辑盘管理模块逻辑盘管理模块保存着每个逻辑盘的一些基本信息。例如,逻辑盘使用的驱动程序由这个模块保存。这些信息会被很多其它模块使用,大部分模块都需要调用这个模块的函数(API)来获取自己需要的逻辑盘的信息。ZLG/FS 通过这个模块管理多个
7、逻辑盘。2.6 高速缓存(cache)管理模块高速缓存(cache)是为了加快逻辑盘的访问速度而加入的。它利用一些ram 作为 cache保存一些访问过的逻辑盘扇区的内容。如果某次读逻辑盘扇区的数据时cache中有其备份,则不再读取磁盘。同时,写数据到逻辑盘扇区实际并不直接操作逻辑盘扇区,而是先写到cache中,当某种原因这一片cache要存储其它扇区数据时,或是调用相应的函数(API)时才真正的写入逻辑盘。这样就极大的减少了访问逻辑盘的次数,相应的提高了速度(通常逻辑盘速度比较慢)。这个模块就是用来管理cache的。-2-名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 12 页
8、 -广州周立功单片机发展有限公司 Tel:(020)38730916 38730917 38730976 38730977 Fax:38730925 2.7 底层驱动程序ZLG/FS 可以兼容多种介质和硬件,这是通过底层驱动程序实现的。底层驱动为上层程序提供与设备无关的接口,ZLG/FS 就通过这个接口访问实际的硬件。由于嵌入式系统的硬件没有标准,千差万别,所以底层驱动程序一般由用户编写。不过,ZLG/FS 已经把与硬件相关的代码压缩到最小,用户只要编写很少的代码就可以使用ZLG/FS 了。同时 ZLG/FS 给出相应的文档及实例帮助用户编写底层驱动程序。2.8 实用程序实用程序不是ZLG/F
9、S 的组成部分,用户的最终代码也可能不包括它们。但它们又是非常必要的。例如,初次使用文件系统时往往要用到format(格式化逻辑盘)实用程序初始化逻辑盘。当前版本的ZLG/FS 包含一个与硬件无关format 的代码(一些实用程序如分区是与硬件相关的)。文件分配表(FAT)管理文件管理目录管理文件目录表(FDT)管理逻辑盘管理高速缓存(CACSE)管理实用程序应用程序底层驱动程序注释:(1)实线箭头表示正常调用关系,虚线表示正常情况不会出现的调用。(2)模块所在位置代表其所在的层次(3)实用程序可能调用任何层次的函数图 1 ZLG/FS逻辑结构图3 源代码文件说明ZLG/FS 由多个文件组成,
10、其简要说明见表1。表 1 ZLG/FS源代码说明文件名所属模块备注Fat.h 无ZLG/FS 的头文件file.C 文件管理无dir.C 目录管理无-3-名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 12 页 -广州周立功单片机发展有限公司 Tel:(020)38730916 38730917 38730976 38730977 Fax:38730925 FAT.C 文件分配表管理用户不能直接调用FDT.C 文件目录表管理用户不能直接调用disk.C 逻辑盘管理无RWSec.C 高速缓存管理用户不能直接调用OSFile.c C/OS-II 接口代码无用户编写文件低层驱动程序参考
11、例子 floppy.c format.C 实用程序格式化例子4 API函数集4.1 系统配置配置手册ZLG/FS 是一个可以配置的软件包。目前,其可配置的选项不多,具体信息参考表2。其配置的方法是在config.h 的#include“fat.h”之前定义这些常量,其例子见程序清单1。表 2 ZLG/FS系统配置一览表功能常量名取值范围描述、注意点可以同时打开的文件数目MAX_OPEN_FILES 10 x8000 尽量贴近实际需要。使用较小的值可以优化代码和RAM 的使用。其默认值为10。cache可缓冲的数据大小DISK_CACHE_SIZE 根据实际情况取值应当是所有逻辑盘中扇区所占字节
12、数最大的那个逻辑盘的扇区的尺寸。其默认值为512。cache可缓冲的扇区数目MAX_DISK_CACHES 165535 调整此值可以在速度和RAM 占用之间取得平衡,应该通过实验决定此值。其默认值为100。可同时支持的逻辑盘数目MAX_DRIVES 126 尽量贴近实际需要。使用较小的值可以优化代码和RAM 的使用。其默认值为1。程序清单 1 修改 ZLG/FS 的配置#define MAX_OPEN_FILES 10#define DISK_CACHE_SIZE 512#define MAX_DISK_CACHES 100#define MAX_DRIVES 1#include fat.h
13、 4.2 返回值说明ZLG/FS 的很多函数都用返回值返回操作的结果信息,它们的返回值是统一的,见表 3。-4-名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 12 页 -广州周立功单片机发展有限公司 Tel:(020)38730916 38730917 38730976 38730977 Fax:38730925 表 3 ZLG/FS 返回参数一览表名称值含义RETURN_OK 0 x00 操作成功NOT_FIND_DISK 0 x01 逻辑盘不存在DISK_FULL 0 x02 逻辑盘满SECTOR_NOT_IN_CACHE 0 x03 扇区没有被cache NOT_EMPT
14、Y_CACHE 0 x04 没有空闲 cache SECTOR_READ_ERR 0 x05 读扇区错误CLUSTER_NOT_IN_DISK 0 x06 逻辑盘中没有此簇NOT_FIND_FDT 0 x07 没有发现文件(目录)NOT_FAT_DISK 0 x08 非 FAT文件系统FDT_OVER 0 x09 FDT 索引超出范围FDT_EXISTS 0 x0a 文件(目录)已经存在ROOT_FDT_FULL 0 x0b 根目录满DIR_EMPTY 0 x0c 目录空DIR_NOT_EMPTY 0 x0d 目录不空PATH_NOT_FIND 0 x0e 路径未找到FAT_ERR 0 x0f
15、 FAT 表错误FILE_NAME_ERR 0 x10 文件(目录)名错误FILE_EOF 0 x11 文件结束FILE_LOCK 0 x12 文件被锁定NOT_FIND_FILE 0 x13 没有发现指定文件NOT_FIND_DIR 0 x14 没有发现指定目录NOT_RUN 0 xfd 命令未执行BAD_COMMAND 0 xfe 错误命令PARAMETER_ERR 0 xff 非法参数4.3 用户接口函数ZLG/FS 有很多用户可以调用的接口函数,下面按照字母顺序对它们一一说明,包括:函数名称、函数原型、函数功能描述、函数参数、函数返回值、特殊说明和注意点等。注意:以下为单任务下的API
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年ZLGFS文件系统简要说明 2022 ZLGFS 文件系统 简要 说明
限制150内