OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8178|回复: 10

关于DMA传输数据的过程,求解

[复制链接]

86

主题

417

帖子

0

精华

高级会员

Rank: 4

积分
781
金钱
781
注册时间
2013-2-20
在线时间
0 小时
发表于 2014-11-23 10:27:59 | 显示全部楼层 |阅读模式
5金钱
网上有说DMA内存到外设间传输数据的过程为:
1、内存 到 外设
2、内存 到 DMAC 到 外设
3、内存 到 数据总线 到 DMA数据缓冲器 到数据总线 到 外设 
那么,到底是哪一种情况呢?

还有,使用DMA进行内存到外设,外设到内存,内存到内存的数据传输路径是一样的吗?

上述问题,我研究好久,调研许多资料,都没得出一个确定结论。很多资料说DMA方式下,数据是由内存直接到外设,
我很难理解这个“直接”是什么情况。
期待行家给个明确回答啊!谢过~

最佳答案

查看完整内容[请看2#楼]

< 直接 > 是相对于 < 间接 > 的 , 说的是不依靠处理器进行数据搬运 , 或者说不依靠处理器执行 < 直接的指令 > 进行搬运 . 这一点你稍微看一下汇编就知道 . 至于怎么搬运 , 各家有各家的处理方法 , 如果不是非常介意时序或者打算了解架构设计 , 可以不用管 . 想知道的话 ,& ...
乐于思考,敢于请教;问人不累,诲人不倦!本人CSDN博客:http://blog.csdn.net/dcx1205 学习嵌入式的同学不要错过啊!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

1436

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2209
金钱
2209
注册时间
2010-12-16
在线时间
190 小时
发表于 2014-11-23 10:28:00 | 显示全部楼层
< 直接 > 是相对于 < 间接 > 的 , 说的是不依靠处理器进行数据搬运 , 或者说不依靠处理器执行 < 直接的指令 > 进行搬运 . 这一点你稍微看一下汇编就知道 .

至于怎么搬运 , 各家有各家的处理方法 , 如果不是非常介意时序或者打算了解架构设计 , 可以不用管 . 想知道的话 , 可以看芯片架构设计的相关资料 .

就像想送个东西到某地方 , 可以亲自送 , 也可以委托快递和物流送 , 除非对后者的运营有兴趣 , 或者非常介意送达时间 , 不然没必要知道后者具体如何安排路线 . 想知道的话 , 可以看快件跟踪 .
技术讨论请发帖 , 需要我回复请点左下的 < 回复 > 让系统通知我 . 本人不通过其他方式返回任何参数.
回复

使用道具 举报

86

主题

417

帖子

0

精华

高级会员

Rank: 4

积分
781
金钱
781
注册时间
2013-2-20
在线时间
0 小时
 楼主| 发表于 2014-11-23 16:08:51 | 显示全部楼层
回复【2楼】shihantu:
---------------------------------
关于“直接”的回答,还是很满意的,比较认同。但我还是很想搞清楚DMA数据传输过程。
按你意思是下面这三种情况都有可能?
1、内存 -> 外设
2、内存 -> DMAC -> 外设
3、内存 -> 数据总线 -> DMA数据缓冲器 -> 数据总线 -> 外设
其实,我想即使是第1种情况的内存到外设,也应该要经过数据总线吧?
看看这道题的答案和解析,是不是不吻合呢?


按解析意思,传输应该为:内存 -> 数据总线 -> DMA数据缓冲区 -> 外设,对吧?
还有外设和DMA是直接连接?传递数据是不需要经过数据总线?
再看下面这张图:


图上意思是:内存与外设间传数据是由 内存-> 数据总线 -> 外设,或者 外设 -> 数据总线 -> 内存
                     而内存到内存间传数据 是要经过DMAC的,即 内存 -> 数据总线 -> DMAC -> 数据总线 -> 内存
这个问题越来越扑朔迷离啊  呵呵!继续期待完美答复!
乐于思考,敢于请教;问人不累,诲人不倦!本人CSDN博客:http://blog.csdn.net/dcx1205 学习嵌入式的同学不要错过啊!
回复

使用道具 举报

2

主题

1436

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2209
金钱
2209
注册时间
2010-12-16
在线时间
190 小时
发表于 2014-11-23 21:33:57 | 显示全部楼层
回复【3楼】可乐虎:
---------------------------------
都说了各家有各家的做法 , 人家还可以把自己的做法申请专利 , 哪个教科书试图一言盖之也太脱节了吧 .

这里是STM32为主 , 就拿STM32说 , 看官方一手资料的F1和F2的DMA框图吧 .

而且对于同一个架构 , 在不同的层次描述 , 结果也是有差别的 . 对于应用者来说 , 1是对的 ; 对于底层开发来说 , 2是对的 ; 对于芯片架构来说 , 3在某些架构的某些层次是对的 .
技术讨论请发帖 , 需要我回复请点左下的 < 回复 > 让系统通知我 . 本人不通过其他方式返回任何参数.
回复

使用道具 举报

11

主题

1044

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3708
金钱
3708
注册时间
2011-5-23
在线时间
2010 小时
发表于 2014-11-23 21:41:06 | 显示全部楼层
建议看一下手册上面的总线矩阵,一般来讲你可以把DMA当成总线上面一个只进行memcpy的CPU。
RT-Thread RTOS 音频,WIFI,蓝牙
回复

使用道具 举报

86

主题

417

帖子

0

精华

高级会员

Rank: 4

积分
781
金钱
781
注册时间
2013-2-20
在线时间
0 小时
 楼主| 发表于 2014-11-28 22:37:06 | 显示全部楼层
谢了 各位,貌似 明白了些
乐于思考,敢于请教;问人不累,诲人不倦!本人CSDN博客:http://blog.csdn.net/dcx1205 学习嵌入式的同学不要错过啊!
回复

使用道具 举报

58

主题

6293

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11472
金钱
11472
注册时间
2014-4-1
在线时间
1296 小时
发表于 2014-11-28 22:40:48 | 显示全部楼层
LZ这个题,应当与STM32芯片无关,是PC方面的。
回复

使用道具 举报

86

主题

417

帖子

0

精华

高级会员

Rank: 4

积分
781
金钱
781
注册时间
2013-2-20
在线时间
0 小时
 楼主| 发表于 2014-11-28 22:43:54 | 显示全部楼层
额  这个确实  和 stm32无关,只是想了解下DMA到底是怎么传输数据的而已
乐于思考,敢于请教;问人不累,诲人不倦!本人CSDN博客:http://blog.csdn.net/dcx1205 学习嵌入式的同学不要错过啊!
回复

使用道具 举报

58

主题

6293

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11472
金钱
11472
注册时间
2014-4-1
在线时间
1296 小时
发表于 2014-11-28 23:09:19 | 显示全部楼层
所以,正如LS几位说的,各家有各家的方法,而且各有各的名词!
DMAC是什么?搞STM32 的人,未必知道。DMA controller ?

就你的试题,我用排除法:
DMA过程,肯定不能占用总线,那样会干扰CPU内核,还叫DMA?所以,答案A,C不对。
答案D,肯定缺点什么东西,51芯片的内存和外设显然不能直接对话,所以错。
只能是B。
回复

使用道具 举报

86

主题

417

帖子

0

精华

高级会员

Rank: 4

积分
781
金钱
781
注册时间
2013-2-20
在线时间
0 小时
 楼主| 发表于 2014-11-28 23:43:57 | 显示全部楼层
回复【9楼】xuande:
---------------------------------
DMA过程应该是 CPU放弃总线,DMA获取总线吧
乐于思考,敢于请教;问人不累,诲人不倦!本人CSDN博客:http://blog.csdn.net/dcx1205 学习嵌入式的同学不要错过啊!
回复

使用道具 举报

2

主题

1436

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2209
金钱
2209
注册时间
2010-12-16
在线时间
190 小时
发表于 2014-11-29 02:46:44 | 显示全部楼层
回复【9楼】xuande:
---------------------------------
仔细看STM32的手册 , 官方说好了会占用总线 , 会干扰CPU内核的 .

题目也没说是51 , 只是说了计算机 , 偷换命题是不对的 .

对于现在的PC架构 , DMA已经不是一个控制器这么简单了 , 本身已经有一个庞大的架构 , 用一两句话描述这个架构显然很困难 .
技术讨论请发帖 , 需要我回复请点左下的 < 回复 > 让系统通知我 . 本人不通过其他方式返回任何参数.
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-23 05:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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