硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3511|回复: 9
收起左侧

[FatFs] SD写入时,文件越多,写入时间越长的问题。

[复制链接]

35

主题

73

回帖

343

积分

高级会员

超越昨天

积分
343
QQ
发表于 2017-8-17 15:17:37 | 显示全部楼层 |阅读模式
我现在是用UCOS2+FATFS对MICRO SD卡写入数据,文件格式为CSV,每次写入一行,空卡时写入一行需在40MS,因为每天存一个文件,但随着时间的增加,文件越来越多,写入的数据也越来越慢,写入一行需要400MS了,此时文件也就30多个,我想是不是我每次写入都要加载文件,再打开文件,写入完成后再关闭文件,卸载文件。这样浪费时间了,请知道的朋友告诉一下,怎么解决随着时间的延长,写入时间变长的问题。谢谢!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2017-8-18 00:38:46 | 显示全部楼层
你当前是怎么写入的,采用f_open, f_write, f_close,是不是每次写入都是这个次序。
回复

使用道具 举报

35

主题

73

回帖

343

积分

高级会员

超越昨天

积分
343
QQ
 楼主| 发表于 2017-8-23 10:15:30 | 显示全部楼层

回 eric2013 的帖子

eric2013:
你当前是怎么写入的,采用f_open, f_write, f_close,是不是每次写入都是这个次序。
每次都是f_mount(FS_SD, &fs),f_open, f_write, f_close,f_mount(FS_SD, NULL)这个顺序。
回复

使用道具 举报

5

主题

578

回帖

593

积分

版主

Rank: 7Rank: 7Rank: 7

积分
593
发表于 2017-8-23 11:35:53 | 显示全部楼层

回 fanyanxi 的帖子

fanyanxi:每次都是f_mount(FS_SD, &fs),f_open, f_write, f_close,f_mount(FS_SD, NULL)这个顺序。 (2017-08-23 10:15) 
没事别关闭啊,如果你想刷新数据,可以用f_sync的,但是频繁的f_sync会很慢
回复

使用道具 举报

35

主题

73

回帖

343

积分

高级会员

超越昨天

积分
343
QQ
 楼主| 发表于 2017-8-24 17:40:57 | 显示全部楼层

回 myxiaonia 的帖子

myxiaonia:没事别关闭啊,如果你想刷新数据,可以用f_sync的,但是频繁的f_sync会很慢 (2017-08-23 11:35) 
f_sync可以节省一点时间,你没有碰到过,SD卡明明空间被占用,但发现有些文件跟隐藏了一样,就是找不到。因为我是每天一个文件记录,文件名就是日期,发现突然有一天文件就开始不生成了,之后也不会生也了。
回复

使用道具 举报

35

主题

73

回帖

343

积分

高级会员

超越昨天

积分
343
QQ
 楼主| 发表于 2017-8-25 17:29:17 | 显示全部楼层

回 eric2013 的帖子

eric2013:你当前是怎么写入的,采用f_open, f_write, f_close,是不是每次写入都是这个次序。 (2017-08-18 00:38) 
我是按照你说的顺序写入的,那怎么才能又快又好呢?谢谢
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2017-8-28 01:58:29 | 显示全部楼层

回 fanyanxi 的帖子

fanyanxi:我是按照你说的顺序写入的,那怎么才能又快又好呢?谢谢 (2017-08-25 17:29) 
改成f_open,然后循环调用 f_write, f_sync即可
回复

使用道具 举报

35

主题

73

回帖

343

积分

高级会员

超越昨天

积分
343
QQ
 楼主| 发表于 2017-9-1 10:03:02 | 显示全部楼层

回 eric2013 的帖子

eric2013:改成f_open,然后循环调用 f_write, f_sync即可 (2017-08-28 01:58) 
你说的这种办法试了是可以的,但出现了新问题,因为我是第天存一个文件,用这种方法,只能存4天,第五天就存储了。不知道为什么。
回复

使用道具 举报

5

主题

578

回帖

593

积分

版主

Rank: 7Rank: 7Rank: 7

积分
593
发表于 2017-9-1 15:44:38 | 显示全部楼层

回 fanyanxi 的帖子

fanyanxi:你说的这种办法试了是可以的,但出现了新问题,因为我是第天存一个文件,用这种方法,只能存4天,第五天就存储了。不知道为什么。 (2017-09-01 10:03) 
我感觉可能软硬件都有问题吧,不如你改用rl-flashfs得了,不过不支持中文文件名

rl-flashfs虽然是闭源的,但是它的驱动都给写好了
回复

使用道具 举报

35

主题

73

回帖

343

积分

高级会员

超越昨天

积分
343
QQ
 楼主| 发表于 2017-9-6 11:15:50 | 显示全部楼层

回 myxiaonia 的帖子

myxiaonia:我感觉可能软硬件都有问题吧,不如你改用rl-flashfs得了,不过不支持中文文件名

rl-flashfs虽然是闭源的,但是它的驱动都给写好了 (2017-09-01 15:44) 
能不能加一下我的QQ:329930565,咱们单聊一下。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-28 18:41 , Processed in 0.181444 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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