lala
驱动中牛
驱动中牛
  • 注册日期2001-04-26
  • 最后登录2006-10-18
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:996回复:1

怎么知道9054中断的类型

楼主#
更多 发布于:2003-10-23 14:02
在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使能位不必每次中断传输都要清零然后再置位吧,等到我不想接收数据的时候清掉它们就可以了吧

说的好象不太清楚,我就是不是很了解中断的过程

还有最关键的就是是不是这样判别中断的类型啊? :( :(
:D拉拉拉,拉拉拉,偶素待业的小青年...
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2003-10-26 19:00
不知道,帮顶一下 :D

问tom.cat :D
游客

返回顶部