阅读:1513回复:5
请教关于PCI卡中断的问题
我的卡用8253产生时钟中断,接口芯片为9052。
在驱动中我没有用wdm方式,而是在NT式驱动中 直接搜索总线,找到相应的卡,获取卡的资源, 转换后对端口进行操作。 现在端口的IO没有问题,但是ISR却始终进不去, 用示波器量INTA有周期脉冲(8253方式3),搞 了好久,现在实在不知道怎么办了。 是不是PCI的配置寄存器中有什么位要操作?怎么 操作,请教各位高手!急! |
|
沙发#
发布于:2004-09-24 16:34
不知你是什么操作系统。
你既是NT式的Driver,可能你的设备在Windows中的设备管理器中就没有正常驱动,很多操作系统在设备驱动发生异常时(设备管理器中有“?”或“!”)之类会将BIOS分配给设备的中断清除,可以查看PCI配置空间3C单元即知,正常情况下它是个有效的中断号。 如果上述推断成立,则你的ISR没有调用机会了。 |
|
|
板凳#
发布于:2004-09-25 10:37
我用的Windows2000,原来写的驱动主要是针对ISA卡的,所以
写成NT式的。现在要加入一个PCI的中断卡,为了方便,就直接 在驱动里面加了。 昨天改成wdm式的,测试也是IO没有问题,但是中断进不去, 好像是不是也写(读)一个Local register的中断状态寄存器 (9052 上的offset是4C),但是不知道这个Local register 的基地址是多少?怎么获得?苦闷中,请教! |
|
地板#
发布于:2004-09-27 11:36
PLX8052的确是有这么一个寄存器,可以分别控制PCI/LOCAL中断源,但你说在pci槽上已经量到了INTA信号说明这些寄存器已经开通了中断呀。
这个寄存器的操作也简单,就是PCI设备的第一个IO基地址,它有两个以上的基地址,第一个就是芯片自身用的local register。 |
|
|
地下室#
发布于:2004-09-27 11:51
谢谢回复!
我只是从8253上量到了信号,从槽上不好引线,呵呵。 由于卡是买的别人的,所以我开始时稀里糊涂的。搜索 卡的资源有两段IO地址空间,然后去对照9052的datasheet, 如你所说有一段空间就是Local register的。然后找到那个 INTCSR,捣鼓一下就KO了! 要是你早点回复,我可以省至少一天时间,:)。还有 我的爱机可以少受罪一天(蓝屏不下20次)。:) |
|
5楼#
发布于:2004-09-27 11:57
怎么给不了分了?不好意思了。呵呵
|
|