硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2915|回复: 5
收起左侧

[FatFs] f_open返回FR_TIMEOUT

[复制链接]

4

主题

14

回帖

26

积分

新手上路

积分
26
发表于 2020-7-22 09:35:30 | 显示全部楼层 |阅读模式
程序最初时没有问题,但是在程序中的一个文件改了他的结构体的参数,运行一段时间再打开任意文件,都会返回FR_TIMEOUT的返回值,比如改变宏定义MAX_HISDATA_STORE_DAY 30 -> 31,就会出现这个现象
1595381591(1).jpg
回复

使用道具 举报

4

主题

14

回帖

26

积分

新手上路

积分
26
 楼主| 发表于 2020-7-22 09:40:06 | 显示全部楼层
或者在这个结构体中加入一个参数也是会出现这个现象,一开始怀疑是文件系统对于一次的文件写入有限制,但是我删除这个HISDATA_METER_DAY_MAP结构体的MeterHisDayData参数时,添加一个uint8_t HisDataHourStart;的参数,也会出现这个问题。给我的感觉就是这个数组在系统中已经写定了,出现任何改变都会导致文件系统读不出来,返回超时。追踪程序都会在chk_mounted()函数下的ENTER_FF函数中返回超时
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
发表于 2020-7-22 10:40:25 | 显示全部楼层
你的应用部分代码怎么实现的,方便的话,发个简单示意部分即可。
回复

使用道具 举报

4

主题

14

回帖

26

积分

新手上路

积分
26
 楼主| 发表于 2020-7-22 11:51:43 | 显示全部楼层
eric2013 发表于 2020-7-22 10:40
你的应用部分代码怎么实现的,方便的话,发个简单示意部分即可。

这是几个截图

某一个任务中的某一个f_open

某一个任务中的某一个f_open

创建文件夹,及下面的配置

创建文件夹,及下面的配置

文件系统挂载和打开用户文件

文件系统挂载和打开用户文件

系统启动流程

系统启动流程
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
发表于 2020-7-22 14:28:20 | 显示全部楼层

换一种实现方式,f_mount, f_open以后,不要再f_close和卸载

直接f_wrtie配合f_sync
回复

使用道具 举报

4

主题

14

回帖

26

积分

新手上路

积分
26
 楼主| 发表于 2020-7-22 15:08:39 | 显示全部楼层
eric2013 发表于 2020-7-22 14:28
换一种实现方式,f_mount, f_open以后,不要再f_close和卸载

直接f_wrtie配合f_sync

好的,谢谢硬汉
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-3 18:09 , Processed in 0.177422 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表