新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > ARM7系统中CF卡存储的文件系统设计实现

ARM7系统中CF卡存储的文件系统设计实现

作者:时间:2013-11-09来源:网络收藏

为了达到这些目的,我们针对不同CPU的不同处理方法,对硬件操作程序进行分离,将设备有关的底层程序变成与设备无关的上层操作。这样,当系统新增功能之后,不必更改每个子程序,只需要在某些接口文件的数据结构中添加或者更改数据项即可;又考虑到用户对上层操作的透明性,我们采用面向对象的方法,上层结构中存取操作的Driver结构(含Read、Write数据项)是虚拟的,在底层才将它具体化为的读写扇区命令(操作码为:20h、30h)。

软件程序的主要流程如图3所示。

2 系统设计实现

根据上述原理,可完成软件设计,其基本框架如图4所示,分为六个主要部分。

其中,驱动程序设计的关键是的存取操作函数所采用的命令码有些不同。另外,我们使用驱动程序对象来代表CF卡设备驱动程序。该驱动程序对象对于用户是部分不透明的,数据项包括读写函数的指针,这些函数由文件系统程序输出(包括两部分函数,用户可见API函数调用和用户不见驱动存取函数)。此对象的数据结构声明如下:

Typedef Struct CF_XFILE_DRIVER{

BYTE Driver_name; /*介质标示;CF卡、IDE硬盘、Flash卡、RAMDISK等,删除驱动的话,需要重新记录DRIVER号*/

…… /*IRP处理函数*/

}CF_XFILE_DRIVER;

如果有多个CF卡,需要用另外一个特定的数据结构Next_Driver来把它们水平连接在一起。然后,用链表来管理这些数据结构,管理方式类似于WDM(Windows Driver Model)。

3 测试分析

经过调试运行,该文件系统性能良好。与我们之前已经移植过的Nucleus、ΜC/OS- II、UNIX的操作系统的文件系统相比,本文介绍的文件系统可移植性更强;除了文中着重介绍的CF卡,经过对底层驱动的简单修改就可以应用于其它存储介质如RAMdisk、IDE硬盘、Flash等(其中IDE硬盘和Flash也已经调试成功)。另外,本文介绍的文件系统对硬件平台的配置要求降低,并且对于文件操作的运行速度并未减慢。


上一页 1 2 下一页

关键词: ARM CF卡 微控制器

评论


相关推荐

技术专区

关闭