- 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文件系统之后总是有人问我FATFS移植的问题,有时候很多问题都一样,只是有些人太浮躁,没有好好的把那不到1K的源文件给看一遍而已,今天整理文件,发现之前下载的一个很不错的介绍FATFS的文章,里面基本上把代码全部都注释了,奉献给大家。原文如下,地址已经找不到了,就不在附上了,感谢写这篇文章的人。
=====================我是分割线============================================
最近做的spiflash,本打算弄个文件系统,由于之前用过了JFFS、YAFFS和TrueFFS,代码量都相当的大,这次想找款代码量不那么吓人的,学习一下,听说配置会相对复杂一些。选来选去,最终选定了FatFS,代码量足够的小,最新的R0.09版本只有1个.c文件(当然,还有一个底层的要自己写,option文件夹里的无视),老点版本就更小了。而且更新很频繁,用户量也够大,就选定它了。尽管最后由于硬件和项目原因未能实际的移植它到vxWorks,但学过的还是要记录下。
??在这里/fsw/ff/00index_e.html下载源码,只有800多K,小的可怜,还可以下载示例程序,有AVR、Win32、lpc等多平台已实现的方案。打开看src文件夹,一个option文件夹、00readme.txt、diskio.h、ff.c、ff.h、ffconf.h和interger.h。移植时需要修改的文件主要包括ffconf.h和interger.h,后者是在它的定义与目标平台上的有冲突,或者用的不习惯时修改的。
??在做具体修改之前,先大概阅读下FatFS的源代码,可以先读integer.h,了解所用的数据类型,然后是ff.h,了解文件系统所用的数据结构和各种函数声明,再就是diskio.h,了解与介质相关的数据结构和操作函数。ff.c这个文件相对较大,可以在最后将所实现的函数大致扫描一遍,之后根据用户应用层程序调用函数的次序仔细阅读相关代码。各个文件都可以直接用记事本打开查阅,非常方便。ff.h中的几个结构体十分重要,列举如下,首先是最基础的文件系统结构体:
/*Filesystemobjectstructure(FATFS)*/
typedefstruct{
????BYTE????fs_type;????????/*FAT子类型,一般在mount时用,置0表示未挂载*/
????BYTE????drv;????????????/*物理驱动号,一般为0*/
????BYTE????csize;????????????/*每个簇的扇区数目(1,2,4...128)*/
????BYTE????n_fats;????????????/*文件分配表的数目(1,2)*/
????/*FAT文件系统依次为:引导扇区、两个文件分配表、根目录区和数据区*/
????BYTE????wflag;????????????/*标记文件是否被改动过,为1时要回写*/
????BYTE????fsi_flag;????????/*标记文件系统信息是否被改动过,为1时要回写*/
????WORD????id;????????????????/*文件系统挂载ID*/
????WORD????n_rootdir;????????/*根目录区入口(目录项)的个数(用于FAT12/16)*/
#if_MAX_SS!=512
????WORD????ssize;????????????/*每扇区的字节数(用于扇区大于512Byte的flash)*/
#endif
#if_FS_REENTRANT
????_SYNC_t????sobj;????????????/*允许重入,即定义同步对象,用在tiny中*/
#endif
#if!_FS_READONLY
????DWORD????last_clust;????????/*最后一个被分配的簇*/
????DWORD????free_clust;????????/*空闲簇的个数*/
????DWORD????fsi_sector;
您可能关注的文档
- Delphi程序的自动升级功能的实现(AutoUpdate使用指南.doc
- 音频信号编解码技术及应用概述资源.pdf
- 海康人脸识别门禁系统改造方案x_海康人脸识别门禁系统.docx
- 故障诊断MATLAB实现基于EEMD-MSPE-LSTM集合.docx
- SMT标准贴片元件电阻电容命名和封装资料x.docx
- MATLAB实现基于MSPE-KPCA-LSTM多尺度排列熵MSPE结合核主成分分析KPCA和长短期记忆网络LSTM进行故障诊断分类预测测的详细项目实例含模型描述及部分示例代码x.docx
- 集成运算同相放大器和反向放大器的选择.pdf
- 代码源码分享HDU+ojx.docx
- 【多变量时序预测】项目介绍Python实现基于CNN-BiL.docx
- python面试笔试题库.docx
最近下载
- 五年级数学奥数讲义.pdf VIP
- 牛羊屠宰兽医卫生检验人员理论考试题库及答案.docx VIP
- 牛品种改良与人工授精技术培训课件.ppt
- 五年级数学奥数讲义134讲.doc VIP
- 2025年综合类-电力机车钳工-电力机车钳工(高级技师)历年真题摘选带答案(5卷单选题100题).docx VIP
- 2025年综合类-电力机车钳工-电力机车钳工(高级)历年真题摘选带答案(5卷单选题100道).docx VIP
- 2025年综合类-电力机车钳工-电力机车钳工(高级)历年真题摘选带答案(5卷单选一百题).docx VIP
- 2025年综合类-电力机车钳工-电力机车钳工(高级技师)历年真题摘选带答案(5卷单选100题合辑).docx VIP
- 马来酸氯苯那敏片详细说明书与重点.docx VIP
- 2025年综合类-电力机车钳工-电力机车钳工(高级技师)历年真题摘选带答案(5卷单选一百题).docx VIP
 原创力文档
原创力文档 
                        

文档评论(0)