20楼#
发布于:2003-05-27 14:58
8237我不能碰,设备只是通过DREQ请求DMA传送,DREQ是否有效,设备自己都做好了,我没办法控制它,那我的驱动我感觉真的是走投无路了!
|
|
|
21楼#
发布于:2003-05-27 15:03
比如不是enable/disable DMA DREQ,而是enable/disable AD转换
这样不也可以控制吗?没有数据,就不会半满,也就不会DREQ是否有效 :D |
|
22楼#
发布于:2003-05-27 15:41
比如不是enable/disable DMA DREQ,而是enable/disable AD转换 你这么热心的回答我,我很感激你!关键是,硬件电路设计上,没有我所要的口地址来让我写控制字,我和它们的联系只是DREQ和DACK,所以,我感觉,我没有办法来判断!真的很郁闷 |
|
|
23楼#
发布于:2003-05-28 08:33
你这么热心的回答我,我很感激你!关键是,硬件电路设计上,没有我所要的口地址来让我写控制字,我和它们的联系只是DREQ和DACK,所以,我感觉,我没有办法来判断!真的很郁闷
|
|
|
24楼#
发布于:2003-05-29 18:47
我不控制外部设备发请求,可不可以呢?
|
|
|
25楼#
发布于:2003-05-30 19:28
问题是要操作的只是设备上的一段内存,不是什么磁盘之类的能发命令的东西,如何start? 是啊, 真的是这么回事! 我还有疑问,就是:编程8237是在什么时候,是在初始化适配器对象的时候还是在初始化传输对象的时候?我理解是在初始化适配器对象的时候,ADAPTER DESTRIPE 里的各项就分别对应编程8237的各寄存器。是不是这样,而真正启动传输是靠外设。当外设发DREQ的时候,比如说是通道5,所以是DREQ5,8237早已准备好了,它给外设发DACK5的同时进行数据的传输,由于微软封装了对8237的底层操作,所以驱动里面是不能直接对8237的寄存器进行直接读写的,我们要控制的只能是设备,所以又回到了我前面的问题,我的板子上的映射内存的DMA数据传输是的条件是当该内存(实际是个双口RAM)半满的时候,发DREQ5信号,我所能控制(判断)的也就是这跟信号线,至于半满的条件,完全由外部设备控制,我没有办法控制,但我没有办法控制它!!!! |
|
|
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 程序怎么来控制一跟信号线??? |
|
|
上一页
下一页