参考文档(国内):DFS 参考文档
参考文档(国内):EasyFlash 参考文档
一、DFS 概述
DFS 是 RT-Thread 提供的虚拟文件系统组件,全称为 Device File System,即设备虚拟文件系统。
具体的描述可以查看上面的参考手册。
二、EasyFlash 概述
EasyFlash 是一款开源的轻量级嵌入式Flash存储器库,方便开发者更加轻松的实现基于Flash存储器的常见应用开发。
它让 Flash 变为 NoSQL(非关系型数据库)模型的小型键值(Key-Value)存储数据库。
具体的描述可以查看上面的参考手册。
三、DFS 和 EasyFlash 关系
如下图所示。
四、DFS、EasyFlash、SD卡的使用
1、DFS 的使用
因为我们使用的是 W25Q128 来挂载 DFS 的 elm FAT,elm FAT 默认的扇区大小是 512,然而 W25Q128 的扇区大小是 4096,所以需要进行相应的修改。
而且,DFS 也需要进行相应的修改。
/* components/dfs/include/dfs.h */
#ifndef SECTOR_SIZE
#define SECTOR_SIZE 4096 //512
#endif
在 FAL 的文章中,我们在 “FAL 分区的使用” 这小结中介绍了 DFS 的挂载过程,这里就不再介绍了。
注意:DFS 必须挂载到块设备上。
2、EasyFlash 的使用
EasyFlash 并不需要挂载到块设备上,它只需要找到 FAL 分区表中指定的分区,然后使用 FAL 提供的 API 直接对分区进行操作。
所以,我们需要指定 EasyFlash 所要使用的分区。
/* bsp/stm32/stm32l475-atk-pandora/board/ports/ef_fal_port.c */
/* 使用的 FAL 中的 "easyflash" 分区 */
#define FAL_EF_PART_NAME "easyflash"
接下来,我们可以在 “DFS 的使用” 提供的代码上添加 EasyFlash 的初始化,就可以使用 EasyFlash 了。
#include <fal.h>
#include <dfs_fs.h>
#include <easyflash.h>
/* 挂载初始化 */