RT-Thread中使用SPI操作FLASH(W25Q128),并在W25Q128上挂载文件系统

Posted raowz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RT-Thread中使用SPI操作FLASH(W25Q128),并在W25Q128上挂载文件系统相关的知识,希望对你有一定的参考价值。

  • 开发板
    • 正点原子的STM32F407探索者
  • IDE
    • RT-Thread Studio
  • FLASH
    • W25Q128
  • FATFS
  • 参考RTThread官方文档

步骤一:创建基础工程

技术图片

点击完成。修改main.c中对应LED0灯的引脚

技术图片

步骤二:点击RT-Thread setting在图形界面配置需要的组件和驱动

技术图片

 W25Q128是16M spi flash,一共有256个block ,每个Block 64KB。

  一个Block可以分割为16个扇区(small sector),每个扇区4096字节(4KB),所以我们需要修改fatfs的扇区大小为4096
技术图片

步骤三:根据RTT官网文档对SPI驱动进行修改,右击SPI 图标-->选择开发文档-->驱动开发文档

SPI 设备驱动的开发可总结为如下:
*** 新建 RT-Thread 完整版项目**
*** 打开 SPI 设备驱动框架**
*** 定义 SPI 总线相关的宏**
*** 打开 HAL 库函数对 SPI 总线的支持**
*** 复制 SPI 引脚初始化函数到工程**

技术图片
技术图片
技术图片

在rtthread源码中
rt-thread/ bsp / stm32 / stm32f407-atk-explorer / board / CubeMX_Config / Src目录下有stm32f4xx_hal_msp.c
文件中有CubeMX针对SPI的初始化函数将其拷贝到drv_spi.c的文末。
技术图片
编译,下载到板子。结果如图
技术图片

步骤四:添加SPI从设备,也就是W25Q128设备

添加文件和代码
技术图片

技术图片

下载到开发板
技术图片

步骤五:将W25Q128抽象为块设备供rtt使用,后续挂载文件系统

技术图片

步骤六:挂载文件系统

技术图片

结果:

技术图片
















以上是关于RT-Thread中使用SPI操作FLASH(W25Q128),并在W25Q128上挂载文件系统的主要内容,如果未能解决你的问题,请参考以下文章

RT-Thread&ART-PI文件系统在SPI Flash上的使用

RT-Thread&ART-PI文件系统在SPI Flash上的使用

RT-Thread&ART-PI文件系统在SPI Flash上的使用

STM32F769I-disc片内flash对接fal框架(基于RT-thread)

H7-TOOL通过SWD接口脱机下载内部Flash+QSPI Flash+SPI Flash三合一操作说明,也支持1拖4

rt-thread下调试elmfat 问题记录