1、Fs
Fs(File system文件系统)是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。
具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。
2、FatFs
FatFs是一个为小型嵌入式系统设计的通用FAT(File Allocation Table)文件系统模块,它完全免费开源,具有以下特点:
1)Windows兼容的Fat文件系统;
2)代码和工作区占用空间非常小;
3)使用标准C语言编写,且独立于I/O层,易于移植;
4)支持多个存储媒介,有独立的缓冲区,可以对多个文件进行读/写。
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 红灯点亮。