简介
本例程使用板载的 SPI Flash 作为文件系统的存储设备,展示如何在 Flash 的指定分区上创建文件系统,并挂载文件系统到 rt-thread 操作系统中。文件系统挂载成功后,展示如何使用文件系统提供的功能对目录和文件进行操作。
本例程中使用的是 FAT 文件系统,也支持 Littlefs 文件系统。Littlefs 文件系统的使用可以参考《在 STM32L4 上应用 littlefs 文件系统》。
由于本例程需要使用 fal 组件对存储设备进行分区等操作,所以在进行本例程的实验前,需要先进行 fal 例程的实验,对 fal 组件的使用有一定的了解。
硬件说明
本次示例和存储器连接通过 QSPI 接口,使用的硬件接口是 QSPI1,原理图如下所示:
SPI FLASH 在开发板中的位置如下图所示:
软件说明
挂载操作代码说明
挂载文件系统的源代码位于 /examples/15_component_fs_flash/main.c 中。
在示例代码中会执行如下操作:
使用 fal_blk_device_create() 函数在 spi flash 中名为 "filesystem" 的分区上创建一个块设备,作为文件系统的存储设备。
使用 dfs_mount() 函数将该块设备中的文件系统挂载到根目录 / 上。
运行
编译&下载
MDK:双击 project.uvprojx 打开 MDK5 工程,执行编译。
IAR:双击 project.eww 打开 IAR 工程,执行编译。
编译完成后,将开发板的 ST-Link USB 口与 PC 机连接,然后将固件下载至开发板。
运行效果
1、在 PC 端使用终端工具打开开发板的 ST-Link 提供的虚拟串口,设置 115200 8 1 N 。
2、按下复位按键重启开发板,如果看到提示"Failed to initialize filesystem!,这是因为指定的挂载设备中还没有创建文件系统。
3、在 msh 中使用命令 mkfs -t elm filesystem 可以在名为 “filesystem” 的块设备上创建 elm-fat 类型的文件系统。
4、此时按下复位按键重启开发板,可以看到提示"FileSystem initialized!",表明文件系统挂载成功。打印信息如下所示:
常用功能展示
ls: 查看当前目录信息
mkdir: 创建文件夹
echo: 将输入的字符串输出到指定输出位置
cat: 查看文件内容
rm: 删除文件夹或文件
注意事项
挂载文件系统之前一定要先在存储设备中创建相应类型的文件系统,否则会挂载失败。
原作者:IoT_Board
|