文件系统f_open执行时间不一样

2019-07-20 13:56发布

小白求助各位大大。
我在移植原子大大的文件系统操作SD卡例程时,进行了如下操作
unsigned char LevelTablePath[]="0:/CH1/00000.bin";
fftemp=(FIL*)mymalloc(SRAMIN,sizeof(FIL));                    //·ÖÅäÄú′æ       
res = f_open(fftemp,(const TCHAR*)LevelTablePath,FA_OPEN_EXISTING|FA_READ);//′ò¿aòѾ-′æÔúμÄÎļt

……(后续省略)
其中路径名是根据程序中的一个变量改变而改变的,实际运行中发现,读取"0:/CH1/010000.bin”和读取"0:/CH1/100000.bin"两个文件时,f_open函数执行时间不一样,请问各位英豪有没有碰到过类似现象?能否帮小弟解惑~
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
正点原子
1楼-- · 2019-07-20 16:56
 精彩回答 2  元偷偷看……
yinxiangtuo
2楼-- · 2019-07-20 17:20
仿真中观察运行时间,发现两个路径在follow_path函数时执行时间不一样,根据仿真结果看好像是该函数回调参数时间不一样。求指教=。=
yinxiangtuo
3楼-- · 2019-07-20 21:34
正点原子 发表于 2017-6-14 19:14
这是很正常的事情,SD卡访问时间,是有不确定性的。

谢谢原子大大回答。
我现在如果打开01000.bin这个文件,用时时间一直很短,估计几十ms的样子。但是打开10000.bin文件就是几百ms。
我手上有十张左右不同速度不同厂家的SD卡,其中只有一张SD卡我打开这两个文件的时间是相同的。而这张SD卡同一批次型号的其他SD卡又不行了。现象全部一样,01000.bin很快10000.bin慢了一个量级。
我文件夹内大约有4000多个bin文件。我也尝试过把前面的都删掉只留一个10000.bin,打开该文件还是很慢。
如果是速度不确定导致的,为何固定这个文件名的文件打开就是很慢呢?
335920284
4楼-- · 2019-07-21 00:23
 精彩回答 2  元偷偷看……
yinxiangtuo
5楼-- · 2019-07-21 01:20
335920284 发表于 2017-6-15 15:28
你试着把卡格式化掉,然后只放这两个文件试试,文件多了在打开文件的时候会有好多查询操作,一般是最早建立 ...

多谢指导!
确实如您所说,文件多了到后面的文件读写速度瞬间变慢一个量级。我现在测试一个文件夹内放100个文件,分了四十个文件夹,问题解决了!

一周热门 更多>