保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

嵌入式系统中的Flash存储管理


  
  *掉电数据恢复,可以保证系统的稳定性;
  
  创建坏块表进行坏块管理,保证系统的可靠性。
  
  为了更好地介绍FMM的操作流程,这里先作几点说明。
  
  (1)存储空间管理
  
  为了实现以扇区为基础的数据管理,FMM首先对Flash中的块内存储空间逻辑上进行了重新定义,每个物理块内部又重新划分成了若干物理扇区。每个物理块内部又重新划分成了若干物理扇区。每个物理扇区由512+4字节=516(0x204)字节组成。512字节为有效数据空间,另外4字节(32位)用于存放逻辑扇区另和当前状态。定义如下:
  
  扇区状态逻辑扇区号数字空间4位28位125字节
  扇区状态有4种,用于进行掉电数据恢复:
  
  FREE—空扇区(0xF);
  
  DVALID—扇区数据无效(0xE);
  
  INUSE—扇区数据有效(0xC);
  
  DIRTY—扇区数据无用,可擦除(0x8)。
  
  以64K大小的块为例,可以计算出每个块中可以划分出127个扇区;另外,还会有4字节的空间,专门用于标志下一个被整理块。标记为0x80,否则为0xffffffff。
  
  因此可以得出物理扇区和绝对地址之间的对应关系:
  
  绝对地址=Flash基地址+物理扇区号×0x204+所在块号×4
  
  (2)扇区分类
  
  FMM中将扇区分为ID扇区和数据扇区两类:
  
  ①FMM会占用N个扇区作为标识ID(Identification)扇区,占用逻辑扇区号0~N。这一部分扇区是文件系统不能使用的,是FMM用于管理所占用的存储空间。因此文件系统所管理的逻辑扇区号必须从N+1开始。
  
  ID扇区主要包含如下数据:FMM版本号、写入(擦除)次数EraseCount、用户标识和坏扇区表。
  
  N的取值与坏扇区表的大小有关,每个FMM管理的物理扇区占用表中的1位。在每次存储数据时,可以通过查询表中的相应位来确定该扇区的有效性。
  
  ②数据扇区,用于存储数据。
  
  (3)空间映射表(MappingTable)
  
  由于Flash不能像普通磁盘那样进行字节的修改,甚至不能以扇区为单位进行修改;而只能以块为单位进行修改;但如果只是简单将物理扇区和逻辑扇区一一对应,那么如果我们想对扇区修改就必须将整个块的内容都擦除,然后再将修改后的内容回写;势必会造成时间和Flash寿命的损失。因此,建立一个物理扇区号和逻辑扇区号的空间映射表,使逻辑扇区与物理扇区号进行动态的匹配。这样,在修改某个扇区的内容时只要将数据写入一个新的扇区,然后将原扇区标记为DIRTY就可以了。这样,还可以消除频繁修改某个扇区带来的寿命不均的影响。
  
  映射表是建立在内存中的项数为M(扇区总数)的数组,每项占用4字节,用于存放对应的物理扇区号。当某项为空(NULL)时,认为该扇区空闲,未使用,如图2所示。
  
  4FMM模块操作
  
  按功能,可以将FMM分解为4个基本模块:格式化模块、初始化模块、存取模块和空间整理模块。以下简单扫描各模块的操作流程。
  
  (1)格式化模块
  
  对数据空间进行初级格

《嵌入式系统中的Flash存储管理(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/145686.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。