RT-Thread ART-PI 学习笔记:文件系统的使用和配置

前言

文件管理功能是操作系统的重要组成。现代嵌入式设备需要对越来越多,越来越复杂的存储数据进行管理,于是嵌入式操作系统中1引入了文件系统来进行管理。

文件系统是一套实现了数据的存储、分级组织、访问和获取等操作的抽象数据类型 (Abstract data type),是一种用于向用户提供底层数据访问的机制。文件系统通常存储的基本单位是文件,即数据是按照一个个文件的方式进行组织。当文件比较多时,将导致文件繁多,不易分类、重名的问题。而文件夹作为一个容纳多个文件的容器而存在。

参考资料

RT-Thread 官方虚拟文件系统文档
相关博客
相关博客

DFS架构

DFS 是 RT-Thread 提供的虚拟文件系统组件,全称为 Device File System,即设备虚拟文件系统,该文件系统使用起来的特性非常类似LINUX/UNIX的文件系统。

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

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

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

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

DFS 的层次架构如下图所示,主要分为 POSIX 接口层、虚拟文件系统层和设备抽象层。
在这里插入图片描述

根据存储设备的不同,我们需要在DFS虚拟文件系统的根目录下挂载不同的文件系统,下面对几种文件系统进行介绍:

  • FatFS 是专为小型嵌入式设备开发的一个兼容微软 FAT 格式的文件系统,采用 ANSI C 编写,具有良好的硬件无关性以及可移植性,是 RT-Thread 中最常用的文件系统类型。在本文中主要用于挂载板子上的SD卡
  • LittleFs是ARM官方推出的,小巧灵活的文件系统。具有掉电恢复,擦写均衡和占用RAM/ROM较少的特点。。在本文中主要用于挂载板子上的W25Q128JV这个16M的SPI NOR FLASH

关于虚拟文件系统更多内容见官方文档,下文中的配置也是根据官方文档来做的。

ART-Pi 除了配备一颗 W25Q64JV 用于存放程序外,同时配备了另一颗 W25Q128JV 用于存放 WIFI 固件,蓝牙固件,等其它数据.官方建议这颗 W25Q128JV 的空间划分如下:

分区名起始地址分区大小用途说明
wifi_image0512KB保存 wifi 固件
bt_image512 * 1024512KB保存 bt 固件
download1 * 1024 * 10242048KB固件下载分区
easyflash3 * 1024 * 10241024KBeasyflash 参数保存区
filesystem4 * 1024 * 102412MB文件系统分区

本文主要使用和配置FatFS和LittleFs两种文件系统,分别用来挂载SD卡和NOR FLASH两种设备。两种文件系统均挂载在DFS构成的根文件系统上。

前期准备

软件准备

  • RT-Thread Studio:一站式的 RT-Thread 开发工具,通过简单易用的图形化配置系统以及丰富的软件包和组件资源,让物联网开发变得简单和高效。官网链接

硬件准备

  • RT-Thread 推出的ART-PI STM32H750开发板
  • FATFS格式的任意大小SD卡一张,其他如NTFS格式的SD卡不适用于下文的配置,可通过SD卡格式化解决

配置步骤

新建工程

基于开发板建立模板工程
在这里插入图片描述

打开SD Card 和 NOR FLASH 的fliesystem

在这里插入图片描述

配置虚拟文件系统

注意设置要处理的最大扇区大小,根据官方文档改成512.
在这里插入图片描述

在这里插入图片描述看下面一张图可以发现,**fal这个flash抽象层的软件包也被打开了,FAL实际上就是下图SPI FLASH的块设备抽象层,**通过终端打印出来的信息可以知道,FAL有五个分区,其中最后一个分区filesystem通过littlefs挂载在文件系统里,而SD卡通过elm-FATFS挂载在文件系统里,他的块设备抽象层用的是FATFS里自带的抽象层,littlefs在图中没有,但其实littlefs是和FATFS同级的
在这里插入图片描述
在这里插入图片描述

打开LittleFs软件包

在这里插入图片描述

打开MTD NOR FLASH设备驱动程序

该设备驱动程序默认会被打开
在这里插入图片描述

查看文件系统初始化代码

在filesystem.c文件中,IDE已经帮我们编写好文件系统初始化和挂载代码,SD卡挂载到FATFS上,NOR FLASH挂载到LittleFS上,十分方便。
在这里插入图片描述

编译下载

通过终端查看,可以看到文件系统已经挂载成功。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值