gung
驱动中牛
驱动中牛
  • 注册日期2001-06-10
  • 最后登录2008-04-21
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1170回复:11

多卡中断?

楼主#
更多 发布于:2002-07-28 21:58
w2k下,多卡的isr如何知道是那个卡发出的中断?好像没有可用的context啊,难道自己轮询一下状态吗?这种情况通常如何解决呀?
xdjm
驱动中牛
驱动中牛
  • 注册日期2001-04-02
  • 最后登录2024-01-25
  • 粉丝0
  • 关注0
  • 积分34分
  • 威望25点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2002-07-28 22:08
应该需要自己去查询设备状态。
Tom.Cat
禁止发言
禁止发言
  • 注册日期2001-10-10
  • 最后登录2019-07-29
  • 粉丝1
  • 关注0
  • 积分-53792分
  • 威望197411点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2002-07-29 08:36
用户被禁言,该主题自动屏蔽!
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2002-07-29 09:13
要自己去查看设备的知道标志寄存器,来判断是谁的中断。
gung
驱动中牛
驱动中牛
  • 注册日期2001-06-10
  • 最后登录2008-04-21
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-07-29 11:09
由于我的卡通常是四块同时工作,要是两块几乎同时产生中断,那么在isr中可能会检测到两块卡都存在中断标志,会不会出问题呀,如果我在驱动中实现四个isr函数,连接中断时将四个卡分别连结到这四个isr上,可不可以呢,是不是有点笨笨的?  :) :) :)
xdjm
驱动中牛
驱动中牛
  • 注册日期2001-04-02
  • 最后登录2024-01-25
  • 粉丝0
  • 关注0
  • 积分34分
  • 威望25点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2002-07-29 13:01
当然可以了~~~

如果你的卡是以电平触发方式产生中断的话,那么:

当ISR检测到一块卡产生中断,然后就执行相应的ISR代码,并在返回之前清除中断标志,其他的卡就不用管了;如果此时有两块卡同时产生了中断的话,那么当你的ISR返回之后,另外一块卡的中断马上又可以触发其他的ISR了。也就是说,你的ISR的执行应该是串行的,一般来说,一个ISR管一块卡就没有问题了~~~
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2002-07-29 13:31
四快卡用一个中断,然后分别连到不同的ISR上,怎么实现呀?!
xdjm
驱动中牛
驱动中牛
  • 注册日期2001-04-02
  • 最后登录2024-01-25
  • 粉丝0
  • 关注0
  • 积分34分
  • 威望25点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
  • 社区居民
7楼#
发布于:2002-07-29 14:16
中断共享,调用四次IoConnectInterrupt.
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2002-07-29 16:36
然后每个ISR还是要判断是从哪个卡上来的中断?
和一个有什么区别。
xdjm
驱动中牛
驱动中牛
  • 注册日期2001-04-02
  • 最后登录2024-01-25
  • 粉丝0
  • 关注0
  • 积分34分
  • 威望25点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
  • 社区居民
9楼#
发布于:2002-07-29 19:34
没什么区别~~~看你想怎么做了
我喜欢分开来写ISR,每个ISR只管理一块卡,简单
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
10楼#
发布于:2002-07-30 09:46
如果卡一样的话,我当然是一个ISR :D
gung
驱动中牛
驱动中牛
  • 注册日期2001-06-10
  • 最后登录2008-04-21
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-07-30 11:10
因为初始化isr时可以拿到当前的设备对象,我预先把所有设备对象保存起来了,查查就知道是那块卡了,然后根据不同的卡初始化不同的isr,谢谢大家坚定我的信心,呵呵给分。
游客

返回顶部