新闻中心

EEPW首页>嵌入式系统>设计应用> 基于ARM9和μC/OS-II的SD卡文件系统设计与实现

基于ARM9和μC/OS-II的SD卡文件系统设计与实现

作者: 时间:2012-08-09 来源:网络 收藏

2.2 文件系统设计
2.2.1 FAT32文件系统概述
Windows95 OSR2和Windows 98开始支持FAT32文件系统,它是对早期DOS的FAT文件系统的增强,由于文件系统的核心一文件分配表FAT扩充为32位,所以称为FAT32文件系统。FAT32包含DBR、保留扇区、FAT1、FAT2(第一个FAT的备份)、根目录、数据区5部分。DBR(Dos Boot Rec ord)是操作系统引导记录区;保留扇区是为了对DBR作备份或留待以后升级时用;文件分配表区共保存了两个相同的FAT表,文件所占用的存储空间(簇链)及空闲空间的管理都是通过FAT实现的;FAT32根目录区(ROOT区)不再是固定区域、固定大小,可看作是数据区的一部分;数据区用来存放真正要记录的文件数据,本系统定义的一簇为4K个字节。
2.2.2 文件系统初始化
文件系统初始主要是读取的DBR扇区(0扇区),并分析该扇区内容,从而获取每扇区字节数,每簇扇区数,FAT开始扇区号,根目录开始扇区号等关键信息,为文件的创建,读写等操作做准备,文件系统初始化函数代码如下:

e.JPG

2.2.3 文件创建
上创建文件或目录的过程就是在文件目录表FDT中申请登记项的过程,为此程序设计时定义了如下结构体:

f.JPG


g.JPG


在文件目录项FDT中申请登记项动作就是通过对上述结构体的操做来完成的,操作流程,也是文件创建流程如图3所示,当把插入卡插槽时,系统首先初始化SD卡,即读取SD卡的DBR扇区(0扇区)获取相关信息,接下来打开所要创建文件的路径,如果路径不存在,创建该路径,如果存在,搜寻FAT表,找空闲簇。再接下来把要创建的文件的相关信息(文件名,文件大小,创建时间,属性等)填入上述结构体,把该结构体写入文件目录项FDT,相应的扇区写入数据,最后更新FAT链表。文件创建实现函数为FAT32_Creat_File()。



评论


相关推荐

技术专区

关闭