硬汉嵌入式论坛

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

[DMA] 有关于DMA与CPU同时访问同一块RAM的疑问

[复制链接]
回帖奖励 20 个金币 回复本帖可获得 20 个金币奖励! 每人限 1 次(中奖概率 20%)

21

主题

81

回帖

144

积分

初级会员

积分
144
发表于 2025-2-8 17:39:37 | 显示全部楼层 |阅读模式
本帖最后由 Hzzz 于 2025-2-8 17:41 编辑

情景如下:

使用SPI DMA驱动OLED显示,整屏刷新。在触发OLED刷新,DMA传输Gram的buf到屏幕期间,此时程序可能会改变显示的内容,也就是cpu会修改Gram的buf,这种情况下,数据会出问题吗?还有此时DMA与CPU如何竞争总线?实际使用过程中,没发现数据出问题,但是这里有很大的疑问
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2025-2-9 07:54:54 | 显示全部楼层
SPI DMA设置DMA为NORMAL模式即可,更新内容了,再整体刷新,不需要设置为Circle循环模式
回复

使用道具 举报

43

主题

1054

回帖

1188

积分

至尊会员

积分
1188
发表于 2025-2-9 09:37:31 | 显示全部楼层
没发现不代表不会,我们一个同事就出现过这个问题。正常发送期间CPU不操作BUFF,或者线程时间片大于SPI发送时间,这样等到执行线程时,SPI已经发送完了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-14 06:34 , Processed in 0.039396 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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