- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
FATFS文件系统剖析2
FATFS文件系统剖析2:
分析下ff.h和ff.c两个文件。
先来分析ff.h中定义的几个结构体:
typedef struct {?BYTE?fs_type;?? //? 系统类型,为0时系统没有被挂载
?BYTE?drv;????????? //? 物理磁盘驱动号
?BYTE?csize;?????? //? 每簇的扇区数目,? 簇是文件数据分配的基本单位???
?BYTE?n_fats;???? //? 文件分配表的数目,一般为两个(一个备份fat表)?????
???????? ?//Fatfs文件系统应该是:引导扇区,文件分配表2个,根目录区,和数据区??????BYTE?wflag;????? //? 文件活动窗体是否改动标志,为1要回写?
?BYTE?fsi_flag;?? //? 文件信息回写标志?
?WORD?id;???????? //? 文件系统加载id号?
?WORD?n_rootdir;??? ?// 根目录区目录项数目(针对FAT12/16,FAT32不使用)?
#if _MAX_SS != 512?WORD?ssize;??? ?//? 每扇区多少字节#endif
#if _FS_REENTRANT?_SYNC_t?sobj;?? // 允许重入,则定义同步对象?
#endif
#if !_FS_READONLY?DWORD?last_clust; ?// 最新分配的簇??
?DWORD?free_clust; ?// 空闲簇?DWORD?fsi_sector;??// 文件信息扇区(仅用于FAT32)#endif
#if _FS_RPATH?DWORD?cdir;??//使用相对路径,文件系统的当前起始路径? 0(root 路径)
#endif
?DWORD?n_fatent;?//文件分配表占用的扇区????n_fatent=数据簇数目+2
?DWORD?fsize;????? ?//每FAT表有多少个扇区??????
?DWORD?fatbase;? //文件分配表开始扇区????
?DWORD?dirbase;? // 如果是FAT32,根目录开始扇区需要首先得到?
?DWORD?database;?// 数据起始扇区????
?DWORD?winsect;??? // win中当前指定的扇区?BYTE?win[_MAX_SS];??//扇区操作缓存
} FATFS;
typedef struct {?FATFS*?fs;??? // 指向的文件系统?
?WORD?id;???? // 自身文件系统挂载id号? 即 fs-id
?BYTE?flag;???? // 文件状态?
?BYTE?pad1;?? //文件在簇里面扇区偏移?(0--fs-csize)
?DWORD?fptr;?//文件当前读写指针位置,当文件打开时为0?
?DWORD?fsize;?//文件大小(按字节计算)
?DWORD?org_clust;??// 文件起始簇 (0 when fsize==0)??DWORD?curr_clust;??//?文件当前操作簇?DWORD?dsect;???// 文件当前操作扇区 #if !_FS_READONLY?DWORD?dir_sect;??// 包含路径入口的扇区号??BYTE*?dir_ptr;?????? // 目录入口指针#endif#if _USE_FASTSEEK?DWORD*?cltbl;????? //指向查找映射表的簇 (null on file open) #endif#if _FS_SHARE?UINT?lockid;???????? // 文件锁 ID号 (index of file semaphore table)#endif#if !_FS_TINY?BYTE?buf[_MAX_SS];?? // 文件读写缓存
#endif} FIL;
?
typedef struct {?FATFS*?fs;???? ???? // 对应的文件系统??
?WORD?id;?????????? // 自身文件系统挂载id号? 即 fs-id
?WORD?index;???? // 目前读写索引号??/* Current read/write index number */?DWORD?sclust;? // 目录表起始簇?? (0:Root dir)??DWORD?clust;??? // 目前处理的簇????DWORD?sect;??? ?// 目前簇里对应的扇区
?BYTE*?dir;???//指向当前在win[]中的短文件名入口项/* Pointer to the current SFN e
您可能关注的文档
- ThinkPHP实现读写分离.docx
- 拜访客户必备秘笈.doc
- 第十四课linux服务器安全之ftp安全.ppt
- 操作系统教程第3章-3 进程的同步与互斥.ppt
- 第四讲 使用代码部署服务.ppt
- 服务营销 第四章:服务消费行为研究.ppt
- 2012最新 60D破解刷机教程.doc
- 实训七 技能四 婴儿口服喂药.ppt
- 多面看历史——再观《罗斯福新政》[备课资料][人教版].ppt
- 读书笔记之《整理的艺术1》.doc
- (2021-2025)5年高考1年模拟化学真题分类汇编专题06 元素周期表、元素周期律与元素推断(湖北专用) .docx
- 起搏器术后活动.pptx
- 景区营地秋季亲子星光露营“与时光去露营吧”主题活动策划方案【秋季活动】.pptx
- 2025年一建考试机电工程经济与造价管理计算与分析试题卷.docx
- 幼儿消毒知识培训心得课件.pptx
- 2025年一建考试机电工程经济与造价管理经典试题卷.docx
- 快手垂钓行业营销IP鱼塘主理人计划招商方案.pdf
- (2021-2025)5年高考1年模拟化学真题分类汇编专题06 元素周期表、元素周期律与元素推断(湖北专用)(解析版) .docx
- (2021-2025)5年高考1年模拟化学真题分类汇编专题07 化学反应速率与化学平衡(解析版)(重庆专用).docx
- 2025年一建考试机电工程经济与造价管理计算与应用试题卷.docx
文档评论(0)