RT Thread 文件系统教程(转自YZRDEG)

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,其原理图如下:在这里插入图片描述
在这里插入图片描述W25Q128使用的引脚有F_CS(PB14)、SPI1_SCK(PB3)、SPI1_MISO(PB4)、SPI1_MOSI(PB5)。

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

在这里插入图片描述

修改芯片时钟配置函数void system_clock_config(int target_freq_mhz),修改如下
在这里插入图片描述

修改board.h中的晶振时钟定义
在这里插入图片描述
修改stm32f4xx_hal_conf.h文件中的外部晶振
在这里插入图片描述

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

RT-Thread中DFS(虚拟文件系统)组件,全称为 Device File System,即设备虚拟文件系统,文件系统的名称使用类似 UNIX 文件、文件夹的风格,目录结构如下图所示:
在这里插入图片描述在 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 接口层、虚拟文件系统层和设备抽象层。
在这里插入图片描述 文件系统的初始化过程一般分为以下几个步骤:
1.初始化 DFS 组件。
2.初始化具体类型的文件系统。
3.在存储器上创建块设备。
4.格式化块设备。
5.挂载块设备到 DFS 目录中。
6.当文件系统不再使用,可以将它卸载。
根据官方文档我们配置RT-Thread Studio的settings,如下图
在这里插入图片描述在setting中打开以下组件和驱动框架
在这里插入图片描述右键Fatfs,选择详细配置,设置如下
在这里插入图片描述保存配置,系统自动下载更新对应的组件包,如下
在这里插入图片描述

W25Q128底层编写

根据文档完成以下几步配置,STEP1上面以配置完成
在这里插入图片描述配置STEP3和STEP4
在这里插入图片描述
在这里插入图片描述

编译查看结果
在这里插入图片描述
spi1总线设备已注册。

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

程序编写如下
在这里插入图片描述
在这里插入图片描述
编译下载,查看信息
在这里插入图片描述W25Q128注册成功块设备。

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

在这里插入图片描述编译下载,查看信息
在这里插入图片描述
文件系统挂载成功后就可以进行文件和目录的操作了,文件系统操作常用的 FinSH 命令如下表所示:

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

测试如下

在这里插入图片描述
欢迎大家关注我的微信公众号
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值