STM32F429 rtthread SPI Flash 虚拟文件系统

1.参考文档

官方文档:https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/filesystem/filesystem
参考文档:https://www.cnblogs.com/happybirthdaytoyou/p/12301693.html
在这里插入图片描述
需要驱动的是片外FLASH,W25Q256先作为块设备类型,再虚拟成ELM FATFS文件系统,注意STM32F429没有QSPI,不需要开启QSPI

2.添加文件

主要添加SPI相关和DFS相关文件
在这里插入图片描述在这里插入图片描述

3.添加头文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述rtconfig.h添加

#define RT_USING_SFUD

编译工程不报错,烧写程序后,串口显示如下,发现并没有SPI设备,所以接下来打开SPI,W25Q256管脚接的是SPI5
在这里插入图片描述

4.打开SPI总线

rtconfig.h添加

#define RT_USING_SPI
#define BSP_USING_SPI2
#define BSP_USING_SPI5

在这里插入图片描述
编译烧写,串口看打印信息,发现已经有SPI BUS,接下来需要在SPI总线上挂载设备

5.挂载SPI设备

新建一个文件thread_spi_w25q256.c
GPIOF_6为CS片选脚
在这里插入图片描述
函数不需要调用,会自动调用初始化
在这里插入图片描述

6.创建块设备

flash芯片信息是从SFUD_FLASH_CHIP_TABLE表读取的,所以在rtconfig.h中添加

#define SFUD_USING_FLASH_INFO_TABLE

在这里插入图片描述
thread_spi_w25q256.c添加代码
在这里插入图片描述
编译烧写,看串口信息,有块设备信息
在这里插入图片描述

7.配置DFS虚拟文件系统

rtconfig.h
在这里插入图片描述
可以查看官方文档,了解具体含义

8.挂载

thread_spi_w25q256.c添加代码
在这里插入图片描述
main.c中添加调用
在这里插入图片描述
编译烧写,看串口信息
在这里插入图片描述
在这里插入图片描述
挂载成功,块设备变成1
到这一步为止,文件系统已经初始化完成,接下来可以对文件和目录进行操作了。

9.文件与目录操作 shell 命令

在串口用 FinSH 控制台直接输入命令
mkdir 功能:创建文件夹
ls 功能:显示文件和目录的信息
cd 功能:切换到指定工作目录
echo 功能:将指定内容写入文件
cp 功能:copy 文件,示例如下图:
在这里插入图片描述
mv 功能:将文件移动位置或者改名,示例如下图:
rm 功能:删除文件或目录,示例如下图:
cat 功能:展示文件的内容,示例如下图:
pwd 功能:打印出当前目录地址,示例如下图:
在这里插入图片描述
目前为止,文件系统挂载成功,验证也都可以使用,接下来可以验证代码

10.读写文件代码验证

thread_spi_w25q.c
在这里插入图片描述
在这里插入图片描述

11.备注

可以使用 sf 命令对片外FLASH做 benchmark 测试。该功能由 sfud组件提供,可以通过检查存储设备的读、写和擦除功能来判断存储设备的驱动程序是否正常。 如果像下图一样提示成功,所示则认为该驱动工作正常。如果无法通过测试,则需要检查驱动程序,使用逻辑分析仪对存储设备的接口波形进行分析。测试过程如下图:
在这里插入图片描述
源码连接:https://download.csdn.net/download/u010915068/20261474

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值