RL-FlashFS运行一段时间,文件打开失败
使用RL-FlashFS,打开擦写平衡使能,测试4个小时,调用读取数据函数【bw = fread((uint8_t *)&hdata, 1, hDATA_SIZE, fout);】,发现耗时20秒左右,然后开发板复位后,就出现文件打开失败【open M0:\314.dat fail】,如下为文件配置参数:
突然联想到ftp服务器例子,也是测试几个小时后,链接还在,就是打不开目录文件了,可能也是sd这边的问题 没遇到过这种情况,帮顶。 eric2013 发表于 2019-8-11 09:40
没遇到过这种情况,帮顶。
eric,您好!
这是我用V5的板子测试的,运行到8420左右,就出问题了,您有空帮我看下配置什么的,能测试最好了:)
也许在明天 发表于 2019-8-16 23:53
eric,您好!
这是我用V5的板子测试的,运行到8420左右,就出问题了,您有空帮我看下配置什么的 ...
帮顶,不知道你这个咋回事。 eric2013 发表于 2019-8-17 00:21
帮顶,不知道你这个咋回事。
Eric,您好!
请教flashfs的操作流程是否对这个问题有关系:
1、运行四个小时就出错的流程:
①打开文件读写【r+】②查找存储索引③写入文件④关闭文件
2、运行一天还未出错的流程:
①先打开文件只读【r】②查找存储索引③关闭文件④打开文件只写⑤写入文件⑥关闭文件
疑问:经过多次测试,发现只要文件打开模式带‘+’,运行不久就出问题,单步调试发现fread函数会耗时10s左右,读取出来的数据为空;您提供的例程里面读写都是分开的,所以都没有带‘+’;不知道是不是这个问题导致的? 也许在明天 发表于 2019-8-25 11:27
Eric,您好!
请教flashfs的操作流程是否对这个问题有关系:
1、运行四个小时就出错的流程: ...
你好,咨询一下,你这边如何在读写文件之前,如何判断文件是否存在,以便判断文件是否需创建,对于已存在的文件,进行读写操作。想咨询一下,你这边的判断方法,多谢了
我这边的实现如下:
ptFile = fopen((char*)pFileName, "r+");
if(ptFile == NULL)
{
ptFile = fopen((char*)pFileName, "w"); // 如果文件不存在,则创建文件
}
if(ptFile == NULL)
{
LOG_Info("Open %s Failure", pFileName);
eFeedBack = FEED_BACK_FAIL;
goto access_fail;
} 另一种方式,感觉使用没那么方便,需要先判断,FATFS的mode使用要方便些
if (ffind((const char*)pFileName, &info) == fsOK) {
ptFile = fopen((char*)pFileName, "r+");
}else{
ptFile = fopen((char*)pFileName, "w"); // 如果文件不存在,则创建文件
}
页:
[1]