2.5 rt-thread实操 STM32L496挂载spi flash w25Q128 liffies文件系统

1、层级关系

image

2、DFS 框架,此框架统一了对APP的接口,所以APP使用此接口是与底层不相关的,代码方便移植。

DFS 框架 是 RT-Thread 提供的虚拟文件系统组件,全称为 Device File System,即设备虚拟文件系统。DFS 框架为应用程序提供统一的 POSIX 文件和目录操作接口,如 read、write、poll/select 等。DFS 框架支持多种类型的文件系统,如 FatFS、RomFS、DevFS 等,并提供普通文件、设备文件、网络文件描述符的管理。

3、MTD 设备

MTD 设备,全称为 Memory Technology Device,使用 MTD 设备为 NOR FLASH 和 NAND FLASH 提供统一接口,将文件系统与底层 FLASH 存储器进行了隔离。

4、fal 组件

fal 全称为 Flash Abstraction Layer,即 Flash 抽象层,是对 Flash 及基于 Flash 的分区进行管理、操作的抽象层,对上层统一了 Flash 及 分区操作的 API。并提供了将分区创建成 MTD 设备的 API。

5、SFUD 组件

SFUD 是一款开源的串行 SPI Flash 通用驱动库。现有市面的大部分串行 Flash,用户只需要提供 SPI 或 QSPI 的读写接口,SFUD 就可以识别并驱动。同时 RT-Thread 提供了 FAL 针对 SFUD 的驱动移植,可以使两个组件无缝连接。

开发者使用的是 DFS 框架提供的统一的 POSIX API,DFS 框架会调用 littlefs 的 API,littlefs 会使用 MTD 设备的读写接口,开发者可以使用 RT-Thread 提供的 fal 组件和 SFUD 组件来完成对 FLASH 的读写任务,也可以自己实现 MTD 设备的驱动程序,使 littlefs 可以挂载到更多的存储介质上

 

 

image

 

image

 

image

 

image

 我用的RT官方代码生成的STM32L496工程进行的移植,官方的hal库驱动为

image

image

 

 

image

 

 Kconfig增加了此项,不然menuconfig,没有配置项,对应的宏无法打开

image

 

image

 

image

 

image

 

image

 

image

 

image

image

 

 

image

 

image

 

image

 过程提示了spiflash 设备找不到,以及fal初始化失败等问题,根据log信息定位位置逐一排查解决即可。

posted @ 2025-07-29 21:06  _小溢  阅读(80)  评论(0)    收藏  举报