




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
博 客 广 告博 客 广 告 标签 文件系统FATFS 转一篇比较详细介绍转一篇比较详细介绍 FatFsFatFsFatFsFatFs 文件系统移植的文章文件系统移植的文章 FatFs 文件系统的移植 因为需要 又不想自己写 所以就移植了一个文件系统 说下我的硬件和开发工具 接成 TRUE IDE 模式下的 CF 卡 也就是相当 于一块硬盘了 三星S3C2440的ARM9 开发工具是很老很老的D版的ADS1 2 我在网上看到的嵌入式系统上面常用的文件系统有 UCOSII 公司的 UC FS 支持 CF 卡 硬盘 SD MMC 卡 还有 NAND FLASH 等等 比较多 不过是商 用的 需要银子的 有周立功的用于教学用 为什么说是用于教学用的 呵呵 等下就说 的 ZLG FS 还找到了开源 免费的两个 其中一个叫做 efsl 另 一个叫做 FatFs 现在先不考虑版权的问题 选择一个比较合适的文件系统 第一个 UC FS 文件系统没得什么说的 UCOSII 那个公司开发的 稳定性 兼容性应该都不会 差 第二个是 ZLG FS 周立功的很多的开发板上面都送了这个文件系统的源代 码的 在网上找到一个现成的读写硬盘的 只是是基于 LPC2200系列的处理器 的 第三个是 efsl 是一个开源的项目 免费 只需要提供读扇区和写扇区2个函 数 第四个是 FatFs 跟 efsl 一样 也是一个开源的项目 移植的时候比 efsl 多几 个简单的函数 这里补充一下 CF 卡和硬盘的简单的资料 CF 卡有三种模式 其中有一个叫 TRUE IDE 接成这个模式以后 就跟他的模式名字一样 他就是一个硬盘 对他 进行读写 也就相当于对一个硬盘进行读写 当引脚 OE 好像是叫 OE 具体参考 CF 卡文档 在上电的时候检测到拉低 那么 CF 卡就进入 TRUE IDE 模式 读写 硬盘的时候 在只写一次 LBA 只发送一个命令 读或者写 的情况下 最多可以 读或者写256个扇区 当然也可以读一个扇区 读或者写多少个扇区在扇区计数器 count 里面 其中 发一个读或者写命令 读或者写256个扇区所需要的时间 比 分256次去读写这些扇区所需要的时间要短得多 效率要高得多 我现在需要的是 一个读写的速度比较快 效率比较高的文件系统 因此 底层的读写扇区必须要每 写一个命令就可以读写多个扇区 读写扇区的函数必须要有扇区计数器 前面的 count 这个参数 才可能满足要求 UC FS 也是在网上搜了个代码 看了下 很标准的几个层 什么硬件层 文件 系统层 API 层 等等 具体参见 UC FS 的文档 跟 UCOSII 一个公司的 稳定 性应该不错 需要提供的函数也是读扇区 写扇区等等几个 但是底层的读写扇区 的函数不需要提供扇区计数器 count 这个参数 也就是说 这个文件系统不能在只 写一个读或者写命令的情况下 读或者写多个扇区 本来效感觉不错的一个文件系 统 效率就大大的降低了 然后看了下 efls 这个文件系统 开源的项目 免费的项目 好东西 移植也 很简单 同样移植的时候也是提供读写扇区等几个函数 但是面临的跟 UC FS 同样的问题 每次读写的时候也只能读写一个扇区 绝望之余看到了周立功的文件系统 大概看了下 没有仔细阅读源代码 硬件驱动上面能够在发一次读命令的情况下 读写多个扇区 而且感觉上比较简 单 同样 层次也很清楚 移植需要做的事情也是修改后面的读写扇区等等几个 函数 于是就开干了 功夫不负苦心人 过了几天 CF 卡能够读写了 拿到电 脑上面看写的数据 没问题 从 CF 卡里面读文件出来 打印到超级终端 也没 有问题 以为就万事 OK 了 想了下 我们需要的 最关心的 第一是速度 然 后就开始测试速度 不测不知道 一测吓一跳 太 快 了 TMD 才5 6个 K Bytes 每秒 我的驱动已经测试了 上 M 字节每秒的 于是跟踪到写里 面去 发现一个很 十分 非常严重的问题 ZLG FS 提供了读一个字节的函数 忘了叫做啥 这里暂时叫 ReadOneByte 然后读多个字节 或者说读大 块字节的函数用的是啥 呵呵 for i 0 i fsize LD DWORD Size finfo fdate LD WORD Date finfo ftime LD WORD Time 其中 dir 的是这样定义的 const BYTE dir 编译器报错是类型不匹配 因此 这里的几个 LD WORD 和 LD DWORD 重写 定义成一致的类型即可 WORDLD WORD 1 const BYTE pt BYTE PT BYTE pt return WORD PT 0 PT 1 256 DWORDLD DWORD 1 const BYTE pt BYTE PT BYTE pt return DWORD PT 0 DWORD PT 1 256 DWORD PT 2 65536 DWORD PT 3 16777216 而后面改成 finfo fsize LD DWORD 1 Size finfo fdate LD WORD 1 Date finfo ftime LD WORD 1 Time 编译 一路 OK 然后写一个文件 哇 哈哈哈哈 终于出来了 写文件没问题 读也没问题 测试了常用的函数 都没有问题 包括格 式化 f mkfs 前提是你的 disk ioctl 没问题 测试 了下速度 读 12 5M 的 MP3 大约 3 秒 写这个 12 5M 的 MP3 大约 6 5 秒 勉强达到要求
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中考专练:书面表达-(含答案)
- 农业大数据时代2025年农产品无损检测技术与物联网的融合报告
- 两江投资面试题库及答案
- 理财会计面试题及答案
- 兰州护士面试题目及答案
- 农业产业强镇建设资金申请项目产业链优化与整合报告
- 库房会计面试题目及答案
- 康宁会计面试题目及答案
- 电子合同签署流程
- 美术馆展览策划活动规划策略总结计划制定
- DB11T 1497-2017 学校及托幼机构饮水设备使用维护规范
- ESD基础知识培训讲义
- 2024-2025学年小学信息技术(信息科技)六年级全一册义务教育版(2024)教学设计合集
- 2025届高考语文一轮复习:文言文主观题答题策略+课件
- 报名学车合同(2篇)
- 养老机构员工宿舍管理制度
- 小型农田水利工程验收管理手册
- 语文园地一词句段运用 根据词语写画面-2024-2025学年语文四年级上册(统编版)
- 《会计基本技能》教案设计
- 教科版四年级上册科学全册教案
- JT-T-1359-2020客车空气悬架技术要求
评论
0/150
提交评论