也许在明天 发表于 2019-8-10 22:34:55

RL-FlashFS运行一段时间,文件打开失败

       使用RL-FlashFS,打开擦写平衡使能,测试4个小时,调用读取数据函数【bw = fread((uint8_t *)&hdata, 1, hDATA_SIZE, fout);
】,发现耗时20秒左右,然后开发板复位后,就出现文件打开失败【open M0:\314.dat fail】,如下为文件配置参数:

也许在明天 发表于 2019-8-10 22:37:19

突然联想到ftp服务器例子,也是测试几个小时后,链接还在,就是打不开目录文件了,可能也是sd这边的问题

eric2013 发表于 2019-8-11 09:40:43

没遇到过这种情况,帮顶。

也许在明天 发表于 2019-8-16 23:53:26

eric2013 发表于 2019-8-11 09:40
没遇到过这种情况,帮顶。

eric,您好!
       这是我用V5的板子测试的,运行到8420左右,就出问题了,您有空帮我看下配置什么的,能测试最好了:)

eric2013 发表于 2019-8-17 00:21:00

也许在明天 发表于 2019-8-16 23:53
eric,您好!
       这是我用V5的板子测试的,运行到8420左右,就出问题了,您有空帮我看下配置什么的 ...

帮顶,不知道你这个咋回事。

也许在明天 发表于 2019-8-25 11:27:10

eric2013 发表于 2019-8-17 00:21
帮顶,不知道你这个咋回事。

Eric,您好!
   请教flashfs的操作流程是否对这个问题有关系:
   1、运行四个小时就出错的流程:
   ①打开文件读写【r+】②查找存储索引③写入文件④关闭文件
   2、运行一天还未出错的流程:
   ①先打开文件只读【r】②查找存储索引③关闭文件④打开文件只写⑤写入文件⑥关闭文件

疑问:经过多次测试,发现只要文件打开模式带‘+’,运行不久就出问题,单步调试发现fread函数会耗时10s左右,读取出来的数据为空;您提供的例程里面读写都是分开的,所以都没有带‘+’;不知道是不是这个问题导致的?

cradle08 发表于 2021-5-15 16:13:29

也许在明天 发表于 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;
    }

cradle08 发表于 2021-5-15 16:28:49

另一种方式,感觉使用没那么方便,需要先判断,FATFS的mode使用要方便些

    if (ffind((const char*)pFileName, &info) == fsOK) {
         ptFile = fopen((char*)pFileName, "r+");
   }else{
         ptFile = fopen((char*)pFileName, "w"); // 如果文件不存在,则创建文件
   }
页: [1]
查看完整版本: RL-FlashFS运行一段时间,文件打开失败