阅读:1052回复:1
怎么知道9054中断的类型
在PLXMON中定义的函数
PlxIntrEnable( IN HANDLE drvHandle, IN PLX_INTR *plxIntr ); 中plxIntr指定中断的类型 可是我用的WINDRIVER中的函数BOOL P9054_IntEnable (P9054_HANDLE hPlx, P9054_INT_HANDLER funcIntHandler) 中,怎么知道我收到的中断是什么类型的?读取INTCSR进行判断哪位为1吗? 在中断寄存器相应位置1是表示中断吧, 如果我的DRAM每收满一帧数据向PCI发中断, 然后用DMA读取一帧数据, DRAM再收满一帧数据,再中断,再DMA。。。 比如我采用DoorBell中断,就要在一开始使能INTCSR的8、9位, 然后每次DRAM收满一帧数据后,通过向Local-to-PCI Doorbell寄存器写数据发起PCI中断, 我都要先读取INTCSR判断第13位(PCI Doorbell Interrupt Active.)是不是为1,如果是1,我DMA读取数据, 然后将相应的Local-to-PCI Doorbell寄存器中的中断位清掉, 然后DRAM再收集一帧数据再向Doorbell寄存器写数据引起中断。。。 是这样吗? INTCSR的8、9使能位不必每次中断传输都要清零然后再置位吧,等到我不想接收数据的时候清掉它们就可以了吧 说的好象不太清楚,我就是不是很了解中断的过程 还有最关键的就是是不是这样判别中断的类型啊? :( :( |
|
|
沙发#
发布于:2003-10-26 19:00
不知道,帮顶一下 :D
问tom.cat :D |
|