硬汉嵌入式论坛

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

[SD/SDIO] STM32H743的SDMMC2查询模式做电脑U盘正常,IDMA模式电脑提示格式化

[复制链接]

25

主题

68

回帖

143

积分

初级会员

积分
143
QQ
发表于 2021-2-22 15:46:46 | 显示全部楼层 |阅读模式
大家好。

STM32H743的SDMMC2查询模式做电脑U盘,读写正常,但IDMA模式电脑就提示格式化。

我本地使用SDMMC2的IDMA模式,读写正常的。但IDMA模式一连接电脑,电脑已经识别出U盘了,但提示格式化,没有容量显示,读写不了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2021-2-22 15:56:37 | 显示全部楼层
使用DMA要注意Cache问题和IDMA的4字节对齐问题。
回复

使用道具 举报

25

主题

68

回帖

143

积分

初级会员

积分
143
QQ
 楼主| 发表于 2021-2-24 15:39:58 | 显示全部楼层
eric2013 发表于 2021-2-22 15:56
使用DMA要注意Cache问题和IDMA的4字节对齐问题。

谢谢回复。

我看了论坛的例程:“V7-027_SD卡的FatFS文件系统+SD卡虚拟U盘”,其中“SD卡虚拟U盘”功能,也是使用查询模式的SD卡读写的。为什么不用IDMA模式的SD卡读写函数呢?IDMA模式读写应该速度更快啊。

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2021-2-24 15:51:54 | 显示全部楼层
pnhywyb 发表于 2021-2-24 15:39
谢谢回复。

我看了论坛的例程:“V7-027_SD卡的FatFS文件系统+SD卡虚拟U盘”,其中“SD卡虚拟U盘”功 ...

USB FS全速理论值是1.5MB/S,实际也就500KB-900KB/S,用啥都一样,而且IDMA处理4字节对齐麻烦,没有通用DMA方式,所以意义不大。
回复

使用道具 举报

25

主题

68

回帖

143

积分

初级会员

积分
143
QQ
 楼主| 发表于 2021-2-24 16:01:25 | 显示全部楼层
eric2013 发表于 2021-2-24 15:51
USB FS全速理论值是1.5MB/S,实际也就500KB-900KB/S,用啥都一样,而且IDMA处理4字节对齐麻烦,没有通用D ...

我现在用的是USB3300了,USB HS。SD卡查询模式写速度只有5.5MB/S左右,怎么都上不去。

但我尝试改为IDMA模式,就出现电脑枚举U盘正常,却要格式化的情况。版主要不也改为IMDA模式测试下。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2021-2-24 16:16:00 | 显示全部楼层
pnhywyb 发表于 2021-2-24 16:01
我现在用的是USB3300了,USB HS。SD卡查询模式写速度只有5.5MB/S左右,怎么都上不去。

但我尝试改为ID ...

差不多,我们H7-TOOL的也是USB3300,也是查询方式,不过是8线的eMMC。

H7-TOOL的eMMC虚拟U盘最高性能研究,读速度20-30MB,写速度10-15MB/S
http://www.armbbs.cn/forum.php?mod=viewthread&tid=95935




回复

使用道具 举报

25

主题

68

回帖

143

积分

初级会员

积分
143
QQ
 楼主| 发表于 2021-2-24 16:43:58 | 显示全部楼层
eric2013 发表于 2021-2-24 16:16
差不多,我们H7-TOOL的也是USB3300,也是查询方式,不过是8线的eMMC。

H7-TOOL的eMMC虚拟U盘最高性能 ...

如果STM32H7加了USB3300高速PHY芯片后,电脑U盘写速度才5.5MB/S左右,那其实和STM32H7的SDMMC理论写速度差别大了。

我觉得IDMA模式才能发挥出SDMMC的读写速度,可惜我这边枚举U盘成功,却出现需要格式化,用不了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2021-2-24 16:50:16 | 显示全部楼层
pnhywyb 发表于 2021-2-24 16:43
如果STM32H7加了USB3300高速PHY芯片后,电脑U盘写速度才5.5MB/S左右,那其实和STM32H7的SDMMC理论写速度 ...

使用IDMA必须解决4字节对齐问题和Cache问题,你的底层应该没有处理这块,直接调用的SDIO DMA操作的。
回复

使用道具 举报

25

主题

68

回帖

143

积分

初级会员

积分
143
QQ
 楼主| 发表于 2021-2-24 17:03:51 | 显示全部楼层
eric2013 发表于 2021-2-24 16:50
使用IDMA必须解决4字节对齐问题和Cache问题,你的底层应该没有处理这块,直接调用的SDIO DMA操作的。

我这边的SD卡读写函数,有做4字节对齐和Cache处理的,没问题。

不连接电脑,本地TF卡在IDMA模式下读写正常的。但一连接电脑,调试发现不进入SDMMC2中断,SD卡读函数超时了,所以电脑读不到SD卡容量等信息,点击U盘就提示要格式化。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2021-2-24 17:13:28 | 显示全部楼层
pnhywyb 发表于 2021-2-24 17:03
我这边的SD卡读写函数,有做4字节对齐和Cache处理的,没问题。

不连接电脑,本地TF卡在IDMA模式下读写 ...

你这样测试下,IDE开启最高性能优化,测试文件系统对SD卡的操作,如果没记错的话,查询方式和DMA方式,50MHz驱动SD卡没什么区别,Class10都是10MB-15MB/S。以H7的性能操作这点数据,用不用IDMA看不出差别
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-15 18:18 , Processed in 0.241475 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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