本文是我同事@YZRDEG写的入门教程,写的比较仔细,欢迎大家转载阅读

传送门:https://blog.csdn.net/weixin_46158019/article/details/109350953

 

RT Thread 文件系统教程

 

RT Thred 文件系统教程-1 SPI Flash使用文件系统

link

这篇文章将讲解如何使用RT-Thread Studio 开发工具操作文件系统,大概分为3篇。

第一篇:SPI Flash使用文件系统

第二篇:SD卡使用文件系统

第三篇:SPI flash和SD卡同时使用文件系统

小技巧

(快捷键 alt+/ 自动补全API参数)

首先了解一下RT-Thread Studio,RT-Thread Studio是基于 eclipse 平台开发,界面设计和风格继承自 eclipse。

RT-Thread Studio 主要包括工程创建和管理,代码编辑,SDK管理,RT-Thread配置,构建配置,调试配置,程序下载和调试等功能,结合图形化配置系统以及软件包和组件资源,减少重复工作,提高开发效率。

1.社区版本永久免费

2.支持主流C/C++语言开发

3.强大的代码编辑和重构功能

4.SDK管理器支持在线下载更新 RT-Thread 最新源码包

5.简单易用的工程创建向导,快速验证原型

6.全新图形化配置系统,同时支持架构图和树形图配置

7.软件包市场提供丰富的可用软件包资源

8.丰富的调试功能,快速查看和跟踪定位代码问题

RT-Thread Studio下载地址 https://www.rt-thread.org/page/studio.html

硬件平台:正点原子STM32F407开发板

外设使用W25Q128,其原理图如下:RT Thread Studio IDE使用RT Thread的文件系统(转)
RT Thread Studio IDE使用RT Thread的文件系统(转)W25Q128使用的引脚有F_CS(PB14)、SPI1_SCK(PB3)、SPI1_MISO(PB4)、SPI1_MOSI(PB5)。

打开RT-Thread Studio软件,新建工程

RT Thread Studio IDE使用RT Thread的文件系统(转)

修改芯片时钟配置函数void system_clock_config(int target_freq_mhz),修改如下
RT Thread Studio IDE使用RT Thread的文件系统(转)

修改board.h中的晶振时钟定义
RT Thread Studio IDE使用RT Thread的文件系统(转)
修改stm32f4xx_hal_conf.h文件中的外部晶振
RT Thread Studio IDE使用RT Thread的文件系统(转)

至此时钟修改完毕,使用外部晶振时钟8Mhz,系统时钟为168Mhz,APB1外设之中42Mhz,APB2外设之中84Mhz。

RT-Thread中DFS(虚拟文件系统)组件,全称为 Device File System,即设备虚拟文件系统,文件系统的名称使用类似 UNIX 文件、文件夹的风格,目录结构如下图所示:
RT Thread Studio IDE使用RT Thread的文件系统(转)在 RT-Thread DFS 中,文件系统有统一的根目录,使用 /来表示。而在根目录下的 f1.bin 文件则使用 /f1.bin 来表示,2018 目录下的 f1.bin 目录则使用 /data/2018/f1.bin来表示。即目录的分割符号是 /,这与 UNIX/Linux 完全相同,与 Windows 则不相同(Windows 操作系统上使用 \ 来作为目录的分割符)。

RT-Thread DFS 组件的主要功能特点有:

为应用程序提供统一的 POSIX 文件和目录操作接口:read、write、poll/select 等。

支持多种类型的文件系统,如 FatFS、RomFS、DevFS 等,并提供普通文件、设备文件、网络文件描述符的管理。

支持多种类型的存储设备,如 SD Card、SPI Flash、Nand Flash 等。

DFS 的层次架构如下图所示,主要分为 POSIX 接口层、虚拟文件系统层和设备抽象层。
RT Thread Studio IDE使用RT Thread的文件系统(转) 文件系统的初始化过程一般分为以下几个步骤:
1.初始化 DFS 组件。
2.初始化具体类型的文件系统。
3.在存储器上创建块设备。
4.格式化块设备。
5.挂载块设备到 DFS 目录中。
6.当文件系统不再使用,可以将它卸载。
根据官方文档我们配置RT-Thread Studio的settings,如下图
RT Thread Studio IDE使用RT Thread的文件系统(转)在setting中打开以下组件和驱动框架
RT Thread Studio IDE使用RT Thread的文件系统(转)右键Fatfs,选择详细配置,设置如下
RT Thread Studio IDE使用RT Thread的文件系统(转)保存配置,系统自动下载更新对应的组件包,如下
RT Thread Studio IDE使用RT Thread的文件系统(转)

W25Q128底层编写

根据文档完成以下几步配置,STEP1上面以配置完成
RT Thread Studio IDE使用RT Thread的文件系统(转)配置STEP3和STEP4
RT Thread Studio IDE使用RT Thread的文件系统(转)
RT Thread Studio IDE使用RT Thread的文件系统(转)

编译查看结果
RT Thread Studio IDE使用RT Thread的文件系统(转)
spi1总线设备已注册。

在spi1总线上挂载W25Q128块设备。

程序编写如下
RT Thread Studio IDE使用RT Thread的文件系统(转)
RT Thread Studio IDE使用RT Thread的文件系统(转)
编译下载,查看信息
RT Thread Studio IDE使用RT Thread的文件系统(转)W25Q128注册成功块设备。

挂载文件系统到根目录,代码如下

RT Thread Studio IDE使用RT Thread的文件系统(转)编译下载,查看信息
RT Thread Studio IDE使用RT Thread的文件系统(转)
文件系统挂载成功后就可以进行文件和目录的操作了,文件系统操作常用的 FinSH 命令如下表所示:

FinSH 命令 描述
ls 显示文件和目录的信息
cd 进入指定目录
cp 复制文件
rm 删除文件或目录
mv 将文件移动位置或改名
echo 将指定内容写入指定文件,当文件存在时,就写入该文件,当文件不存在时就新创建一个文件并写入
cat 展示文件的内容
pwd 打印出当前目录地址
mkdir 创建文件夹
mkfs 格式化文件系统

测试如下

RT Thread Studio IDE使用RT Thread的文件系统(转)
欢迎大家关注他的微信公众号

RT Thread Studio IDE使用RT Thread的文件系统(转)

 

相关文章: