赞
踩
这篇文章将讲解如何使用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)。
修改芯片时钟配置函数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,选择详细配置,设置如下
保存配置,系统自动下载更新对应的组件包,如下
根据文档完成以下几步配置,STEP1上面以配置完成
配置STEP3和STEP4
编译查看结果
spi1总线设备已注册。
程序编写如下
编译下载,查看信息
W25Q128注册成功块设备。
编译下载,查看信息
文件系统挂载成功后就可以进行文件和目录的操作了,文件系统操作常用的 FinSH 命令如下表所示:
FinSH 命令 | 描述 |
---|---|
ls | 显示文件和目录的信息 |
cd | 进入指定目录 |
cp | 复制文件 |
rm | 删除文件或目录 |
mv | 将文件移动位置或改名 |
echo | 将指定内容写入指定文件,当文件存在时,就写入该文件,当文件不存在时就新创建一个文件并写入 |
cat | 展示文件的内容 |
pwd | 打印出当前目录地址 |
mkdir | 创建文件夹 |
mkfs | 格式化文件系统 |
欢迎大家关注我的微信公众号
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。