由崎星空 发表于 2021-6-1 18:08:44

关于RL-FlashFs的一些问题

最近在使用RL-FlashFS,一开始觉得很稀奇就尝试使用了一下,因为配合自带的 USB MSC开发工作一下子减少了,但是好景不长用了1个月了,
说说我最近遇到的很多问题吧。

1.长明文件和短名文件,在使用 RL-FlashFS 自带的设置文件时间的函数时,会莫名其妙的将文件名长压缩为 4字节+ ~ +一个字节 例如 Test000001.txt   = Test~1.txt
这个问题我找了很久,以为是我的配置问题,然后把 论坛的 例程配置下下来对比,配置成一样。版本也设置为MDK-Pro 版本 用的都是 Release版本。结果还是这样
最后做减法,把所有关于文件系统的函数一个一个排除才发现。


2. 这个问题是我最最最最最最最最最最最最最最最最最最最最无语,郁闷,不可置信,不知所措的问题。就是在f_open('w');创建文件之后,它竟然会出现 同名文件
我在Windows上模拟了很多次都没法实现创建同名文件,我就无语 这为什么能创建出来,而且最重要的是,文件内容 竟然是不一样的。(由于需要记录unix时间和其它的)。
出现这个问题之后,f_open('r'); 永远打不开这个文件,下面是截图,还有更离谱,我记录文件 创建了20多个同名的。





这些问题,我都单独使用 一个线程测试,就是什么都不做,单写入,然后单独取,也会出现这个问题。
USB MSC,在usb 连接之前,我都会把 文件系统 unmount掉。
我还用论坛里专用的TF卡格式工具格式化了TF卡。4G fat32 4096 8192都试过。
如果只是我这样,那我只能说电脑有毒。{:16:}

最后我还是换回了Fatfs,本来想着用 Azure FileX,项目经不起折腾了就保守点,最后也没出现过这个问题了。

eric2013 发表于 2021-6-1 18:26:49

文件名这块有bug,上周的升级还修改了两个。


由崎星空 发表于 2021-6-1 19:39:08

eric2013 发表于 2021-6-1 18:26
文件名这块有bug,上周的升级还修改了两个。

我估计他们还没有 发现第二个问题的BUG       :dizzy:

eric2013 发表于 2021-6-1 19:46:20

由崎星空 发表于 2021-6-1 19:39
我估计他们还没有 发现第二个问题的BUG

第2个问题怎么复现,我试试

由崎星空 发表于 2021-6-1 20:22:07

eric2013 发表于 2021-6-1 19:46
第2个问题怎么复现,我试试

我也没有怎么操作,就是频繁的 fopen('ab+') ,写入数据,然后fclose;就是频繁,其实说频繁也不是很频繁,我都不是很频繁,
但是这个文件是在 第二层文件夹下,就是根目录文件夹/第二文件夹/file.txt 这样的。

可以试试哇。遇到这种是真没办法:dizzy:

由崎星空 发表于 2021-6-1 20:31:00

eric2013 发表于 2021-6-1 19:46
第2个问题怎么复现,我试试

我去ARM 官网搜,也有这个问题,是不过是 OverWrite ,相同的是 都是用的 f_open("ab+");:'(

eric2013 发表于 2021-6-2 11:50:09

由崎星空 发表于 2021-6-1 20:22
我也没有怎么操作,就是频繁的 fopen('ab+') ,写入数据,然后fclose;就是频繁,其实说频繁也不是很频 ...

翻了一下我早期的一个项目例子。

我用的是fout = fopen ("N0:\\record.csv", "a");

记录了几百万条信息,正常。你也可以试试

由崎星空 发表于 2021-6-3 10:32:09

eric2013 发表于 2021-6-2 11:50
翻了一下我早期的一个项目例子。

我用的是fout = fopen ("N0:\\record.csv", "a");


有没有使用过 fopen(”folder//file.ext,“rb+”)呢,我用这个也出现过 :dizzy: 在用这个之前我还用了ffind

eric2013 发表于 2021-6-3 10:32:58

由崎星空 发表于 2021-6-3 10:32
有没有使用过 fopen(”folder//file.ext,“rb+”)呢,我用这个也出现过在用这个之前我还用了ff ...

用我这个,我这个是经过实战验证的。

由崎星空 发表于 2021-6-3 10:34:07

eric2013 发表于 2021-6-3 10:32
用我这个,我这个是经过实战验证的。

因为特殊需要,修改某些文件的内容,所以还用了 fopen(rb+),去修改这个文件内的某一段数据,所以没法只用 fopen(a):dizzy:

eric2013 发表于 2021-6-3 10:36:51

由崎星空 发表于 2021-6-3 10:34
因为特殊需要,修改某些文件的内容,所以还用了 fopen(rb+),去修改这个文件内的某一段数据,所以没法只 ...

修改内容不靠谱,建议换方法,不要死磕这个。

yswtxiao 发表于 2021-6-8 10:24:48

由崎星空 发表于 2021-6-3 10:34
因为特殊需要,修改某些文件的内容,所以还用了 fopen(rb+),去修改这个文件内的某一段数据,所以没法只 ...

这个问题我也遇到了,这个百分之百是这个文件系统库的问题。我也是和你一样把所有的东西都屏蔽了,只测文件系统,只要在非根目录调用ffind查找就会出现。这个就是他的文件名cache miss。换文件系统吧。

水水水木木木 发表于 2021-6-12 11:56:32

我遇到的是文件名重复,但是不是你这种情况。我也是一直追加数据,然后打开SD卡后发现,有一些文件的名字变成了两个,但是这两个文件一样大,而且打开后的数据也是连续的。也就是两个完全一样的文件。不知道是啥问题。而且这两个文件都是可以打开,可以修改的。
页: [1]
查看完整版本: 关于RL-FlashFs的一些问题