1. 在 meunconfig 中开启 DFS elmfatfs
2. 在 menuconfig 中开启 libc
3. meunconfig 中开启 SPI Flash
4. 将 W25Q128 注册成块设备
5. 文件系统的挂载
操作还是比较简单的:
- 在 meunconfig 中开启 DFS elmfatfs
使用 Env 工具进入 rt-thread\bsp\stm32f429-apollo 目录,在命令行中输入 menuconfig 命令进入配置界面。
在 menuconfig 配置界面依次选择 RT-Thread Components → Device virtual file syste
如果需要创建的文件夹名字较长(超过8字符),还需要进入到 elm-chan’s FatFs, Generic FAT Filesystem Module 选项中修改关于长文件名支持的选项,修改方式如下图所示:
设置文件系统扇区大小,设置的值需要根据存储器件手册确定,不能小于存储器件的最小可擦除扇区。
2. 在 menuconfig 中开启 libc ,RT-Thread 已经将 libc 文件系统接口对接到 DSF 上了,在 env 工具中开启 libc 即可使用libc功能
3.本次使用的存储设备为 SPI Flash需要在 meunconfig 中开启 SPI Flash:
有些板子的SPI Flash 使用的是 QSPI 接口,还需要打开QSPI 接口
4. 将 W25Q128 注册成块设备
elmfatfs 需要在块设备上才能进行文件操作。我们需要将 W25Q128 注册成块设备,才能使用 elmfatfs 进行文件操作。在上面的配置中rtt会根据名为 spi50 的 SPI Device 设备找到对应的 Flash 存储设备并
初始化 Flash 设备,在 Flash 存储设备上创建名为 W25Q256 的 Block Device。
上述函数是将W25Q256注册成块。
5.将W25Q256挂载道elm上(函数需手动写)
#include <dfs_fs.h>
int mnt_init(void)
{
rt_thread_delay(RT_TICK_PER_SECOND);
if (dfs_mount("W25Q256", "/", "elm", 0, 0) == 0)
{
rt_kprintf("file system initialization done!\n");
}
else
{
rt_kprintf("file system initialization failed!\n");
}
return 0;
}
INIT_ENV_EXPORT(mnt_init);
此时输入list_device可查看是否成功:
成功后就可以进行文件操作了,例如:
这样就实现了基本的文件操作,和官网介绍差不太多,主要学习记录使用。