knightwithwings
驱动牛犊
驱动牛犊
  • 注册日期2003-01-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1503回复:10

急切求助,nt下中断无法捕获!!!

楼主#
更多 发布于:2003-06-24 16:19
自己做的板卡,中断放在7上,边缘触发,isa类型,non-pnp
只有一个中断源,其他的都没有,每秒发出一个脉冲,持续1微秒作为中断源;硬件已经使用示波器看过了,的确有脉冲产生;
我修改了ddk下面的int例子,中断服务历程中设置event,可是怎么也无法收到;使用windriver的wizard,监听不到,在bios把中断7改成legacy isa也是没用;使用TvicHW也捕获不到;修改DS下的一个例子,还是收不到
请高手指点,问题可能出现在那个地方,谢了~~~
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-06-24 16:29
我和你在做一样的项目,我也是WIN2000下的ISA的NT试的驱动,我是用DS做的,中断号是3,边沿触发,中断的申请是成功的,由于硬件没做好,先用SOFTICE来模拟硬件产生中断:genint 33, 可是中断处理例程:ISR就是不执行,真的不知道什么原因!

期待中。。。。。。。。。。。

[编辑 -  6/24/03 by  libin2309]
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
glitter
驱动牛犊
驱动牛犊
  • 注册日期2003-01-08
  • 最后登录2004-04-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-06-24 20:21
你们机子上的中断号开了吗?有没有被占有?我以前遇到过。
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-06-24 20:31
你们机子上的中断号开了吗?有没有被占有?我以前遇到过。


什么意思?我的中断不是共享的只给我的设备用,你说的开是什么意思?
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
knightwithwings
驱动牛犊
驱动牛犊
  • 注册日期2003-01-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-06-24 22:03
在nt诊断器上看,我所用的中断号7并没有被占用
驱动加载之后,也显示出7被我的驱动给用掉

“开”的含义我也不大明白~
因为是non pnp的isa驱动,根本不存在开关中断(今天在论坛上查到的),论坛上有位老兄也提到了bios里面的设置,我也将中断7改成为legacy isa模式,也没有效果

刚才试试softice的模拟中断,结果也是一样。看来应该是环境的问题,因为windriver ,ds 和TVicHW的中断检测例子程序下,我都试过了,模拟出的中断并不能导致响应。

请多多发言,谢谢
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-06-24 22:07
在顶,实在是不知道什么原因,我感觉应该没问题,可是中断处理程序就是不执行,是不是我使用的SOFTICE的命令不对,我的硬件中断号是3,使用SOFTICE: genint 33,在WIN2000系统下是应该产生3号中断吧?


期待。。。。。。。。。。
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-06-25 14:58
不知道帖主的难题解决没有?解决了,告诉兄弟一声,我很着急,看了很多的资料,还是找不到我错在哪里。
我的资源申请是成功的。我用DriverMonitor加载好我的驱动后,在“开始”->“附件”―>“系统工具”―>“系统信息”里能看到我申请的IRQ号,正是3,这说明,我的资源申请是成功的。
用SOFTICE产生这个中断,因我的系统是WIN2000,所以:genint 33这个也没错,我查了很多的资料,都是这么说的,那么我的中断处理程序不执行无非就是两个原因:
1。SOFTICE没有真正产生这个中断,我觉得这种可能性很小,如果真的是,我怎么来验证?
2。我的中断处理程序有问题,我是用DS写的,在驱动初始化地方连接中断,中断到来应自动转入中断处理函数,可是怎么也进不去!


急!!!!!!!
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-06-25 22:13
呵呵,我的中断问题解决了,捆饶了好几天的问题终于解决,回味起来,感觉有些 网友的回复不一定就是对的。

我是在WIN2000下的3号中断,以前好多资料都说用SOFTICE的话这样写:genint 33,我用这个命令死活就进入不了中断例程,后来我换成:genint 51就可以了,能产生中断,进入了中断处理例程。一切正常。51是我的3号中断对应的Vector, 我是用DS写的驱动,在KInterrupt的成员函数Vector()就能得到这个值,或者在SOFTICE中输入命令:irq也能看到该值。DDK我没用过,不知道是什么函数。

特此写出来让那些仍困惑的人早日走出困惑!

仅供参考

我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
knightwithwings
驱动牛犊
驱动牛犊
  • 注册日期2003-01-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-06-30 19:55
呵呵
我出差刚回来
换了一台机子,什么问题都没有~~~

痛苦了半天,就是这么解决的~

你的33应该是十六进制的吧~
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-06-30 21:04
不是十六进制的原因吧,我又用7号中断实验了一下,用GENINT 91可以产生7号中断。
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
Gong_XG
驱动太牛
驱动太牛
  • 注册日期2002-10-01
  • 最后登录2010-11-25
  • 粉丝0
  • 关注0
  • 积分313分
  • 威望46点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-07-01 11:39
好,总结!!!
游客

返回顶部