bspbsp
驱动牛犊
驱动牛犊
  • 注册日期2002-01-15
  • 最后登录2002-08-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1515回复:5

求助:多 busmaster DMA通道的WDM编程

楼主#
更多 发布于:2002-08-12 13:05
自己做的PCI卡的单个DMA通道我已经调通,能够连续接收数据了,
对于双通道的,由于在应用程序中是用readfile函数读卡的,该函数
没有办法设置读哪一个通道,只能提供数据缓冲区的地址和长度。
有没有什麽好的方法处理呢?请大虾帮忙!!!!
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2002-08-12 13:39
用deviceiocontrol来读呢?
bspbsp
驱动牛犊
驱动牛犊
  • 注册日期2002-01-15
  • 最后登录2002-08-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-08-12 19:50
要求实时接收处理的,我是连续发送16个读IRP,然后等待返回事件,
返回了就写盘
驱动程序收到read irp就初始化DMA传输对象,进入dma回调程序,开始DMA传输,在中断服务程序中可以通过寄存器判断是哪个通道收满了数据,是不是可以在返回前,在数据缓冲区中增加一个标志通道
的字节?怎麽增加呢?
Jannie
驱动牛犊
驱动牛犊
  • 注册日期2002-07-22
  • 最后登录2002-11-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-08-15 18:25
你的数据传输量是多达? dma size?用scatter/gather了吗?我也正在考虑交替使用两个dma channel,但不知道行不行?
bspbsp
驱动牛犊
驱动牛犊
  • 注册日期2002-01-15
  • 最后登录2002-08-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-08-16 21:27
dma size是8k,用了scatter/gather,如果两路信号的速率一样,交替读是没问题的,我试过了,如果不一样的话,就比较麻烦,我想还是应该由驱动程序在完成DMA传输后,返回一个通道信息,具体怎麽返回我还没想出来,难道每个读IRP后面都要跟个deviceiocontrol?
而且我用的是异步读,我总觉得deviceiocontrol应该用在立即就能
返回的场合,不知道我想的对不对?
fire_ice
驱动牛犊
驱动牛犊
  • 注册日期2005-06-08
  • 最后登录2005-06-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-06-08 21:00
bspbsp:
小弟是新手,最近接到上司一个数据采集卡的驱动开发任务,要求用DMA方式,但不知如何开发,听仁兄说已经调通了单通道的DMA方式,不知能否将源代码给小弟发过来,让小弟参考学习一下,非常感谢,我用的模式是WDM,万分感谢!我的邮箱:fire_ice666@sina.com
游客

返回顶部