阅读:1390回复:5
两次DMA传输的驱动开发求助
小弟正在开发一高速数据采集卡,其中卡上用的缓存容量为256KB。由于DMA一次只能传输64KW,故小弟设计了一个二次DMA请求电路,即第一次DMA传输过程中,同时进行第二次DMA请求,第二次DMA传输时清除DMA请求。但不知如何编写驱动程序,小弟看过一些书,但那都是一次DMA传送,两次DMA传送连续进行的还没找到。请问各位大狭,在一次DMA传送完毕后,驱动程序能否得到系统有关DMA传送完毕的消息或通知(然后修改DMA中有关基址寄存器的值,以防第二次传送时把第一次的数据覆盖掉),如果能,如何得到?或者是否还有其它能
解决此问题的方法。谢谢! |
|
最新喜欢:dongju... |
沙发#
发布于:2002-06-25 08:55
是bud master DMA方式吗?
如果不是,你怎么可能在DMA的时候,再来一次DMA?! |
|
板凳#
发布于:2002-06-25 09:11
用户被禁言,该主题自动屏蔽! |
|
地板#
发布于:2002-06-25 11:01
小弟用的是ISA卡。由卡上的硬件实现DMA的连续两次请求。
|
|
地下室#
发布于:2002-06-28 05:31
这个问题我认为,正规一点的办法是第一次dma结束的时候触发一个中断。不过不触发中断也行,办法就是用系统dma,在第一次FreeAdapterChannel之前重新MapTransfer一把。
|
|
5楼#
发布于:2004-08-28 14:27
第一次DMA操作结束的时候会自动产生一个中断吧,要不你怎么知道传输结束了。有中断来的时候吧传输开始地址重新设置一次,再发一次DMA请求应该可以了吧。
|
|