RT Thread RTOS文件系统应用与实践.pdfVIP

  • 0
  • 0
  • 约5.26千字
  • 约 6页
  • 2026-01-23 发布于北京
  • 举报

RTThreadRTOS应用之四——初识文件系统

实验描述:数据的保存,历来都是所有嵌入式系统需要解决的一个问题。传统

的解决方式是通过串口或者USB将数据实时传送到PC上进行保存。而对于很

多无法随时和PC通讯的应用,应该如何保存数据呢?主流的解决方法是将数

据写入到板载的flash或者SD卡中。为了方便的管理和修改flash以及SD卡上

的文件,需要在程序中建立文件系统,该系统类似于PC端的文件系统,用户

可以利用该系统方便的创建,以及修改设备上的文件。

本次试验旨在利用RTT自带的文件系统将文件保存在板载SD卡中,随后将写

入的文件读出。通过文件写入,的实验,是用户掌握基本的文件系统的适

用方法。

实验开始:

RTT的文件系统介绍结构如下图所示:

最顶层的是一套面向嵌入式系统专门优化过的虚拟文件系统(接口),通过它能

够适配下层不同的文件系统格式,例如个人电脑上常使用的FAT文件系统,或

者是嵌入式设备中常用的flash文件系统。接下来的是各种文件系统的实现,例

如支持FAT文件系统的DFS-ELM;支持NandFlash的YAFFS2将在0.4.x分支

中移植进这套虚拟文件系统框架中。最底层的是各类驱动,例如SD卡驱

动,IDE硬盘驱动等。0.4.x分支上将在NandFlash上构建一层转换层(FTL)以使

得NandFlash能够支持Flash文件系统。RT-Thread的文件系统对上层的接

口主要以POSIX接口为主,这样这部分代码也容易调试通过——《RT

Thread嵌入式编程指南》。

RTT文件系统移植:

首先向工程内添加文件系统的相关文件,由于我们使用SD卡因此需要使用

ELM文件系统。工程添加如图所示:

同时添加相应的头文件:

RTT系统对于外设采用虚拟设备的方式进行管理,这样的话好处是针对不同的

硬件配置,只需要更改底层的驱动接口就可以方便的移植。这些底层的设备接

口主要包括SD卡的读写和初始化部分。下面一一来进行介绍。

1.SD设备的硬件初始化:

SD卡设备硬件初始化在rt_hw_sdcard_init();这个函数中完成,函数原型位与工

程目录下的sdcard.c文件中。其中其中需要注意的是:

/*registersdcarddevice*/

sdcard_device.type=RT_Device_Class_Block;

sdcard_device.init=rt_sdcard_init;

sdcard_device.open=rt_sdcard_open;

sdcard_device.close=rt_sdcard_close;

sdcard_device.read=rt_sdcard_read;

sdcard_device.write=rt_sdcard_write;

sdcard_device.control=rt_sdcard_control;

上面这些语句中,赋值号右边的是用户需要自己编写的函数名称,这些函数就

是文件系统的底层接口,

文档评论(0)

1亿VIP精品文档

相关文档