JackyWu
驱动小牛
驱动小牛
  • 注册日期2001-10-25
  • 最后登录2011-04-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:2073回复:7

关于中断服务例程

楼主#
更多 发布于:2002-07-10 13:11
我的PCI卡的中断服务例程有几点疑问:
1,对于PCI的中断,基本上都是共享的。但是我在中断服务例程中怎样判断这个中断是否属于本卡的?

2,如果我使用系统DMA通道,那么在数据传输完毕以后,是否有一个中断产生?如果有,则我能否在中断服务例程中截获?系统DMA控制器和我的板卡应该是属于不同的硬件吧,那么他们的中断都可以被同一个中断服务例程截获吗?

最新喜欢:

fly_flyfly_fl...
多年以后,我又回来了。
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-07-10 13:20
1.卡上都有中断状态寄存器的,当某个中断号的中断产生时,所有的中断服务例程都会被调用,所以在中断服务例程刚开始就要判断是不是自己的中断,如果不是马上返回false
2。可以
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
JackyWu
驱动小牛
驱动小牛
  • 注册日期2001-10-25
  • 最后登录2011-04-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-07-10 13:29
如果是系统DMA通道的DMA操作完成以后产生的中断,那么系统也会在板卡上面设置他的中断状态寄存器吗?我感觉好像他们是完全不同的硬件阿,他会自动设置吗?
多年以后,我又回来了。
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2002-07-10 17:46
具体的也不清楚,反正zydcat说的没有错。 :D
SYaMa
驱动牛犊
驱动牛犊
  • 注册日期2002-07-12
  • 最后登录2002-12-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-07-12 12:29
2.如果你的硬件使用系统dma传输的话,这个时候硬件是不会产生中断的,是dma控制器产生中断(如果你的硬件带有fifo的话,则另当别论),你的硬件只要不停地有数据产生,dma控制器就会自动把数据送到内存中去,dma在每次传输完成后都会发一个中断给系统知道,而不是在所有的数据都传输完成时才发中断(因为你的数据可能要分成很多次dma传输,在这种情况下,你就要在你的dmaisr里初始化下一次传输)

[编辑 -  7/12/02 by  SYaMa]
JackyWu
驱动小牛
驱动小牛
  • 注册日期2001-10-25
  • 最后登录2011-04-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-07-13 09:06
 :D :DSYaMa,谢谢您的提示。
但是我还是有一点疑惑:既然系统DMA控制器和我的板卡不是属于同一个硬件,那么系统DMA控制器在完成一次DMA传输以后调用的那个ISR在什么地方设置?我想应该不是在板卡的StartDevice的中断资源里面设置吧?
万分感谢!(虽然我不能给兄弟们一万分)
多年以后,我又回来了。
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-07-14 12:12
连接中断的时候连接不同的isr例程就可以
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
SYaMa
驱动牛犊
驱动牛犊
  • 注册日期2002-07-12
  • 最后登录2002-12-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-07-14 14:31
“pci标准没有从属dma这一概念,相反,本机pci函数要么是总线主控器完成dma,要么它们使用程控I/O。“
                ――引自《Windows 2000设备驱动程序设计指南》
如果你用isa卡,用从属dma,那就把你的板卡使用的中断和你的isr挂接上(IoConnectInterrupt),当dmac完成一次传输后发出中断,系统就会调用你挂接的isr。
游客

返回顶部