FATFS文件系统剖析(全).doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
FATFS文件系统剖析(全)概要1

FATFS文件系统剖析1: FAT16: 数据按照其不同的特点和作用大致可分为5部分:MBR区、DBR区、FAT区、DIR区和DATA区,相比fat12多了DBR区 ????Main boot record: MBR(0--1bdh)??????? 磁盘参数存放 ???????????????????????????????? DPT(1beh--1fdh)?? 磁盘分区表 ???????????????????????????????? 55,aa???????????????????? 分区结束标志 ?? ?DBR(Dos Boot Record)是操作系统引导记录区的意思 ??? FAT区(有两个,一个备份):对于fat16,每一个fat项16位,所以可寻址的簇项数为65535(2的16次方)。而其每簇大小不超?过32k,所以其每个分区最大容量为2G。fat32,每一个fat项32位,可寻址簇数目为2的32次方。 ??? DIR区(根目录区):紧接着第二FAT表(即备份的FAT表)之后,记录着根目录下每个文件(目录)的起始单元,文件的属性等。定位文件位置时,操作系统根据DIR中的起始单元,结合FAT表就可以知道文件在硬盘中的具体位置和大小了。 ??? DATA区:实际文件内容存放区。 FAT32: ??? 暂时放在这里,不讨论! Fatfs:嵌入式fat文件系统,支持fat16,fat32。 ?????? 包含有ff.h,diskio.h,integer.h,ffconf.h 四个头文件以及ff.c 文件系统实现。当然要实现具体的应用移植,自己要根据diskio.h实现其diskio。c 底层驱动。 ?????????? diskio.h :??底层驱动头文件 ?????????? ff.h??????? :? 文件系统实现头文件,定义有文件系统所需的数据结构 ?????????? ff.c????????: ? 文件系统的具体实现 如下开始逐个文件加以分析: integer.h :仅实现数据类型重定义,增加系统的可移植性。 ffconf.h :? 文件系统配置逐个配置,先配置实现一个最小的fat文件系统,下面来分析各配置选项: ?????????????? #define _FFCONF 8255??????//版本号?? ?????????????? #define?_FS_TINY????????? ? 0????????/* 0:Normal or 1:Tiny */???//在这里与先前版本有些许变化,是通过配置头配置两种不同大小的文件系统 ,这里配置为 0。 ??????????????#define _FS_READONLY???1?? //定义文件系统只读,也就不能写修改,在此定义为 1,这样文件系统会大大缩小,简化学习理解过程。 ????????????? #define _FS_MINIMIZE?????3?/* 0 to 3 */?? 这个选项是用于过滤掉一些文件系统功能,为0时是全功能,3是功能实现最小 ????????????? #define?_USE_STRFUNC?? 0?/* 0:Disable or 1/2:Enable */? 是否使用字符串文件接口,为0,不使用 ????????????? #define?_USE_MKFS?????????0 /* 0:Disable or 1:Enable */?? 制作文件系统,这个功能实现是还要_FS_READONLY=0 ??????????????#define?_USE_FORWARD? 0??/* 0:Disable or 1:Enable */??f_forward function??实现还需_FS_TINY?=1?????????????????? ??????????????#define?_USE_FASTSEEK? 0???/* 0:Disable or 1:Enable */??快速查找功能??????????????? ?????????????#define _CODE_PAGE?????? 936???//?? 936? - Simplified Chinese GBK (DBCS, OEM, Windows) ???? ????????????? #define?_USE_LFN???? 0??????? /* 0 to 3 */??? 0:不使用长文件名 ????????????? #define?_MAX_LFN??? ?255??? /* Maximum LFN length to handle (12 to 255) */ ???????????? ?#define?_LFN_UNICODE?? 0

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档