0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RT-Thread在文件系统提出完整的方案:虚拟文件系统

RTThread物联网操作系统 来源:RTThread物联网操作系统 作者:RTThread物联网操作 2022-04-19 14:46 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

FAT 文件系统是微软 (Microsoft) 从 MS-DOS 时代开始使用的,因应储存装置容量和功能增加而数次改版,由于架构简单使得广泛的被各种操作系统支持。因此使用 FAT文件系统让储存装置在不同操作系统上具备良好的交换性。譬如 SD 记忆卡采用 FAT 文件系统,相机拍摄照片存入 SD 卡,SD 卡插到 Windows PC、Linux PC 或 Mac 都可以存取。所以微控制器接 SD 卡或快闪硬盘,除了对应的接口外,必须支持 FAT 文件系统才能正常存取。

RT-Thread 在文件系统提出完整的方案 – 虚拟文件系统 (DFS, Device FileSystem) , 提供 POSIX 的操作接口, 支持多种类型文件系统, 支持多种类型的储存设备. 架构图如下

06ac0056-bf94-11ec-9e50-dac502259ad0.png

(来源:RT-Thread 文文件中心 – 虚拟文件系统. https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/filesystem/filesystem)

从架构图可以了解 RT-Thread 整合 ELM FatFs

(http://elm-chan.org/fsw/ff/00index_e.html)

提供 FAT 兼容的文件系统功能。经过块设备 (Block Device) 存取 SD 卡或 SPI Flash。FatFs 针对资源少的小型微控制器而设计,支持长文件名、多国语系和大容量 exFAT 等等功能。有许多选项可以增减功能,进一步缩减程序代码大小。

这次仍以 NuMaker-IoT-M487 开发板为操作范例。这片开发板上有 Winbond W25Q32 SPIFlash 和 MicroSD 卡槽。关于开发板的介绍,请参考系列文章第一篇 “NuMaker-IoT-M487 的 RT-Thread 快速上手指南”。

06bdca0c-bf94-11ec-9e50-dac502259ad0.png

在 “NuMaker-IoT-M487 的 RT-Thread 快速上手指南” 文章里的基础范例已经包含文件系统相关的设定。开启 rtconfig.h,使用 SD 卡和 SPI Flash 已经定义。

06dfad98-bf94-11ec-9e50-dac502259ad0.jpg

接下来查看 SPI Flash 的部分。RT-Thread 提供 SFUD (SPI Flash Universal Driver) 做为 SPI Flash 的块设备。依照SFUD串上 SPI 底层的代码在boardlock_dev.c,只要定义 BOARD_USING_STORAGE_SPIFLASH 就会引入。

06eed0b6-bf94-11ec-9e50-dac502259ad0.jpg

board_dev.c 往下可以看到 SPI Flash 启始的代码,把这个 SPI Flash 取名为 flash0。

06fedac4-bf94-11ec-9e50-dac502259ad0.jpg

接下来透过RT-Thread DFS 把 SPIFlash 以 ELMFatFs 挂在 “/” 目录下。代码在 applicationsmnt.c

0710d990-bf94-11ec-9e50-dac502259ad0.jpg

07278078-bf94-11ec-9e50-dac502259ad0.jpg

请继续按照前篇文章的步骤编译,再把固件刻录到 NuMaker-IoT-M487 开发板。利用 RT-Thread 的console, 可以测试 SPI Flash, 暂时不用改写代码。当按下 NuMaker-IoT-M487 的Reset 键,终端机出现许多开机过程的讯息,其中查看 SPI Flash 的启始讯息,包含发现 Winbond SPI Flash,有 4M Bytes 容量。

073dc518-bf94-11ec-9e50-dac502259ad0.png

开发板上的 SPI Flash 必须先格式化成 FAT 文件系统才能正常的挂载。在终端机里出现msh />后,输入格式化命令。

0751d3f0-bf94-11ec-9e50-dac502259ad0.png

然后再按 Reset 键就可以看到挂载成功的讯息。

0765444e-bf94-11ec-9e50-dac502259ad0.png

接着可以下档案与目录的操作,包含 echo、df、mkdir、cd、rm、cat、mv、cp、ls 等等命令。

07747252-bf94-11ec-9e50-dac502259ad0.png

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    8255

    浏览量

    162492
  • RT-Thread
    +关注

    关注

    32

    文章

    1542

    浏览量

    44294

原文标题:NuMaker-IoT-M487 演示 FatFs 文件系统使用

文章出处:【微信号:RTThread,微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    明晚8点|睿擎文件系统实战:从开发到发布全流程解析

    文件操作到镜像发布,一次直播掌握完整开发流程!嵌入式系统开发中,文件系统是数据存储、配置管理和资源访问的核心基础。然而在实际开发中,
    的头像 发表于 11-11 11:53 384次阅读
    明晚8点|睿擎<b class='flag-5'>文件系统</b>实战:从开发到发布全流程解析

    【直播预告】下周三晚8点|睿擎文件系统实战:从开发到发布全流程解析

    文件操作到镜像发布,一次直播掌握完整开发流程!嵌入式系统开发中,文件系统是数据存储、配置管理和资源访问的核心基础。然而在实际开发中,
    的头像 发表于 11-06 18:05 1685次阅读
    【直播预告】下周三晚8点|睿擎<b class='flag-5'>文件系统</b>实战:从开发到发布全流程解析

    睿擎派文件系统指南:从开发到发布全流程实践 | 技术解析

    嵌入式系统开发中,文件系统扮演着至关重要的角色,它负责数据的持久化存储、配置文件管理和资源访问等核心功能。睿擎平台提供了一套完整
    的头像 发表于 11-05 18:13 7710次阅读
    睿擎派<b class='flag-5'>文件系统</b>指南:从开发到发布全流程实践 | 技术解析

    Linux三大主流文件系统解析

    还在为选择哪个文件系统而纠结?作为一名摸爬滚打多年的运维老鸟,我将用最接地气的方式,带你彻底搞懂 Linux 三大主流文件系统的奥秘。
    的头像 发表于 08-05 17:37 1048次阅读

    从驱动到应用:RT-Thread环境下的SDIO开发指南

    目录硬件介绍搭建开发环境配置SDIO驱动挂载文件系统文件读写测试演示视频源码工程总结本文主要讲述RT-Thread环境下的SDIO开发指南,基于MCXN947开发板。1硬件介绍本次测评的是SDIO
    的头像 发表于 06-28 09:02 2491次阅读
    从驱动到应用:<b class='flag-5'>RT-Thread</b>环境下的SDIO开发指南

    飞凌嵌入式ElfBoard ELF 1板卡-文件系统常用命令之磁盘管理与维护常用命令

    :当前系统在哪个设备的哪个分区,其中tmpfs为虚拟文件系统;Type:文件系统类型;Size:当前系统的大小。1K-blocks对应列的单位是1KB,可通过-h 或者-m 来改变单位
    发表于 06-24 11:26

    飞凌嵌入式ElfBoard ELF 1板卡-文件系统简介

    临时的设备,例如网络文件系统/proc一个虚拟文件系统,为内核提供向进程发送信息的机制。操作系统运行时,进程以及内核信息存放路径/sbin包含通常只应由超级用户使用的重要管理命令/sys设备驱动模型中
    发表于 06-19 17:22

    服务器数据恢复—ocfs2文件系统被格式化为Ext4文件系统的数据恢复案例

    服务器存储数据恢复环境&故障: 人为误操作将Ext4文件系统误装入一台服务器存储上的Ocfs2文件系统数据卷上,导致原Ocfs2文件系统被格式化为Ext4文件系统
    的头像 发表于 06-10 12:03 563次阅读
    服务器数据恢复—ocfs2<b class='flag-5'>文件系统</b>被格式化为Ext4<b class='flag-5'>文件系统</b>的数据恢复案例

    人形机器人敏捷开发新路径:RT-Thread以软件底座破解复杂系统难题 | 新闻速递

    机器人行业解决方案负责人郭占鑫发表《从异构通信到虚拟化技术:RT-Thread助力机器人敏捷、可持续开发》主题演讲,系统阐述了RT-Thread
    的头像 发表于 06-04 14:03 1037次阅读
    人形机器人敏捷开发新路径:<b class='flag-5'>RT-Thread</b>以软件底座破解复杂<b class='flag-5'>系统</b>难题 | 新闻速递

    Vsan数据恢复——Vsan分布式文件系统虚拟机不可用的数据恢复

    一台采用VsSAN分布式文件系统的存储设备由于未知原因关机重启。管理员发现上层的虚拟机不可用,存储内的数据丢失。
    的头像 发表于 05-15 17:42 426次阅读
    Vsan数据恢复——Vsan分布式<b class='flag-5'>文件系统</b>上<b class='flag-5'>虚拟</b>机不可用的数据恢复

    如何正确选择嵌入式文件系统

    Linux嵌入式系统中,文件系统和缓存机制常导致数据存储稳定性问题。本文通过案例分析原因,对比不同文件系统特性,为开发者提供优化建议,助力提升数据稳定性和系统可靠性。前言基于Linux
    的头像 发表于 03-17 11:35 868次阅读
    如何正确选择嵌入式<b class='flag-5'>文件系统</b>?

    stm32cubeprogrammer上烧录时,取消勾选根文件系统,烧录后发现sd卡上根文件系统的分区没有了,为什么?

    修改了linux内核后,我想只把bootfs烧录到sd卡上,而不擦除根文件系统的分区。 我stm32cubeprogrammer上烧录时,取消勾选根文件系统,烧录后发现sd卡上根
    发表于 03-07 06:38

    NFS网络文件系统深度解析

    NFS:Network File System 网络文件系统,基于内核的文件系统。Sun 公司开发,通过使用 NFS,用户和程序可以像访问本地文件一样访问远端系统上的
    的头像 发表于 03-01 14:15 1177次阅读

    防止根文件系统破坏,OverlayRootfs 让你的设备更安全

    多个文件系统层合并成一个单一的视图,Linux系统中广泛应用。使用OverlayRootfs的设备可以很轻松的实现:根文件系统写保护、恢复出厂设置功能。根
    的头像 发表于 01-08 16:33 2463次阅读
    防止根<b class='flag-5'>文件系统</b>破坏,OverlayRootfs 让你的设备更安全

    关于更新openharmony文件系统时遇到的问题

    用的固件,文件系统,内核是之前的,之前版本用起来没问题。但是 用下面三个的时候 固件可以正常烧录,也按照文档里面加载了环境变量,但是烧录内核和文件系统(都是U盘更新的)的时候出现了这样的问题
    发表于 12-30 11:55