opera
驱动牛犊
驱动牛犊
  • 注册日期2001-05-10
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2162回复:3

关于自主分配连续地址空间进行dma问题。

楼主#
更多 发布于:2001-08-23 18:45
现有一块9080 pci卡可进行dma.但速率较低,驱动是用2000ddk做的。在分配dma分页寄存器时,ADDRESS_AND_SIZE_TO_SPAN_PAGES函数仅返回2,也就是说一次dma只有2*page_size=8k大小.我认为这是效率较低的问题所在,所以想放弃该函数,而用MmAllocateContiguousMemory自己分配连续地址空间,大约想分配64k,不知这么做可否成功?或dma效率低还会由什么原因造成。谢谢了!
我是宝剑,我是火花。 我愿生如闪电般的耀亮, 我愿死如彗星般的迅忽。
wentao
驱动牛犊
驱动牛犊
  • 注册日期2001-05-25
  • 最后登录2003-12-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-08-23 19:04
可能不太行,由于进行DMA操作时,其DMA所对应的地址空间的有一定的范围,是已指定的,所以一般分配是通过AllocateCommonBuffer来进行的。
wentao
opera
驱动牛犊
驱动牛犊
  • 注册日期2001-05-10
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-08-24 11:55
AllocateCommonBuffer大约可以分多大?这样是不是比直接用系统分配要提高不少效率?虽说多用了资源。系统分配的分页寄存器为2是不是也是正常的?因为如果不在MN_START_DEVICE中申请空间,则后来再分配时,至多也只能分配一两页的连续空间?谢谢!
我是宝剑,我是火花。 我愿生如闪电般的耀亮, 我愿死如彗星般的迅忽。
xinpo
驱动牛犊
驱动牛犊
  • 注册日期2001-09-27
  • 最后登录2003-03-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-09-29 21:39
我也遇到速率低的问题,用逻辑分析仪分析时序发现,每个数据块(块很小,如128 BYTE)的传输分了很多次,且每次之间间隔了较长时间,我想可能是控制9080内部FIFO的寄存器没写对,但不知是哪个寄存器用来控制FIFO的写入和读出?
游客

返回顶部