- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于SD卡μCFS文件系统在ARM上移植研究
基于SD卡μCFS文件系统在ARM上移植研究
摘要:分析了实践中广泛应用的移动设备上数据保存的问题,说明了在ARM系统上应用SD卡作为存储器移植μC/FS的方法。由于SD卡有两种工作模式,提出了接口隔离的策略,避免依赖于SD卡的工作模式,从而改进了软件的适应度。实践证明,该架构实现方便、易维护,取得了较好的效果。
关键词:SD卡 μC/FS 移植 软件架构
中图分类号:TP274.2 文献标识码:A 文章编号:1007-9416(2013)10-0090-02
随着嵌入式系统广泛地应用于工业生产及日常生活等各领域,其功能变得更加多元化,产生的数据量也逐渐增加。通常,这些数据需要及时地保存到存储器中以备将来使用,因而对于存储器也提出了更多需求。一般地,嵌入式系统中的存储器要求可移动性好、可靠性高、容量大、速度快等特点。嵌入式系统中常用的存储器有CF卡、MMC卡、SD卡、TF(Micro SD)卡、工业电子盘等等。SD卡是目前广泛使用的一种存储器,其特点是重量轻、体积小、快速安全等,它由MMC卡发展而来,且与MMC卡保持向上兼容。
为方便开发,一般嵌入式系统会移植操作系统。μC/OS-Ⅱ是一个开源的实时嵌入式操作系统,在嵌入式领域有广泛的应用,但它只是一个实时性的内核,没有提供文件管理功能,不能满足数据存储的需求。为此,可在μC/OS-Ⅱ内核之上增加文件系统。μC/FS就是应用于μC/OS-Ⅱ内核之上的一个文件系统层,内置对FAT文件系统的支持。本文采用SD卡作为物理存储介质,将μC/FS移植到采用μC/OS-Ⅱ作为操作系统的ARM系统上。
1 μC/FS文件系统
μC/FS与μC/OS-Ⅱ出自同一公司,可以很方便地移植到基于μC/OS-Ⅱ的嵌入式系统。实际上,μC/FS采用标准ANSI C编写,可以方便地移植到任何操作系统。μC/FS 1.X版文件系统采用分层的方式设计,如图1所示。
API层是应用程序与μC/FS文件系统的接口,包含一个函数库,提供了诸如FS_FOpen, FS_FWrite等文件操作函数。API层在这些函数内部调用文件系统操作,完成实际的文件操作。文件系统层将文件操作转换成对逻辑存储块的访问,并通过指定驱动器选择实际的物理设备。逻辑块层封装了底层设备驱动接口,向文件系统层提供了一个简单易???的接口。设备驱动层提供对物理存储设备的实际访问接口,比如对扇区的读写等操作。
目前μC/FS在文件系统层提供了对FAT的支持,然而API也可以支持其它文件系统,因此,只要提供合适的接口,μC/FS也可以支持其它文件系统。
2 μC/FS的移植过程
SD卡是在嵌入式系统中广泛使用的存储介质,本文讨论SD卡在μC/FS上的移植。μC/FS在设计时就充分考虑了系统的可移植性,移植的第一步是修改配置文件。
(1)如果系统使用了操作系统,则在文件fs_conf.h中,设置相应的系统:
#define FS_OS_UCOS_II 1 /* 1 =use μC/OS-II */
(2)如果希望文件系统支持目录操作,则在文件fs_conf.h中,作如下设置:
#define FS_POSIX_DIR_SUPPORT 1 /*POSIX 1003.1 like directory support */
#if FS_POSIX_DIR_SUPPORT
#define FS_DIR_MAXOPEN 4/* Maximum number of directory handles */
#endif
(3)在文件fs_conf.h中,选择MMC设备驱动,使其支持SD卡。
#define FS_USE_MMC_DRIVER 1
设定系统中作为文件存储器的SD设备的数量:
#define FS_MMC_MAXUNIT 1
如果需要为设备提供缓存,则在下面设定期望的缓存大小:
#define FS_MMC_CACHENUM 10
μC/FS中还有数个与移植相关的地方需要注意。 在文件Fs_info.c中,保留与SD设备驱动相关的结构定义。
extern const FS__device_type FS__mmcdevice_driver;
#define FS_DEVINFO_DEVMMC {mmc, FS__fat_functable, FS__mmcdevice_driver, FS_CACHEINFO_MMC_DRIVER 0 },
以及mmc_drv.c文件中的设备驱动程序结构:
const FS__device_type FS__mmcdevice_driver =
您可能关注的文档
最近下载
- 3.3《人间词话六则》课件-中职高二语文(高教版2024拓展模块上册).pptx
- 《人工智能应用导论》PPT全套完整教学课件.pptx VIP
- 体育课堂中团队合作游戏对团队意识培养的实践研究教学研究课题报告.docx
- 人工智能导论PPT全套课件.pptx VIP
- 3.2《文学作为语言艺术的独特地位》课件-中职高二语文(高教版2024拓展模块上册).pptx
- 医务科管理制度-标准版.doc VIP
- 初中英语阅读——篇章结构强化练习(附答案).pdf VIP
- 初中英语过去时强化练习(附答案).docx VIP
- 形容词和副词的比较级和最高级及专项练习(精品).doc VIP
- 2025年新版人教版四年级上册英语 四上Unit 5 The weather and us 单元整体教学设计.pdf VIP
文档评论(0)