ckgb
驱动牛犊
驱动牛犊
  • 注册日期2002-09-30
  • 最后登录2003-03-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1385回复:6

何时开中断?

楼主#
更多 发布于:2002-09-30 20:03
在KMD方式下,驱动程序运行到哪一步的时候开中断?是不是
IoConnectInterrupt?

最新喜欢:

hapihapi
wlrwx
驱动小牛
驱动小牛
  • 注册日期2002-04-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望11点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-09-30 23:33
要先完成所有的初始化工作才能开....否则你就完了.... :mad: :mad: :mad:
真正的浪子―――― 是掠过城市的微风,每个人都能感到他的清新,可没有人能留住...... 亦是划过天际的流星,所有人都能仰望他夺目的光芒,没有人能触及...... 风止于森林,流星损于黄土......非凡浪子归于他的最爱......
ckgb
驱动牛犊
驱动牛犊
  • 注册日期2002-09-30
  • 最后登录2003-03-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-10-01 11:47
要先完成所有的初始化工作才能开....否则你就完了.... :mad: :mad: :mad:


我的意思是哪一步或哪一个函数是具有汇编中“开中断sti”的作用
xiaogame
驱动牛犊
驱动牛犊
  • 注册日期2002-10-01
  • 最后登录2002-10-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-10-02 10:08
开关中断应该是系统控制的吧?
ckgb
驱动牛犊
驱动牛犊
  • 注册日期2002-09-30
  • 最后登录2003-03-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-10-02 14:57
开关中断应该是系统控制的吧?


能证明是系统控制的吗?如果能讲出道理来就好了。
minsoft
驱动小牛
驱动小牛
  • 注册日期2001-07-30
  • 最后登录2007-03-06
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-10-08 09:24
你所说的“开中断”应该有多个含义。
1、CPU中断允许:STI是开CPU内部的中断允许,操作系统内核在CPU初始化之后,会允许CPU接受外部的中断请求。如果你看过linux内核的源代码,你就不会表示怀疑。试想,如果CPU不允许接收外部中断,你的键盘能用吗?
2、中断控制器允许。所有PC都有8259中断控制器(集成在芯片组内),外围设备的IRQ都是连到8259,而后由8259连到CPU。8259是可编程器件,端口地址为:20、21、A0、A1,它的编程也由操作系统初始化。
3、设备层的开中断。很多设备的中断也有禁止、使能编程接口。

由以上可见,windows设备驱动程序开发者只需要考虑最后一种,即设备层的开中断。一般是这样的,在刚上电时由硬件保证设备中断是禁止的,驱动程序在得到设备的硬件资源后调用了IoConnectInterrupt 之后的任何地方可以允许设备中断。因为此时准备好了ISR。
值到注意的是,在ISA总线时代,中断由边沿触发,且不记忆中断请求状态,这类设备根本没有开、关中断的概念,也就无所谓什么时候开中断了。
少了e,就少了全部
ckgb
驱动牛犊
驱动牛犊
  • 注册日期2002-09-30
  • 最后登录2003-03-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-10-09 00:17
你所说的“开中断”应该有多个含义。
1、CPU中断允许:STI是开CPU内部的中断允许,操作系统内核在CPU初始化之后,会允许CPU接受外部的中断请求。如果你看过linux内核的源代码,你就不会表示怀疑。试想,如果CPU不允许接收外部中断,你的键盘能用吗?
2、中断控制器允许。所有PC都有8259中断控制器(集成在芯片组内),外围设备的IRQ都是连到8259,而后由8259连到CPU。8259是可编程器件,端口地址为:20、21、A0、A1,它的编程也由操作系统初始化。
3、设备层的开中断。很多设备的中断也有禁止、使能编程接口。

由以上可见,windows设备驱动程序开发者只需要考虑最后一种,即设备层的开中断。一般是这样的,在刚上电时由硬件保证设备中断是禁止的,驱动程序在得到设备的硬件资源后调用了IoConnectInterrupt 之后的任何地方可以允许设备中断。因为此时准备好了ISR。
值到注意的是,在ISA总线时代,中断由边沿触发,且不记忆中断请求状态,这类设备根本没有开、关中断的概念,也就无所谓什么时候开中断了。


讲的好!逻辑清晰,深入细致。
游客

返回顶部