libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
20楼#
发布于:2003-05-27 14:58
8237我不能碰,设备只是通过DREQ请求DMA传送,DREQ是否有效,设备自己都做好了,我没办法控制它,那我的驱动我感觉真的是走投无路了!
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
21楼#
发布于:2003-05-27 15:03
比如不是enable/disable DMA DREQ,而是enable/disable AD转换

这样不也可以控制吗?没有数据,就不会半满,也就不会DREQ是否有效 :D
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
22楼#
发布于:2003-05-27 15:41
比如不是enable/disable DMA DREQ,而是enable/disable AD转换

这样不也可以控制吗?没有数据,就不会半满,也就不会DREQ是否有效 :D


你这么热心的回答我,我很感激你!关键是,硬件电路设计上,没有我所要的口地址来让我写控制字,我和它们的联系只是DREQ和DACK,所以,我感觉,我没有办法来判断!真的很郁闷
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
23楼#
发布于:2003-05-28 08:33
你这么热心的回答我,我很感激你!关键是,硬件电路设计上,没有我所要的口地址来让我写控制字,我和它们的联系只是DREQ和DACK,所以,我感觉,我没有办法来判断!真的很郁闷
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
24楼#
发布于:2003-05-29 18:47
我不控制外部设备发请求,可不可以呢?
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
25楼#
发布于:2003-05-30 19:28
问题是要操作的只是设备上的一段内存,不是什么磁盘之类的能发命令的东西,如何start?


是啊, 真的是这么回事!


我还有疑问,就是:编程8237是在什么时候,是在初始化适配器对象的时候还是在初始化传输对象的时候?我理解是在初始化适配器对象的时候,ADAPTER DESTRIPE 里的各项就分别对应编程8237的各寄存器。是不是这样,而真正启动传输是靠外设。当外设发DREQ的时候,比如说是通道5,所以是DREQ5,8237早已准备好了,它给外设发DACK5的同时进行数据的传输,由于微软封装了对8237的底层操作,所以驱动里面是不能直接对8237的寄存器进行直接读写的,我们要控制的只能是设备,所以又回到了我前面的问题,我的板子上的映射内存的DMA数据传输是的条件是当该内存(实际是个双口RAM)半满的时候,发DREQ5信号,我所能控制(判断)的也就是这跟信号线,至于半满的条件,完全由外部设备控制,我没有办法控制,但我没有办法控制它!!!!
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
26楼#
发布于:2003-06-03 16:17
DS上关于系统DMA的驱动是这么描述的:the callback is responsible for telling the device to start requesting DMA service.
DDK中对这句话的解释是:给设备发送合适的命令来启动DMA的传输。

但我还是不理解,怎么控制的外部设备?DMA的启动是外部发DREQ 程序怎么来控制一跟信号线???
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
上一页 下一页
游客

返回顶部