硬汉嵌入式论坛

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

[SD/SDIO] stm32h7 sdmmc1 sd卡

[复制链接]

8

主题

52

回帖

76

积分

初级会员

积分
76
发表于 2021-11-29 15:54:21 | 显示全部楼层 |阅读模式
硬汉:
    ThreadX+NetXDUO+FileX+USBX+GUIX Template例程SD卡,使用HAL_SD_WriteBlocks_DMA()时,不需要配置DMA吗?我在例程中没发现有dma的配置代码?
    是我的理解有问题吗?求教...
回复

使用道具 举报

8

主题

52

回帖

76

积分

初级会员

积分
76
 楼主| 发表于 2021-11-29 16:04:31 | 显示全部楼层
我在V7-025_FatFS文件系统例子(SD卡 V1.2)这个例程中也没有发现dma配置代码,我之前F429时,都需要配置DMA通道的。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2021-11-29 16:29:59 | 显示全部楼层
H7的是SDMMC,自带DMA,叫IDMA。
回复

使用道具 举报

8

主题

52

回帖

76

积分

初级会员

积分
76
 楼主| 发表于 2021-11-29 16:35:47 | 显示全部楼层
之前,dma发送总是失败,报FIFO下溢错误。
现在发现是我测试的数组是定义在DTCM中的,DTCM是不能使用DMA的。
但是我是觉得为什么不需要DMA配置呢?我再看看库函数。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2021-11-30 09:09:06 | 显示全部楼层
shzdf123 发表于 2021-11-29 16:35
之前,dma发送总是失败,报FIFO下溢错误。
现在发现是我测试的数组是定义在DTCM中的,DTCM是不能使用DMA的 ...

自带的DMA配置比较方便,使能并设置下收发位置就行。
回复

使用道具 举报

8

主题

52

回帖

76

积分

初级会员

积分
76
 楼主| 发表于 2021-11-30 09:09:39 | 显示全部楼层
谢谢,重头看了一遍SDMMC,确实是IDMA。FILEX已移植好,再测试下读写速度。
回复

使用道具 举报

8

主题

52

回帖

76

积分

初级会员

积分
76
 楼主| 发表于 2021-12-1 14:05:40 | 显示全部楼层

STM32H7   400MHz  开ICACHE  开DCACHE  FLASH运行  用的HAL_SD库,没有优化为寄存器方式
512字节:  写入515KB/S,读出1.8MB/S
4K字节:   写入2.6MB/S,读出3.1MB/S
64K字节:  写入9.3MB/S,读出10.9MB/S
回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
发表于 2024-7-19 10:33:24 | 显示全部楼层
eric2013 发表于 2021-11-30 09:09
自带的DMA配置比较方便,使能并设置下收发位置就行。

官方驱动里没有这块的配置吧 没找到
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2024-7-20 09:02:09 | 显示全部楼层
xwgwudi 发表于 2024-7-19 10:33
官方驱动里没有这块的配置吧 没找到

有的,这个IDMA是SDMMC自带的DMA,这个不想通用DMA,IDMA仅需使能下就可以使用了。
回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
发表于 2024-7-23 13:40:59 | 显示全部楼层
eric2013 发表于 2024-7-20 09:02
有的,这个IDMA是SDMMC自带的DMA,这个不想通用DMA,IDMA仅需使能下就可以使用了。

问题解决了 使用IDMA是不用配置的 直接调用读写接口就行了 H7的驱动代码在IDMA发送完成回调和接收完成回调里写了一个标志位 用来标志发送完成和接收完成
我测试的时候没有等标志位 一直在读写 导致溢出错误 不使用DMA读写可以正常的原因是它的读写接口是阻塞的,直接就写了,不用在中断里判断是否发送和接收完成了
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2024-7-24 07:33:33 | 显示全部楼层
xwgwudi 发表于 2024-7-23 13:40
问题解决了 使用IDMA是不用配置的 直接调用读写接口就行了 H7的驱动代码在IDMA发送完成回调和接收完成回 ...

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-16 15:41 , Processed in 0.040819 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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