littleFS 多线程操作出现 Corrupted dir pair
·
背景:
rtthread 5.1.0 标准版
littleFS 2.11.0,开启了 LFS_THREADSAFE,基于FAL,spi flash驱动采用自己编写的驱动
文件系统做了强度测试(约24小时,创建,写,读,删除多个文件。文件大小随机,内容随机)
现象
线程A定时1秒读取文件1某几个字节内容,线程B手工操作读取文件2,计算文件的CRC32。几乎必现以下错误:
..\components\littlefs-2.11.0\lfs.c:1387:error: Corrupted dir pair at {0x1, 0x0}
..\components\littlefs-2.11.0\lfs.c:1387:error: Corrupted dir pair at {0x1, 0x0}
..\components\littlefs-2.11.0\lfs.c:1387:error: Corrupted dir pair at {0x1, 0x0}
文件2 的CRC32计算不对。在线程A不操作文件后,没有出现该问题。
推测可能是多个线程操作引起
结论
采用lfs时,不推荐多线程操作文件系统。
或者引入更高层级的文件系统,例如rtthrea的DFS组件
参考:https://blog.csdn.net/gitblog_00320/article/details/151347698
更多推荐
所有评论(0)