修改znFAT 提高znFAT效率&nbs…

最近拿到一个项目,关于FAT32的。以前搞过fatfs的移植,那会也没怎么关注效率。这次拿到的是一个已经移植好的usb 1.1的协议,而且已经有了文件存储协议FAT32,基础移植库是znfat。

 

刚开始看的时候,项目做出来的效率很低,也就是20KByte/s的速度。很低。

不是很懂得USB bulk-only的协议,大致扫了一遍,略微修改了一些明显占用处理时间的地方,同时删除了一些没有效用的逻辑部分,达到了3.3S,100kByte数据,速度是30KByte/s。当然这都不是主要的,主要的是后面关于FAT32协议部分的优化

 

接触过两个FAT32协议库了,以前也看过FAT32标准协议,这次趁着接触znfat,也记录下自己的学习历程。
自己做的上个平台,由于底层USB驱动不错,所以FAT32协议我移植上去之后,速度就已经达到200KByte/s了,所以那会也没关注与FAT32的优化,新接触这个,确实USB底层通信协议略差一些,用的也是USB1.1,本身也略慢一些。

 

看这两个FAT32协议,发现跟底层USB驱动对接的,主要就是一个读函数,一个写函数。disk_read,disk_write。均是按block来读和写。


我测试了下新平台的disk_write的效率,不考虑FAT32协议,100KBytes数据,一次性通过disk_write连续写入,耗费时间约为0.4s.也就是说,裸USB速度是250KByte/s。这个速度是在我前面已经初步优化过USB协议及逻辑结构之后的速度。同时做了另外一个测试,就是将这100KByte数据,按最小单位block(512字节),分多次写入磁盘,得出的结论是1.4s,同样都是通过disk_write写入数据,发现一次性写入跟多次性写入数据差别就是倍数关系了。所以disk_write里面也有很大的优化空间。

 

跟进disk_

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值