FAT文件系统,CSV文件特别大

2019-12-14 12:11发布

用的fatfs文件系统R0.10b, SPI模式操作microSD卡, 8G卡,在根目录下有door.csv文件,系统有时候运行一段时间后会莫名其妙的出现SD卡容量不足,把SD卡拿下来插到电脑上发现这个csv文件变成了好几G,但是实际上程序只存了几十Kb,用excel打开这个文件,内容为空,用winhex打开的话,该有的记录是有的,但是后面全是0,导致占用了很多G空间,请问一下大家有可能是什么问题,程序已经筛查了一遍了,没有过界操作。

其他几个文件都是正常的,每次有问题都是这个door.csv文件,操作都是一模一样的。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
21条回答
edaworld
1楼-- · 2019-12-16 14:53
为什么不用flashfs,已经做了好几批了,很稳定。
liangshanguang
2楼-- · 2019-12-16 15:26
 精彩回答 2  元偷偷看……
技术宅
3楼-- · 2019-12-16 19:32
ckhf 发表于 2019-1-16 10:58
请问,fat下,csv可以分页吗?也就是同一个csv内创建几个表格?如何创建

我没有用到这项功能。不清楚怎么实现。
技术宅
4楼-- · 2019-12-17 00:49
zhuozz 发表于 2019-1-16 15:03
楼主解决没有 最后是什么原因?

用fatfs自带的格式化函数格式化一遍SD卡,再在每次写SD卡的时候锁住调度器或者关中断,目前还没发现会再出这种问题。 其实在写sd卡的时候,fatfs的syscall是有进行互斥量的申请的

int ff_req_grant (        /* TRUE:Got a grant to access the volume, FALSE:Could not get a grant */
        _SYNC_t sobj        /* Sync object to wait */
)
所以不存在写顺序错乱的问题。

只能怀疑是在写SD卡的时候,操作系统有更高优先级的任务就绪了。打断了SD卡的读写。现在这是这样怀疑。还没有验证。
技术宅
5楼-- · 2019-12-17 01:20
edaworld 发表于 2019-1-17 08:00
为什么不用flashfs,已经做了好几批了,很稳定。

还真没考虑过。用SD卡的话是因为直接取出SD卡插到电脑上就可以看到文件。很方便。另一个是容量大。
请教一下你用的flash是多大容量。
tomzbj
6楼-- · 2019-12-17 02:34
建议不要一直往一个文件里面写, 而是隔一定时间或者写入若干条记录以后换个文件名再继续
这样即使写坏了, 只要整个文件系统没崩, 只会损失一小部分数据.

一周热门 更多>