硬汉嵌入式论坛

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

[STM32H7] STM32H7+RTOS+FATFS使用出现bug

[复制链接]

1

主题

2

回帖

5

积分

新手上路

积分
5
发表于 2025-4-18 15:41:29 | 显示全部楼层 |阅读模式
麻烦大佬帮我看一下,为什么我挂载能挂上但是f_open返回值是0x02 FR_INT_ERR
回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
 楼主| 发表于 2025-4-18 16:06:26 | 显示全部楼层
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 7 天前 | 显示全部楼层
"FR_INT_ERR:断言失败",                              /* (2) Assertion failed */

这个是断言失败,也就是你的函数参数调用有问题,调试看下是那个函数的参数有问题,然后看FATFS官网争取的调用姿势
回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
 楼主| 发表于 7 天前 | 显示全部楼层
出错的函数是ff.c中的dir_sdi,我跟踪到那里之后发现fs->dirbase这一项一直为0。但是我从find_volume里找到设置这一项的时候,它就是0没有错,我怀疑是我fs->win被污染了,但是找不到证据
回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
 楼主| 发表于 7 天前 | 显示全部楼层
大佬,我发现是执行完disk_read之后,每一次都会让FATFS 结构体的关键成员(如 n_fatent、fsize、volbase 等)变为0导致的,这是什么原因啊?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 5 天前 | 显示全部楼层
DyingRobot 发表于 2025-4-19 14:04
大佬,我发现是执行完disk_read之后,每一次都会让FATFS 结构体的关键成员(如 n_fatent、fsize、volbase  ...

注意两个地方。
1、注意MPU Cache的配置问题,可以先设置关闭DCache,使用函数SCB_DisableDCache
2、SDMMC DMA不支持DTCM RAM控件,注意用到RAM空间不要分配到这里个地址了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-26 01:55 , Processed in 0.257737 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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