硬汉嵌入式论坛

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

[FileX] 请教一个问题,SD卡热拔插后挂载文件系统失败

[复制链接]

6

主题

16

回帖

34

积分

新手上路

积分
34
QQ
发表于 2023-3-16 15:34:52 | 显示全部楼层 |阅读模式
使用的H7开发板,ThreadX全家桶例程,发现只要挂载文件系统失败一次,就再也无法挂载上了

1.上电后,SD卡插在板子上读卡,可正常读卡;拔卡后读卡,提示“挂载失败”;再次插卡,提示“挂载失败”
2.上电后,SD卡未插入板子,读卡,提示“挂载失败”;插卡后读卡,提示“挂载失败”
3.上电后,SD卡插在板子上读卡,可正常读卡;拔卡后不读卡,再次插入,也可正常读卡

FileX文件系统的例程也有这样的问题

新手上路,实在分析不出原因了
回复

使用道具 举报

6

主题

16

回帖

34

积分

新手上路

积分
34
QQ
 楼主| 发表于 2023-3-16 17:03:09 | 显示全部楼层

找到问题了,hel库的HAL_SD_Init不会清除错误,BSP包里的Init也没有清错,在BSP_SD_Init()里加上清错就好了

~8UYRLCDJA958AK6D@(MO3O.png
回复

使用道具 举报

6

主题

16

回帖

34

积分

新手上路

积分
34
QQ
 楼主| 发表于 2023-3-16 17:26:25 | 显示全部楼层
Init的时候清下uSdHandle.ErrorCode就好了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106731
QQ
发表于 2023-3-17 11:23:34 | 显示全部楼层
yono 发表于 2023-3-16 17:26
Init的时候清下uSdHandle.ErrorCode就好了

那不应该,这个是全局变量,MDK会做清零处理。估计是重复调用这个初始化函数了。

下载.png
回复

使用道具 举报

6

主题

16

回帖

34

积分

新手上路

积分
34
QQ
 楼主| 发表于 2023-3-17 16:04:09 | 显示全部楼层
eric2013 发表于 2023-3-17 11:23
那不应该,这个是全局变量,MDK会做清零处理。估计是重复调用这个初始化函数了。

MDK初始化会清零,但是出现错误之后,再次尝试挂载时调用BSP_SD_Init(),此时ErrorCode仍然会有值,且例程没有清除。
uSdHandle传入HAL_SD_Init()时,由于ErrorCode存在值,在某个角落会导致返回错误——昨天逐句调试到过这行代码,今天忘掉在哪了
QQ截图20230317155936.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106731
QQ
发表于 2023-3-18 10:21:36 | 显示全部楼层
yono 发表于 2023-3-17 16:04
MDK初始化会清零,但是出现错误之后,再次尝试挂载时调用BSP_SD_Init(),此时ErrorCode仍然会有值,且 ...

总的来说所有成员都做初始值是个好习惯
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-2 18:31 , Processed in 0.178651 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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