阅读:1885回复:2
请教dma。
DMA微软给的例程是外部有数据,使用writedispatch,先dma写数据(allocatechannel->ma
ptransfer) 然后中断接着处理。 现在我的需求是外部有数据,我在writedispatch里面打开中断,等有中断之后才能使用DMA 传输数据,这个时候该如何处理DMA呢。 |
|
沙发#
发布于:2009-12-06 12:18
应该是可以,
中断到来时,你配置dma就可以,而不是在dispatchwrite里面。比如,你写个startdma()函数,把那些配置dma的工作(如maptransfer)都放在里面。这样,中断一来,你就调用startdma(),然后在Dpc里面把这个write IRP完成掉。 |
|
板凳#
发布于:2009-12-08 11:29
貌似不能的吧,
运行级别不一样的吧。 配置dma的代码放在isr里面调用肯定蓝屏了。 |
|