zhongdao
驱动牛犊
驱动牛犊
  • 注册日期2003-01-16
  • 最后登录2008-05-12
  • 粉丝0
  • 关注0
  • 积分60分
  • 威望7点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
阅读:1051回复:3

DMA问题,请高手指点

楼主#
更多 发布于:2004-01-10 12:29
USB设备使用DMA传输,在驱动程序中该如何做?是不是只需设为直接IO AND 在UsbBuildInterruptOrBulkTransferRequest中传 Irp的MdlAddress就可以了?需不需要操作DMA适配器对象?
huoxy
驱动小牛
驱动小牛
  • 注册日期2002-03-01
  • 最后登录2014-02-24
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望4点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-01-12 11:31
个人认为:
DMA只是对于硬件来说的,DMA控制器在外部逻辑和USB芯片(端点)之间传输数据,端点可以是块传输,也可以是同步。

驱动程序不需要控制外部的DMA控制器。
好好学习,天天向上,做一个乖宝宝。
zhongdao
驱动牛犊
驱动牛犊
  • 注册日期2003-01-16
  • 最后登录2008-05-12
  • 粉丝0
  • 关注0
  • 积分60分
  • 威望7点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-01-12 12:14
多谢huoxy,另外我还有一个问题:
我的设备是一个读卡器,
我要读取设备里的数据时,首先得写一个命令通知设备从哪个位置开始给数据
但是当我把命令写入后马上读数据时就会把刚写入的命令读出来,读与写使用不同通道
如果我在应用程序中使用Sleep一定时间之后则不会,不知有没有人碰到类似问题,怎么解决?
会不会是驱动的问题?但USB的驱动基本上都交于USBD处理的啊
huoxy
驱动小牛
驱动小牛
  • 注册日期2002-03-01
  • 最后登录2014-02-24
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望4点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-01-12 16:09
多谢huoxy,另外我还有一个问题:
我的设备是一个读卡器,
我要读取设备里的数据时,首先得写一个命令通知设备从哪个位置开始给数据
但是当我把命令写入后马上读数据时就会把刚写入的命令读出来,读与写使用不同通道
如果我在应用程序中使用Sleep一定时间之后则不会,不知有没有人碰到类似问题,怎么解决?
会不会是驱动的问题?但USB的驱动基本上都交于USBD处理的啊


没有遇到过你所说的问题,硬件不是你设计的吧,我估计固件出问题的可能性居多,具体说不来,不好说。
好好学习,天天向上,做一个乖宝宝。
游客

返回顶部