基于FLASH存储器的嵌入式文件系统的设计与实现
在嵌入式手持移动终端中,应用程序需要存储和检索大量的用户信息,这些信息在应用程序退出时应该被记录保存下来,同时这些信息要能被多个应用程序并发使用,比如电话本中的数据要能够被电话,短消息,名片等多个应用程序共享。为达到以上要求,就引出了文件的概念,把这些用户信息以文件的形式存储在外部介质上,独立于任何应用程序。
目前通用计算机上已经有很多成熟的文件系统,如DOS下的FAT文件系统、Windows NT下的NT-FS文件系统及UNIX文件系统等。但是同一般的PC使用磁盘,光盘,磁带机等存储设备不同,嵌入式手持移动终端一般只配有极少的ROM,RAM(主存)和FLASH(辅存),因此这些通用文件系统并不适合直接应用到嵌入式系统中:第一,嵌入式系统电源电压的不稳定以及突发性断电将对FLASH的存储造成灾难性的影响,通用文件系统在这一点考虑不足;第二,通用文件系统大量使用缓存技术来提高文件系统的速度特性,通常耗费比较多的系统资源。这些都与嵌入式系统中系统资源有限,FLASH存储器又相对于磁盘驱动器较快的应用情况不同。
FLASH存储器的存储特性同一般存储介质也不同,它的读操作与普通的SRAM存储器类似,可以实现完全随机的字节读取,但是它的写操作较为特殊,需要经过“擦除—写入”两个操作过程。当对FLASH存储器的某一个单元进行写操作的时候,首先必须对这个存储单元所在的AREA(我们这里使用的FLASH一次擦除AREA的大小是64 kb)执行擦除操作,擦除操作成功完成后,整个AREA的数据内容都被清空(一般被设置成0xFF);然后执行写入操作,一次性的写入数据。当需要对文件进行数据的修改,追加,删除时,都需要重复以上的两个过程。此外,FLASH存储器数据传输中的时间瓶颈不在于读操作,而在于内部的擦写操作上。因此基于FLASH的嵌入式文件系统除了要提供数据管理(数据的读取,修改,存储,删除等)之外,还要最大限度的保证文件的数据有效性,同时针对FLASH的特性提供I/O的支持,从系统角度根据数据吞吐量,从用户角度根据响应时间,优化性能,减少或消除丢失、破坏数据的可能性,提供标准的接口供应用程序调用。
下面我们就嵌入式操作系统ASIXOS中的文件系统来谈一谈嵌入式手持移动终端中文件系统的实现。
1 ASIXOS中文件系统的结构
ASIXOS中的文件系统划分为六个较为独立的功能模块,各个模块之间的具体关系如图1所示。图中自顶向下显示了模块之间的调用关系。
用户文件接口模块将整个文件系统封装成为类似ANSIC的接口函数,提供了对创建文件,打开文件,关闭文件,删除文件,创建目录,打开目录(查看目录中的文件和下一级子目录)、删除目录,读文件,写文件,文件读写指针偏移的支持。
相关文章
- 2023-04-08基于CAPP的CAD/CAM集成式新型数控加工模式的构想
- 2023-10-21基于Pro/E3D模型的圆柱凸轮廓面三坐标测量
- 2023-12-15风机-液力偶合器模糊-PID调速控制系统研究
- 2023-12-04垂直管内TFE/NMP降膜吸收过程中热质传递试验研究
- 2023-07-24基于DR系统的CT功能
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。