bavid
驱动牛犊
驱动牛犊
  • 注册日期2003-10-02
  • 最后登录2004-09-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2074回复:3

请教DMA传输的问题~

楼主#
更多 发布于:2003-11-05 10:51
我现在使用pci9054的DMA方式传输高速数率的数据, 采用的是DMA Scatter/Gather MODE, 由于数据量很大,所以要不断循环地进行DMA传输, 我的问题是:
   SGL 方式中地descriptor是否要进行一次传输要重新设置一次?是否需要设置不同地内存地址来存储descriptor, 可否每次传输后只设置我需要改变的descriptor(如UserAddr和IopAddr)?

请各位大侠指教~!
wwei_wang
驱动大牛
驱动大牛
  • 注册日期2002-06-07
  • 最后登录2006-06-23
  • 粉丝0
  • 关注0
  • 积分77分
  • 威望9点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-11-05 13:17
SGL 方式中,每次都要根据descriptor对DMA控制器进行内存基地址和数据长度的设置。该地址对应于你要传输的内存地址。
Come on, let us drive the world.
bavid
驱动牛犊
驱动牛犊
  • 注册日期2003-10-02
  • 最后登录2004-09-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-11-06 15:32
感谢回复!

内存基地址就是我定义的存储数据的buffer起始地址, 我在第一次设置descirptor的时候就定义了, 后来的都是一样的,只有IopAddr不同, 是否我只需设置改变了的descriptor成员, 跟上次传输一样的就不用重新再设一次了?
flying
驱动小牛
驱动小牛
  • 注册日期2002-08-01
  • 最后登录2016-06-19
  • 粉丝0
  • 关注0
  • 积分197分
  • 威望70点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2003-11-29 14:25
IOP地址和内存地址并不是同一回事,一个9054Lcoal端的,另一个是主机端的,
游客

返回顶部