阅读:1438回复:6
关于中断问题的再次提问
各位老大,我现在出现的驱动中中断的问题很有趣,就是我发送时候产生的中断可以被正常处理,但是接收的时候产生的中断,当中断信号已经产生的时候,就出现一个对话框,写着:
first-chance exception in an unknown module (0xc00000fd:stack overflow)那位老大能说说是怎么回事吗 |
|
沙发#
发布于:2005-02-22 11:17
各位老大能不能说说呀
|
|
板凳#
发布于:2005-02-23 09:44
现在还有就是当接收了后中断信号出现了,有可能机器还重新启动了,那位老大能分析一下呢
|
|
地板#
发布于:2005-02-24 09:58
我的isr的处理代码如下:
ISRHandler( DWORD InstanceIndex ) { DWORD dwRetVal = SYSINTR_CHAIN; UINT8 intstatusvalue=0; intstatusvalue=*(volatile UINT8 *)(s_apCommDesc[InstanceIndex]->Info.PortAddr); intstatusvalue=*(volatile UINT8 *)(s_apCommDesc[InstanceIndex]->Info.PortAddr); *(volatile UINT8 *)(s_apCommDesc[InstanceIndex]->Info.PortAddr+0x1000a)=0x00; *(volatile UINT8 *)(s_apCommDesc[InstanceIndex]->Info.PortAddr+0x1000a)=0x00; if( (InstanceIndex < PCIISR_MAX_INSTANCES)&&(s_apCommDesc[InstanceIndex] != NULL) ) { // increment counter // s_apCommDesc[InstanceIndex]->dwCounter++; // check interrupt state if(intstatusvalue!=0) { // good interrupt s_apCommDesc[InstanceIndex]->dwCounter ++; dwRetVal = s_apCommDesc[InstanceIndex]->Info.SysIntr; } else { // bad interrupt s_apCommDesc[InstanceIndex]->dwCounter &= 0xFFFFFFFE; } // return system interrupt // dwRetVal = s_apCommDesc[InstanceIndex]->Info.SysIntr; } //Exit: return( dwRetVal ); } |
|
地下室#
发布于:2005-02-24 12:57
你可以在你的isr中增加一些调试输出信息,以定位问题到底出在哪里,一段段地查,好在你的代码并不长。
|
|
|
5楼#
发布于:2005-03-01 15:41
wwei_wang老大,你可以告诉我intel8259中断控制器的初始化工作在什么地方做的吗
|
|
6楼#
发布于:2005-03-03 12:03
不知道你的问题是否已经解决?
|
|
|