kfs嵌入式文件系统应用指南(一)

来源:互联网 发布:林天宝知乎 编辑:程序博客网 时间:2024/04/19 19:14
     摘要:kfs文件系统来源于EmbSeek团队一个基于ARM7的嵌入式控制器项目,是一个免费的开源的小型嵌入式文件系统。kfs嵌入式文件系统给出了一种管理小容量(<64K)存储器的便捷方法,可以应用于使用EEPROMFLASH作为存储介质的嵌入式系统中,具有良好的文件操作接口,能保证存储器的均匀擦写,且代码短小,在小型的文件管理应用中具有很大的优势。本文介绍了kfs嵌入式文件系统的具体应用,从底层驱动到各个应用接口,一一介绍。

       关键字:嵌入式系统文件系统 嵌入式文件系统免费 开源kfs file system embed free open source

       1.kfs功能及简介

        kfs文件系统主要针对小型的存储器管理,为小型的嵌入式应用提供便捷的存储管理方式,kfs向用户提供类似标准的文件操作接口,非常容易上手。
        kfs主要技术参数:
            当前最高版本:                1.0.3release
            编写语言:                     C
            支持的目标平台:             可移植到几乎所有的目标平台
            操作系统依赖性:             不依赖操作系统
            支持最大存储器容量:        65536byte
            支持的文件数量:             用户自定义(按照用户目标系统的资源定义)
            支持的文件名长度:          用户自定义
            存储器均匀擦写:             是
            是否产生文件碎片:          否
            易用性:                       非常容易
        kfs文件系统是针对小型存储管理,因而在设计时kfs文件系统可以支持的最大存储器容量<64k,但是用户可以非常方便地修改源码,以支持更大的 存储器,但是用户在使用时可能效率会有所下降。其次用户在使用kfs文件系统时建议使用较短的文件名长度(默认5个字节),以获取较好的运行效率。
        在使用默认配置时,kfs文件系统生成的目标代码非常短小,我们针对ARM7系统编译生成的代码规模为<10k,RAM占用<100byte。

       2.kfs源码下载及源码包中各文件介绍      

       kfs 1.0.3release源码下载地址:www.embseek.com    下载kfs 1.0.3release

       获取源码包后解压到硬盘上,得到如下文件:

                 kfs.h(kfs核心头文件)
                 kfs.c(kfs核心源文件)
                 kfsdev.h(kfs驱动头文件)
                 kfsdev.c(kfs驱动源文件)
                 str.h(字符串操作头文件)
                 str.c(字符串操作源文件)
                 main.c(kfs应用范例程序)
                 makefile(make配置文件)
                 readme.txt(kfs介绍及文档)      

       3.kfs驱动编写

         移植kfs文件系统必须编写针对目标系统存储器基本读写操作的函数接口,用户必须编写两个函数:
        /***************************************
        function : kfsdev_read
        from_add : address of the data read from
        readto_buf : buffer for data read to
        buf_len : buffer length
        description : read data from storage
        ***************************************/
        void kfsdev_read(u8 * from_add,u8 *readto_buf,u8 buf_len);

        /***************************************
        function : kfsdev_write
        writeto_add : address of the data to write to
        data_buf : buffer of data to write
        buf_len : buffer length
        description : write data to storage
        ***************************************/
        void kfsdev_write(u8 * writeto_add,u8 *data_buf,u8 buf_len);

        说明:     kfsdev_read是读取指定地址存储器内一个字节的数据;
                    kfsdev_write是向指定地址存储器内写入一个字节的数据。


        一般系统中都回提供类似函数,用户只需简单修改函数的参数就可以实现。
        源码包中的驱动接口是在PC内存中建立kfs文件系统的驱动接口。实现对指定地址数据的读写。

                                                                               (by Eagle)