2 系统设计实现
根据上述原理,可完成软件设计,其基本框架如图4所示,分为六个主要部分。
其中,CF卡驱动程序设计的关键是CF卡的存取操作函数所采用的命令码有些不同。另外,我们使用驱动程序对象来代表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也已经调试成功)。另外,本文介绍的文件系统对硬件平台的配置要求降低,并且对于文件操作的运行速度并未减慢。
--
原文链接: http://www.ednchina.com/Article/html/2006-06/2006615122502.htm
|