新闻中心

EEPW首页>嵌入式系统>设计应用> MMC卡文件系统的实现

MMC卡文件系统的实现

作者: 时间:2010-12-12 来源:网络 收藏


3

单片机对底层的读写,按照FATl6的格式对卡上数据进行操作,就可在MMC卡上创建、读写和删除文件等,从而文件的管理。

3.1 文件(或目录)的创建

在MMC卡上创建文件(或目录)的过程就是在文件目录表FDT中申请登记项的过程。登记项中包括文件名、文件长度和起始簇号等内容。为此定义了如下结构:

本文引用地址://m.amcfsurvey.com/article/151231.htm


文件名一般占用8字节,长的文件名需要用resetx,ed[]数组。文件名的首字节又表明该文件的状态,00H表示该目录项未使用,E5H表示该文件(或目录)已被删除。创建目录时,属性值设置为10H(表示子目录),文件长度为O。
3.2 文件的读写

MMC卡上文件都是以簇为单位存取的。当读取MMC卡上的文件时,首先要根据文件名查找到该文件的目录登记项。根据目录登记项中的起始簇号既可找到文件在数据区DATA中第1簇的内容,又可在FAT表中找到第2个簇号。根据第2个簇号又能找到第2簇的内容和FAT表中的第3个簇号。这样,就可以根据FAT表中的簇号读取到全部文件数据。写文件时要保证FATl和FAT2中内容的一致性,即对两块都要进行同样的写操作。对于FATl6,可以由下面的公式计算出数据起始逻辑扇区号:

起始逻辑扇区一隐藏扇区数+l+2*每FAT扇区数+FDT扇区数+(起始簇号-2)*每簇扇区数从表l可知,MMC卡上隐藏的扇区数为0,每个FAT占用243个扇区,FDT固定占用32个扇区。写文件的相关代码如下(设文件长度小于512字节):


3.3 文件的删除

文件的删除也是对MMC卡上文件管理的一个重要方面。删除文件时,并不涉及数据区的操作,只须在文件的目录登记项上作一个删除标记,并把文件在FAT表中所占用的簇标记为“空簇”。删除文件的代码如下:

1.jpg



关键词:实现系统文件MMC

评论


相关推荐

技术专区

关闭