OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2646|回复: 3

关于FATFS的f_leek的问题

[复制链接]

28

主题

150

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
488
金钱
488
注册时间
2016-9-29
在线时间
113 小时
发表于 2018-6-8 17:54:52 | 显示全部楼层 |阅读模式
7金钱
本帖最后由 ZDawn 于 2018-6-9 10:18 编辑

    在FATFS文件系统下使用f_lseek函数跳转读取指针,但是如果想要读取指针跳转到几万个字节的位置,则f_lseek函数会运行相当长的时间(比如说上一次使用f_lseek(&fp,1);  下一次使用f_lseek(&fp,80000); 两次隔的字节数越多则运行时间越长)。请问各位遇到这个问题时有没有把f_lseek函数运行时间缩短的办法?我想把f_lseek函数运行时间限制在10us以内。

最佳答案

查看完整内容[请看2#楼]

刚看了一下源码,发现 if (fp->cltbl) { /* Fast seek */,这句话.所以你试试先把fp->cltbl = 1,然后再调用f_lseek,如果还不行就只能自己重新写 f_lseek的实现函数了.
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
185
金钱
185
注册时间
2018-4-22
在线时间
39 小时
发表于 2018-6-8 17:54:53 | 显示全部楼层
刚看了一下源码,发现 if (fp->cltbl)  {        /* Fast seek */,这句话.所以你试试先把fp->cltbl  = 1,然后再调用f_lseek,如果还不行就只能自己重新写 f_lseek的实现函数了.
回复

使用道具 举报

28

主题

150

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
488
金钱
488
注册时间
2016-9-29
在线时间
113 小时
 楼主| 发表于 2018-6-9 08:56:07 | 显示全部楼层
我想在BIN文件的两个位置进行读取数据,所以用到了f_lseek函数,然后发现f_lseek函数的运行占了大部分的时间,比f_read函数所用的时间多得多
回复

使用道具 举报

3

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
185
金钱
185
注册时间
2018-4-22
在线时间
39 小时
发表于 2018-6-9 11:34:16 | 显示全部楼层
还有 #if _USE_FASTSEEK ,这句 需要 #define _USE_FASTSEEK  1
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-29 06:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表