返回信息流由于dma占用了总线,cpu无法得到总线控制权~~~~~,就不能访问外部sdram了
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #8892同步于 2010/6/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖
DMA访问方式CPU会暂停对外部总线访问吗?
bewithyou
2010/6/20镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
一般CPU对资源占用的级别高,如果总线冲突,应该DMA暂停才对。
【 在 bewithyou 的大作中提到: 】
: 由于dma占用了总线,cpu无法得到总线控制权~~~~~,就不能访问外部sdram了
: -
不同的芯片可能会不同吧。DMA有自己的算法的,当然会占用一些CPU的"总线控制权",但并不是全部。在DMA的配置的地方应该有优先级的吧。
【 在 bewithyou 的大作中提到: 】
: 由于dma占用了总线,cpu无法得到总线控制权~~~~~,就不能访问外部sdram了
: --
应该是这样
虽然没有做过深入研究,但是之前做DMA时候顺便了解过,简单说来,DMA传输期间(起码在一次DMA req和一个DMA ack之间)CPU会停止外部总线的访问。也正是由于这个原因,曾经看到过有说:对实时性要求很高的系统中,不用DMA或者一定要慎重使用。
PS:因为没有充分依据,上述观点纯随便说说,欢迎讨论!
是这样的吗?
按微机原理里面的内容,在DMA中断响应后进入DMA传输期间,CPU对总线是没有控制权的吧
【 在 happyman 的大作中提到: 】
: 一般CPU对资源占用的级别高,如果总线冲突,应该DMA暂停才对。
这个要看不同的总线 一般来说如果dma访问的时间太长 中间必然时间空格 cpu就可以在这样空隙中进行访问总线的 当然了 如果某个总线实现是dma期间 cpu就无法访问总线 这样的设计也不见得就是错误的 只是总线吞吐量的大小区别而已 或者说是效率差别
这种东西跟硬件太相关 不同的硬件有不同的设置 主要目标还是增加总线吞吐量