1、Fs

Fs(File system文件系统)是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。

具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。

2、FatFs

FatFs是一个为小型嵌入式系统设计的通用FAT(File Allocation Table)文件系统模块,它完全免费开源,具有以下特点:

1)Windows兼容的Fat文件系统;

2)代码和工作区占用空间非常小;

3)使用标准C语言编写,且独立于I/O层,易于移植;

4)支持多个存储媒介,有独立的缓冲区,可以对多个文件进行读/写。

【IoT】Huawei LiteOS 支持 FatFs 的移植_华为

3、FatFs 主要数据结构

FATFS:文件系统对象结构体,用来保存独立逻辑驱动器动态工作区域;

FIL:文件对象结构,用来保存打开文件的状态;

DIR:目录对象结构体;

FILINFO:记录文件信息的结构体;

LOS_FRESULT:文件操作函数返回值枚举。

4、LiteOS 支持 FatFs

目前LiteOS已支持FatFs的移植,移植后可以在LiteOS实现对文件的存储和使用,而为了便于使用,LiteOS封装了自己的文件系统API编程接口。

LOS_fopen:创建/打开一个用于访问文件的文件对象;

LOS_fclose:关闭一个打开的文件;

LOS_fread:从一个文件读取数据;

LOS_fwrite:写入数据到一个文件;

LOS_lseek:移动一个打开的文件对象的文件读/写指针,也可以被用来扩展文件大小(簇预分配);

LOS_fsync:清空一个写入文件的缓存信息;

LOS_fmount:在FatFs模块上注册/注销一个工作区(文件系统对象);

LOS_fmkfs:在驱动器上创建一个文件系统;

5、移植准备过程

1)获取 Huawei LiteOS 源码

2)下载 FatFs 源码,LiteOS 已经做了相关适配 FatFs 源码,可从开发者社区

http://developer.huawei.com/ict/cn/resource/samplecode?ecologyID=171&productID=256&colname=1&key=FatFs&curPage=1&pageNum=10&isOpen=false

3)下载STM32CubeF4开发包

4)移植过程

以STM32Cubef4开发包中的flash驱动代码为基础,移植FatFs到LiteOS的STM32F429I_DISCO_KEIL工程中,演示基于使用MCU内部flash进行FatFs移植的过程。

1)添加需要的代码到LiteOS工程;

2)适配FatFs文件系统的相关接口;

3)添加LiteOS封装的文件;

4)添加测试代码,修改必要的文件内容;

5)添加头文件路径包含以及宏定义;

6)编译运行;

以上步骤完成之后,编译代码,连接串口进行调试,可以打印相关信息,如果成功 LD3 绿灯点亮,否则 LD4 红灯点亮。