位置:51电子网 » 技术资料 » 接口电路

基于NOR FLASH存储器的嵌入式文件系统的设计

发布时间:2008/5/28 0:00:00 访问次数:417

今日电子

引言

  在便携电子设备中,随着系统复杂性的增加,存储容量的扩大,嵌入文件系统成为一种必然趋势。而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相结合时。

  (郭克敏)

相关IC型号
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!