[STM32H7] DMA传输数据量偶尔不对,怀疑缓存未同步

[复制链接]
92|10
Pulitzer 发表于 2025-10-20 07:11 | 显示全部楼层 |阅读模式
在外设和内存之间做DMA搬运时,有时候数据量少几个字节。感觉像cache没刷干净,但也不稳定。代码逻辑和配置看不出问题。
Clyde011 发表于 2025-10-20 07:15 | 显示全部楼层
我一般用DTCM或者AXI SRAM,稳定多了。
公羊子丹 发表于 2025-10-20 07:16 | 显示全部楼层
H7系列这个坑我踩过,cache确实要手动清理。
周半梅 发表于 2025-10-20 07:17 | 显示全部楼层
试试在DMA启动前加SCB_CleanDCache_by_Addr。
帛灿灿 发表于 2025-10-20 07:18 | 显示全部楼层
我觉得是buffer没对齐,你看下是不是非32字节对齐。
童雨竹 发表于 2025-10-20 07:19 | 显示全部楼层
DMA和cache交互确实很容易出这种问题。
万图 发表于 2025-10-20 07:20 | 显示全部楼层
我有次加了个__DSB()就好了,神奇但有效。
Wordsworth 发表于 2025-10-20 07:21 | 显示全部楼层
可以关掉cache试试,确认是不是这个原因。
Bblythe 发表于 2025-10-20 07:22 | 显示全部楼层
有些外设不支持cache直接访问,会出奇怪问题。
 楼主| Pulitzer 发表于 2025-10-20 07:23 | 显示全部楼层
你如果用ETH或SDIO,也会遇到同样现象。
Uriah 发表于 2025-10-20 07:23 | 显示全部楼层
H7的DMA挺快,但也挺挑内存对齐。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

176

主题

6242

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部