阅读:3658回复:20
请教如何在windows2000下操作CMOS时钟中断
请教各位高手,我在2000驱动中需要使用CMOS时钟中断,我的程序可以进入中断服务例程一次,然后系统很快就会死机,猜测是中断例程没有返回,或者中断屏蔽位没有清除。请教如何操作,先谢谢了!
|
|
沙发#
发布于:2004-05-31 22:58
一次正常进行了?
是不是你的中断修改了CMOS,导致了硬件中断(也包括异常等),从而出了问题? |
|
|
板凳#
发布于:2004-06-01 08:41
我用IoConnectInterrupt成功后,程序能够进入中断服务例程
一次。刚开始我没有修改CMOS(准备改,但是第一步没完成,呵呵)。我看在vxd中,需要在中断服务例程中调用VPICD_Phys_EOI使 VPICD清除中断标志,不知道是不是这个原因?而且我也不知道在 2000下如何操作! |
|
地板#
发布于:2004-06-01 17:47
能不能上传你的原程序,以便分析
|
|
地下室#
发布于:2004-06-02 10:12
我用IoConnectInterrupt连接中断前,没有屏蔽该中断,也没有申请该中断资源。
mapedVector = HalGetInterruptVector( Isa, 0, IRQ, IRQ, &Irq, &affinity); ntStatus = IoConnectInterrupt( &DeviceExtension->InterruptObject, MarkIsr, DeviceExtension, NULL, mapedVector, Irq, Irq, Latched, TRUE, affinity, FALSE); if(!NT_SUCCESS(ntStatus)) { KdPrint((\"Connect interrupt error.\\n\")); } return ntStatus; 中断服务例程什么都不作,只打印 BOOLEAN MarkIsr(IN PKINTERRUPT interruptObject, IN OUT PVOID Context) { PMARK_EXTENSION DeviceExtension = (PMARK_EXTENSION)Context; if(DeviceExtension->bOnInterrupt) { KdPrint((\"Enter cmos interrupt.\\n\")); } ReadCMOS(STATREG_C); return TRUE; } 现在进入中断没有问题,但是程序运行一会系统就会挂,实在是 想不到办法了,求救! |
|
5楼#
发布于:2004-06-03 08:48
是不是在接管该中断前要先屏蔽该中断?
|
|
6楼#
发布于:2004-06-04 23:27
可以在中断结束时写中断控制字端口0xa1或0x21,告诉系统中断已结束,然后就可以开始下一次中断
|
|
7楼#
发布于:2004-06-07 16:16
可以vxd中访问,我做多时钟中断控制访问端口的驱动网上搜索可以找到DEMO
|
|
8楼#
发布于:2004-06-10 11:11
98下可以用VPICD处理虚拟中断,也做过,但是不知道2000下
怎么安全的处理时钟中断。 现在的中断处理服务程序能够循环进入,但是系统很快就会 挂了,修改0xa1|0x21没试过。 |
|
9楼#
发布于:2004-06-15 08:53
请问一下你的开发环境是直接使用DDK,还是利用了DriverStudio??
|
|
10楼#
发布于:2004-06-15 13:58
请问一下你的开发环境是直接使用DDK,还是利用了DriverStudio?? 从他的代码来看肯定是DDK了。 不知楼主有你有相应的硬件支持吗? |
|
|
11楼#
发布于:2004-06-15 13:59
我不是只CMOS,是有没有除PC机以外的其他卡支持。
|
|
|
12楼#
发布于:2004-06-15 14:00
可以在中断结束时写中断控制字端口0xa1或0x21,告诉系统中断已结束,然后就可以开始下一次中断 怎么到写控制器0xA1或0x21的? 你从什么资料知道的呢? |
|
|
13楼#
发布于:2004-06-17 10:36
我的程序挂接7号中断没有问题,可是挂接中断8时总是失败,
IOConnectInterrupt返回的Status总是失败,请教楼主及各位大侠,是不是在挂接中断8前还要做一些“特殊的处理”??? 谢谢! ――――――急呀!! |
|
14楼#
发布于:2004-06-17 21:53
楼主呀,你能非常“确定”你挂接2000下的 IRQ8成功了吗?我现在挂接7号没有问题,可是8,3都出错,看到网上很多人说2000下的挂接是“不可能”的,我实在需要你的支持和“肯定”啊!!
――――不好意思,实在是急啊! |
|
15楼#
发布于:2004-06-23 09:52
我被这个中断折磨了好些天,目的是为了节省一块时钟板。机器
上只有一个ISA槽,有一块一定得用的ISA板,是D/A的,呵呵。我 查了一些厂家的信息,有4路D/A且带时钟的卡没找到,便宜又带 时钟且是PCI的卡很难找阿,不知哪位大侠有信息提供阿! 我挂接8号中断肯定是挂上了的,而且修改其响应周期也没问 题,最小是122us左右,不死机(呵呵),但是机器时间会跑的飞 快,且令我纳闷的是在有的机器上还改不了CMOS,有CMOS保护跳线 的去掉跳线也不行。 |
|
16楼#
发布于:2004-06-23 09:58
能把你的程序给我一份学习一下吗?lyj_7@sina.com.cn
――非常不好意思地说。 我现在也打算使用外部中断源的方式,找到个PCI_8554不知道对不对头,这方面我刚刚介入,希望多多指教! |
|
17楼#
发布于:2004-06-23 10:03
我被这个中断折磨了好些天,目的是为了节省一块时钟板。机器 你修改了CMOS,系统时钟当然要变了。 你连CMOS中断时是否需要先屏蔽CMOS中断? 是不是直接对0x21和0xA1操作控制中断控制器的? |
|
|
18楼#
发布于:2004-06-23 10:06
我的程序挂接7号中断没有问题,可是挂接中断8时总是失败, IRQ7可以挂吗?这是硬件使用了的两个中断控制器是通过7来连接的吧,难道不是这样的? |
|
|
19楼#
发布于:2004-06-23 10:49
开始我认为是需要屏蔽的,现在也这样认为,呵呵。
但我也不知道那位大侠提供的0xA1和0x21怎么改,只好 自己想着来。 我看书上说的好像是IRQ2(or 3)用来连接两个 中断控制器的,我现在用的ISA时钟卡就是7,呵呵。 |
|
上一页
下一页