引言
在便携电子设备中,随着系统复杂性的增加,存储容量的扩大,嵌入文件系统成为一种必然趋势。而Flash存储器由于具有存储容量大、掉电数据不丢失、何种小以及可多次擦写等许多优点,正逐步取代其他半导体存储器件而广泛应用于便携电子产品中。在Flash存储器中使用文件系统,可将存储空间当作直观的名称空间,不用在每次应用开发中都从头使用存储器,还可方便地利用标准接口同主系统通信。
本文中,我们将以嵌入式操作系统WINCE为背景,来讨论嵌入式手持移动终端中文件系统的实现。
WINCE文件系统结构
WINCE文件系统采用了模块化设计,允许自定义文件系统、筛选器和多种不同的块设备类型。文件系统和所有与文件相关的API都是通过FileSys.exe进程来管理的。
FileSys.exe 由下列几个组件组成:
·ROM文件系统
·存储管理器
·对象存储
ROM文件系统是基于ROM的文件系统。用来固化系统信息。
存储管理器 (Storage Manager),负责管理系统中的存储设备,以及用于访问它们的文件系统。存储管理器功能由系统中的fsdmgr.dll模块实现。其主要的组成部分为块设备驱动程序管理器、分区管理器、文件系统驱动程序管理器。存储管理器组件之间的关系如图1所示。
图1 存储管理器组件之间的关系
对象存储是一个内存堆,由FileSys.exe控制。对象存储包含RAM系统注册表、RAM文件系统和属性数据库。它们都是FileSys.exe模块的可选组件。RAM文件系统和属性数据库是完全可选的,并且在某些系统中可以根本不存在。
FileSys.exe各组件之间的关系如图2所示。
图2 FileSys.exe各组件之间的关系图
操作系统启动时,NK.exe将直接从ROM文件系统加载FileSys.exe。然后,FileSys.exe对ROM文件系统内的默认注册表进行初始化。接着,FileSys.exe将读取注册表项,以便启动各种应用程序。
我们在WINCE文件结构的基础上构建自文件系统。
构建基于PXA272存储器的嵌入式文件系统
嵌入式手持设备硬件结构如图3所示。其主要由嵌入式微控制器PXA272,采集单元,显示单元,存储单元,通信模块和电源单元构成。
图3 手持设备终端硬件结构框图
Intel PXA272处理器是Intel公司推出的32位,基于Xscale架构的高性能的嵌入式芯片。其工作频率为512MHZ,内部集成64Mb NOR Flash。我们在NOR Flash上基于WINCE的文件结构来构建我们自己的文件系统。
先将Flash划分位三部分,第一部分存放EBOOT和512K配置文件,第二部分存放32M的NK.BIN,最后一部分划为32M的文件系统,其具体划分如图4所示。
图4 Flash的划分
PSM(Peristent Storage Manage)是Inter公司独有技术,是专门为WEINCE系统定制的,它为各种Flash存储设备提供了统一的设备接口,支持Inter的CPU架构。我们利用PSM作为存储管理器,用微软提供的Flash驱动构建文件系统,支持FAT格式的文件。其系统结构图如图5所示。
图5 系统文件结构图
最后,文件系统的配置文件是一组注册表值,用于定义有关块设备和应当如何在系统中使用它的信息。配置文件位于注册表HKEY_LOCAL_MACHINE \System\StorageManager\Profiles下,每个配置文件都是位于基本配置文件项的下面,以此配置文件名称标识的项。例如,我们利用了Inter的PSM文件系统,其配置文件位于注册表HKEY_LOCAL _MACHINE\System\StorageManager \Profiles\PSMFSD下。Flash驱动的配置文件位于注册表HKEY_LOCAL_ MACHINE\Drivers\BuiltIn\StrataFMD下,在此文件系统中,我们使用了微软自带的Flash驱动。
结语
此文件系统已经在手持移动终端上得到应用,和上层的数据库系统实现对接。经过多次测试,此文件系统稳定可靠,效果良好。可以用来存储大量数据而且又能满足不同需求。相对于TrueFFS文件系统,在可靠性、系统资源开销等方面的性能提高是可观的,特别是和Inter的Flash相结合时。 |