硬汉嵌入式论坛

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

[SD/SDIO] 新人求助,SDMMC + FATFS + IDMA使用时无法挂载等问题

[复制链接]

2

主题

1

回帖

7

积分

新手上路

积分
7
发表于 2026-2-9 22:39:24 | 显示全部楼层 |阅读模式


问题描述:STM32H7 SDMMC1 开启 IDMA 后导致 FatFs 挂载失败
1. 硬件环境
  • MCU: STM32H743ZIT6
  • 开发平台: 自研学习开发板
  • 接口配置: SDMMC1 (4-bit 模式)
  • 存储介质: 森秀micro SD 8G,已经使用站内sd card formatter格式化过

2. 软件环境

  • IDE: VS Code (搭配 CMake/Makefile)
  • 固件库: STM32Cube_FW_H7_V1.12.1
  • 文件系统: FatFs R0.12c
  • 关键配置: 开启 Internal DMA (IDMA)

3. 问题现象
  • 非 DMA 模式(轮询): 文件系统挂载、读写操作一切正常。
  • 开启 IDMA 模式: * 调用 f_mount(..., 1) 立即挂载时,返回 FR_DISK_ERR。

    • hsd1.ErrorCode 返回值经查为 0x00000020 (HAL_SD_ERROR_DATA_TIMEOUT)。
    • 改用延迟挂载后,调用 f_open 依然失败。


4. 已尝试的调试步骤
  • 内存配置: 根据论坛文件v7_025中的 demo_sd_fatfs配置了 AXI-SRAM 区域的 MPU。
  • 硬件层面: 尝试更换了 SD_CLK 引脚的上拉电阻阻值。
  • 软件配置: 在 CubeMX 中将 SDMMC 时钟引脚设为上拉模式,且SDMMC各个引脚速度均设为Very High。

5. 开发板原理图

1.png


2.png

6.配置以及部分代码


1.png

2.png
3.png

4.png

6.png

5.png

麻烦各位大佬路过有空看下,搞了好几天了。。。








回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
121123
QQ
发表于 2026-2-10 09:14:43 | 显示全部楼层
1、主RAM空间改成仅分配一个AXI,其它的任何RAM空间都不要在分散加载文件里面设置,确实RAM问题没有问题。
2、然后ST支持带DMA和不带DMA两种API的,测试下不带DMA的正常不,正常后注意IDMA要4字节对齐问题。注意这里的4字节对齐是你的底层接口函数里面操作IDMA时给的缓冲地址要对齐。

ps:图片没有上传成功,让管理员帮楼主上传了。
回复

使用道具 举报

2

主题

1

回帖

7

积分

新手上路

积分
7
 楼主| 发表于 2026-2-10 16:21:29 | 显示全部楼层
eric2013 发表于 2026-2-10 09:14
1、主RAM空间改成仅分配一个AXI,其它的任何RAM空间都不要在分散加载文件里面设置,确实RAM问题没有问题。
...

感谢硬汉哥大佬,我把AXI设置为主ram,不用dtcm后就可以正常使用iDMA了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-24 09:46 , Processed in 0.064252 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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