znFAT移植与使用手册.docVIP

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

znFAT移植与使用手册 (1)znFAT简介 znFAT是一种高效、完备、精简且具有高可移植性的嵌入式FAT32文件系统解决方案。其主要特性如下: 1)可通用于多种嵌入式CPU,如51、AVR、PIC、ARM、Cortex、DSP、MSP430、 freescale S12等等。 2)所占用的RAM与ROM资源极少,并可由使用者视目标平台资源情况进行灵活 配置,最简配置情况下,RAM的使用量约在800~900字节左右。 3)内建独特的数据写入加速算法以及扇区级的基于“预建文件”的数据写入机制。 4)底层提供简单的单扇区读写驱动接口以及可选的硬件级多扇区连续读写驱动接 口。(在提供多扇区连续读写驱动的情况下,数据读写速度将有近2~4倍的提升, 甚至更高。) 5)提供清晰而强大的对函数模块裁剪的功能,极大限度的减小最终生成的可执行文 件的体积。 6)提供数据读取的重定向功能,使读到的数据无需缓冲暂存,直接流向应用目的。 7)支持长文件名,长文件名最大长度可配置。默认配备并使用GB2312中文字符, 并可选择是否使用OEM字符集,以减少程序体积。 8)支持与Windows、Linux等操作系统兼容的路径表示,路径分隔可使用/或\。支持 无限深目录,支持长名目录。 9)提供数据写入的实时模式,写入的任何数据,只怕只有一个字节,立即落实到物 理存储器,防止因恶劣工作环境、干扰或其它原因引起的目标平台不可预见的死 机或故障,造成数据丢失(实时模式数据写入速度不高,内存中不缓冲任何数据)。 10)支持对存储设备的格式化,文件系统为FAT32。 11)支持*与?通配,长名亦支持通配。 12)支持文件与目录的删除,目录支持内含子目录与无限深级子目录结构的删除。 13)支持无限级目录创建。 14)支持多文件同时操作。 15)支持多设备,即同时挂载多种存储设备,可在多种存储设备间任意切换。 (2)znFAT的移植 1)znFAT的代码结构 主体:znFAT的具体实现。znFAT.h是对相关数据结构、宏的定义,以及对使用者可调用的功能函数的声明。znFAT.c是对功能函数的具体实现。 移植相关:znFAT的移植相关文件。mytype.h中对类型进行重定义。deviceio.c对存储设备物理扇区读写驱动进行具体实现。config.h 对znFAT进行一些配置。 其它头文件:cc_macro.h 是znFAT中的功能函数依赖关系的定义。gb2uni.h 是znFAT中GB2312向UNICODE转换的映射表。deviceio.h 此文件向znFAT提供扇区读写驱动接口函数的声明。template.h znFAT中用于实现格式化功能的模板数据。 2)znFAT的移植方法 znFAT的移植其实非常简单,前提是已经有了现成的,较为成熟稳定的存储设备扇区读写等驱动函数。 重新定义数据类型,如下图。 根据硬件平台实际的数据类型对mytype.h中的类型进行重新定义,包括 无符号整型、有符号整形与固化数据的ROM类型。 b. 通过deviceio.c将存储设备驱动函数与znFAT标准物理接口进行接驳,包括 存储设备初始化、单扇区读取、单扇区写入、[多扇区连续读取与写入,多扇区连续清0] I. 加入存储设备驱动头文件,如下图。(device0.h只是举个例子)。 II. 将存储设备初始化函数与znFAT_Device_Init函数接驳,如下图。 除了将实际存储设备的初始化函数加入接口函数znFAT_Device_Init中,此函数中其它代码请不要改动(以下同理)。并且最好按函数中的格式来写,在有多个存储设备的情况下,可以方便地知道每一个存储设备的初始化成功与否。 III. 将扇区读取驱动函数与znFAT_Device_Read_Sector函数进行接驳,如下图。 IV. 将扇区写入驱动函数与znFAT_Device_Write_Sector函数进行接驳,如下图。 V. 将多扇区连续读取驱动函数与znFAT_Device_Read_nSector函数进行接驳,如下 图。 znFAT中的多扇区连续读取驱动接口函数采用了两种实现方式,使用者可以通过修改config.h中的相应宏选择使用哪种实现方式。config.h中的宏如下图: 如果这个宏被注释,则采用单扇区读取驱动+循环的实现方式;否则,将采用硬件级的多扇区连续读取驱动,此地,使用者必须提供存储设备的多扇区连续读取驱动函数。 VI. 将多扇区连续写入驱动函数与znFAT_Device_Write_nSector函数进行接驳(与V同理,config.h中对应的宏为 #define USE_MULTISEC_W) V

文档评论(0)

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

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

1亿VIP精品文档

相关文档