16777|4

252

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

【RT-Thread读书笔记】虚拟文件系统 [复制链接]

本帖最后由 jj1989 于 2019-4-27 18:47 编辑

【RT-Thread读书笔记】虚拟文件系统

前言

很早就开始关注RT-Thread嵌入式实时操作系统,最近也将其应用到了项目当中。从实际使用来看,实时性及稳定性都不错,使用也比较方便。官方提供了大量例程和中文资料,方便大家进行学习。如果你想学习一款嵌入式操作系统,强烈推荐RT-Thread。

对操作系统的看法

在平时的项目中,很多朋友喜欢裸机编程,即不上操作系统,我这里称其为裸奔。之所以这样选择,一是代码逻辑不复杂,系统较简单,裸奔即可轻松搞定。二是相对于操作系统,其代码更加精简,执行效率更高。三是担心系统可靠性,并且裸奔即使出了问题也好查找和解决。

话说之前我也有过类似的一些想法。但是随着项目系统的复杂度越来越高。在既要实现业务逻辑,又要保证实时性的情况下,基于裸机编程就显得有点力不从心了。于是开始寻找一款实时操作系统。一开始接触的是用户量较大的FreeRTOS,而后又遇到了RT-Thread,两者各有千秋。之所以选择后者,一是其与linux相同的编码风格,二是官方提供了大量的组件,如本文接下来将介绍的虚拟文件系统。使用起来非常方便,对开发者来说不能太友好了。

DFS介绍

关于Device File System-设备虚拟文件系统的介绍,书中已经介绍得很详细了。这里我简单对书中的内容做一下概括。

DFS的结构如下图

主要分为POSIX接口层,虚拟文件系统层和设备抽象层。从图中可以看出,DFS是对各具体文件系统的抽象。用户在使用DFS的时候,不用关心不同文件系统类型之间的差异。

DFS使用

在RT-Thread中使用文件系统,需要经历如下几个步骤。 首先是调用dfs_init()函数进行DFS的初始化,并使用dfs_register()函数将刚刚初始化的文件系统注册到DFS中。然后将存储设备,如SPI Flash注册为块设备,以便后续进行挂载。之后是调用dfs_mkfs()进行文件系统的格式化。最后是调用dfs_mount()挂载文件系统。 文件系统的操作中,主要涉及到文件操作和目录操作。

文件操作主要涉及如下一些操作:

  • 打开和关闭文件
  • 读写数据
  • 重命名
  • 获取文件状态
  • 删除文件
  • 同步文件数据到存储设备
  • 查询文件系统相关信息
  • 监视I/O设备状态

目录操作主要涉及如下一些操作:

  • 创建和删除目录
  • 打开和关闭目录
  • 读取目录
  • 获取目录流的读取位置
  • 设置下一次读取目录的位置
  • 重设读取目录的位置为开头位置

具体各个操作方法的详细描述,请看官方的RT-Thread API参考手册

总结

本文首先聊了一下为何由裸奔转入使用操作系统,然后选择《嵌入式实时操作系统RT-Thread设计与实现》一书中的第15章-虚拟文件系统,对其内容做了一下简单的概括。文中如有不妥之处,欢迎指正。

此内容由EEWORLD论坛网友jj1989原创,如需转载或用于商业用途需征得作者同意并注明出处

最新回复

因为用到文件系统的,就得考虑坏块管理问题,这个问题处理不好,产品一踏湖涂。不知RT-Thread有没有FLASH的坏块管理  详情 回复 发表于 2019-4-28 10:03

赞赏

1

查看全部赞赏

点赞 关注(1)

回复
举报

252

帖子

0

TA的资源

一粒金砂(高级)

沙发
 
@okhxyyo 这个bug始终没解决呢。
 
 

回复

1万

帖子

16

TA的资源

版主

板凳
 
能用得上文件管理的,都是不一般的高手

点评

哈哈,何以见得?RT-Thread的组件做得很不错,用起来简单,没想象的那么复杂。  详情 回复 发表于 2019-4-28 08:57
 
个人签名http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
 
 

回复

252

帖子

0

TA的资源

一粒金砂(高级)

4
 
ddllxxrr 发表于 2019-4-28 08:50
能用得上文件管理的,都是不一般的高手

哈哈,何以见得?RT-Thread的组件做得很不错,用起来简单,没想象的那么复杂。

点评

因为用到文件系统的,就得考虑坏块管理问题,这个问题处理不好,产品一踏湖涂。不知RT-Thread有没有FLASH的坏块管理  详情 回复 发表于 2019-4-28 10:03
 
 
 

回复

1万

帖子

16

TA的资源

版主

5
 
jj1989 发表于 2019-4-28 08:57
哈哈,何以见得?RT-Thread的组件做得很不错,用起来简单,没想象的那么复杂。

因为用到文件系统的,就得考虑坏块管理问题,这个问题处理不好,产品一踏湖涂。不知RT-Thread有没有FLASH的坏块管理
 
个人签名http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表