wwei_wang
驱动大牛
驱动大牛
  • 注册日期2002-06-07
  • 最后登录2006-06-23
  • 粉丝0
  • 关注0
  • 积分77分
  • 威望9点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
阅读:1095回复:0

求救:一个驱动管理多个设备时会不会产生中断重入?

楼主#
更多 发布于:2003-04-16 16:39
问题描述:
小弟准备利用DriverWorks开发基于NT的PCI高速数据采集卡驱动,该驱动需要管理两块相同的采集卡。因此,需要在驱动程序中创建两个设备对象分别处理这两个卡件。另外,为了处理硬件中断,需要在设备类中声明一个中断处理例程ISR。

由于只有一个ISR,当驱动程序正在处理一个卡件的中断(即,还在执行ISR例程,还没有执行DPC)而且该中断级别较低,如果此时另一个卡件也产生中断且中断级别较高,那么这个级别较高的中断肯定会中断先前那个级别较低的中断,当系统处理完这个较高的中断之后,才能处理那个较低的中断。

请问:
(1)上述情况,这会不会产生中断重入的问题,也就是说两个中断同时执行了相同ISR?如果真有这个问题,那么如何解决呢?
( 我们知道,在用DDK开发驱动的时候,每个中断都会有自己的ISR,因此不会产生重入问题)。

(2)如果有中断重入问题,会不会产生处理混乱?我的意思是,第一个卡件的中断处理会由于第二个卡件的介入而出现问题,最终导致数据错误。

我做上述分析的前提依据是:我认为,在驱动程序中,两个中断共同拥有一个ISR,我的想法可能不对:)。

由于我是DriverWorks的初学者,对DriverWorks的思想还不是很熟悉,上述的分析可能存在着很多错误,请各位不要见笑,同时真诚的渴望各位能给我详细的解答。

非常谢谢!

王巍
Apr 16, 2003








Come on, let us drive the world.
游客

返回顶部