| 
					阅读:2346回复:15
				 DMA?什么东西?我真的不懂!!
					 :D :D写PCI的驱动程序,需要用到DMA的传输方式。我却不知道怎么办了。看了一点资料,有一些似是而非的概念。我都不知道对不对,兄弟们帮忙看看,对不对。
 我感觉好像对于PCI设备来说,作DMA基本就是有两种情况。 如果PCI卡本身就可以作为DMA主控,那么在DMA操作的时候,只需要向PCI控制寄存器里面写一些参数,然后就可以启动DMA了。这样的操作不占用主板上的DMA控制器。 如果PCI卡本身是slave。那么就必须使用主板上的DMA通道了。 1,我这些理解是否有错误?请点拨。 2,我用的9054的片子。好像本身可以作为PCI的主控。但是我只想把它作为PCI总线的slave来处理。那么是不是我只能调用系统的DMA通道了? 3,如果用系统的DMA通道的话,那么我在什么地方得到系统的DMA资源?在StartDevice里面吗?IO管理器怎么知道我的板子需要使用DMA通道?难道是在PCI状态的寄存器里面可以设定吗? 哈哈。。。。乱七八糟一堆问题。兄弟们不要嫌分少啊。 :D :D | |
| 最新喜欢: znsoft 
 | 
| 沙发#发布于:2002-07-01 14:27 :D :D写PCI的驱动程序,需要用到DMA的传输方式。我却不知道怎么办了。看了一点资料,有一些似是而非的概念。我都不知道对不对,兄弟们帮忙看看,对不对。 1 正确,如果你的卡上有dma控制器,当然可以不用主板上提供的dma通道 2 可以吧 3 资源是在startdevice中得到,需要申请dma适配器对象,用IoGetDmaAdapter | |
| 
 | 
| 板凳#发布于:2002-07-01 14:29 
					1、对。
 2、是。有9054,你可以不用它。 3、有一些函数,用来使用DMA的。一般在在你的StartIO里面,申请系统的DMA资源。如果一次不够,在DMA完了(中断)时,再设置DMA,再来一次。 | |
| 地板#发布于:2002-07-01 15:25 
					请教wd怎么玩? :D				 | |
| 
 | 
| 地下室#发布于:2002-07-01 15:42 
					 :D :D两大高手都出手了。哈哈。。。。我有救了!
 既然系统DMA通道是通过IoGetDmaAdapter来申请,那么在StartDevice里面获得资源的方式是不是和其他资源类型有着很大的不同了? 其他资源类型,如mem,io等,都是在总线驱动程序读取PCI状态寄存器以后,了解到设备需要某些资源,然后再在StartDevice里面通过Irp里面的参数传递进来通知我们的驱动程序具体分配了什么资源。 而DMA资源则需要在StartDevice里面申请并获得。 对不对啊? | |
| 
 | 
| 5楼#发布于:2002-07-01 16:37 
					关于dma操作,主控和从属的有很多地方不太一样
 具体的还是要看书, walter oney那本书的第七章最后一节 仔细研究一下,会有收获的。 | |
| 
 | 
| 6楼#发布于:2002-07-02 14:18 
					刻苦钻研中。。。。。ZZZzzzz............. :D :D :D				 | |
| 
 | 
| 7楼#发布于:2002-07-02 16:31 
					几位高手可不可以帮我做一做Modem卡for XP的驱动啊?
 | |
| 
 | 
| 8楼#发布于:2002-07-02 16:56 
					我可不是高手
 不过怎么帮你呀 | |
| 
 | 
| 9楼#发布于:2002-07-03 15:05 
					我把inf文件放上来,高手们帮我看看怎么改?
 我的inf文件在附件中 | |
| 
 | 
| 10楼#发布于:2002-07-03 15:40 
					你的是VxD的驱动?
 光改INF是没有用的,VxD在XP下就不用了。 | |
| 11楼#发布于:2002-07-03 20:50 
					 :D :D是啊,是啊,赫赫。。。。arthurtu说的很对阿,呵呵。。。。。(其实我不懂VxD,瞎凑合。)
 :D :D :D :D | |
| 
 | 
| 12楼#发布于:2002-07-04 09:33 :D :D是啊,是啊,赫赫。。。。arthurtu说的很对阿,呵呵。。。。。(其实我不懂VxD,瞎凑合。) faint :D | |
| 13楼#发布于:2002-07-04 11:35 
					那要怎么改?XP下是用sys吗?
 | |
| 
 | 
| 14楼#发布于:2002-07-04 12:00 
					是吧				 | |
| 15楼#发布于:2002-07-05 15:45 
					回答得这么简洁?能不能详细点?
 | |
| 
 | 
 
							
 
				 
				 
				
 
				