基于SD卡μCFS文件系统在ARM上移植研究.docVIP

基于SD卡μCFS文件系统在ARM上移植研究.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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 =

文档评论(0)

erterye + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档