硬汉嵌入式论坛

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

[ThreadX全家桶] 求助:F4移植fileX时,在fx_media_flush和fx_media_close时返回IO Error

[复制链接]

10

主题

46

回帖

76

积分

初级会员

积分
76
发表于 2020-10-29 17:52:17 | 显示全部楼层 |阅读模式
在STM32F407上移植FileX,create,open,close文件都能成功,最后flush或mediaclose时出错,返回的是IO错误。
不知道是什么问题,请各位有经验的指导一下,不胜感激

fx_sd_driver是使用H7的驱动修改的,只是把SCB_CleanDCache_by_Addr相关的屏蔽掉了,

FileXUsbXF407相关文件.zip

7.59 KB, 下载次数: 18

相关文件

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115812
QQ
发表于 2020-10-30 00:29:26 | 显示全部楼层
这两个函数没测试过,下个月做教程配套例子时试试。
回复

使用道具 举报

0

主题

21

回帖

21

积分

新手上路

积分
21
发表于 2021-4-25 16:54:39 | 显示全部楼层
我学习示例也遇到差不多的问题,就是fx_media_open和fx_media_close配对反复用第二次时,提示IO错误
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115812
QQ
发表于 2021-4-26 12:17:24 | 显示全部楼层
guohuimao 发表于 2021-4-25 16:54
我学习示例也遇到差不多的问题,就是fx_media_open和fx_media_close配对反复用第二次时,提示IO错误

试试我教程的这个例子:

ThreadX FileX和RL-FlashFS文件系统教程更新记录贴,前4章已经发布(2021-03-01)
http://www.armbbs.cn/forum.php?m ... 0749&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

0

主题

21

回帖

21

积分

新手上路

积分
21
发表于 2021-4-26 21:26:49 | 显示全部楼层
eric2013 发表于 2021-4-26 12:17
试试我教程的这个例子:

ThreadX FileX和RL-FlashFS文件系统教程更新记录贴,前4章已经发布(2021-03- ...

这个好象跟之前的示例代码一样呀   ViewRootDir();        连续执行两次,第二次就会在fx_media_open处提示0x90(FX_IO_ERROR)了。在open/close之间是不是少了什么操作了
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115812
QQ
发表于 2021-4-27 08:57:54 | 显示全部楼层
guohuimao 发表于 2021-4-26 21:26
这个好象跟之前的示例代码一样呀   ViewRootDir();        连续执行两次,第二次就会在fx_media_open处提示 ...

底层驱动和我的也一样吗,如果也一样考虑下硬件问题,或者换个SD卡试试。
回复

使用道具 举报

0

主题

21

回帖

21

积分

新手上路

积分
21
发表于 2021-5-5 23:20:10 | 显示全部楼层
eric2013 发表于 2021-4-27 08:57
底层驱动和我的也一样吗,如果也一样考虑下硬件问题,或者换个SD卡试试。

问题解决了,我仔细对比底层驱动,把它改得和你的一样,好了。具体是不是操作SD的硬件IO需要重置也不是太清楚。现在反而出现相反的问题了,就是显示目录,创建文件这些小动作每个单独操作,必须按你的设计,每个前面open结束close成对用一下,不能在这两个之间连结执行两个或以上动作。
  即  open viewRoodir close   ; open creatfile close;  //ok
       open  viewRootdir;  creatfile  close;  //fail
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2021-10-15 11:52:30 | 显示全部楼层
guohuimao 发表于 2021-5-5 23:20
问题解决了,我仔细对比底层驱动,把它改得和你的一样,好了。具体是不是操作SD的硬件IO需要重置也不是太 ...

我也测试了,确实是这样,我原来使用fatfs,挂载后,可以不用卸载,在运行过程中不断的open file 和close file都没问题。这个fileX好像是调用了media flush后,是不是要必须调用media close?还是我哪里没用对?
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2021-10-15 15:34:09 | 显示全部楼层
eric2013 发表于 2020-10-30 00:29
这两个函数没测试过,下个月做教程配套例子时试试。

请问fileX挂载sd卡后,如何查看挂载磁盘的盘符,比如fatfs中可以直接打开某路径下的文件,如fopen(0:/test/test001.txt),但是我在filex的例程中未找到类似的操作。我用的是v5的板子和v5的例程
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115812
QQ
发表于 2021-10-16 01:05:54 | 显示全部楼层
qiang497363216 发表于 2021-10-15 15:34
请问fileX挂载sd卡后,如何查看挂载磁盘的盘符,比如fatfs中可以直接打开某路径下的文件,如fopen(0:/te ...

他是靠fx_media_open里的第1个参数媒体控制块决定的。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-21 06:36 , Processed in 0.300295 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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