阅读:1438回复:7
pci设备驱动程序的问题
大家好:
一用户使用windriver驱动程序开发pci设备,为什么一产生中断 计算机就重新复位了?是什么原因,高手指点一下. 在中断服务程序中已经清了中断的,是中断没有正确挂接的问题吗, 还是windriver没有注册好,没有提供中断入口的问题 |
|
沙发#
发布于:2003-08-07 14:53
是不是在中断服务程序的开始处未清除中断标志位。
zxw_top,我想在准备学习vxworks,可否将你的vxworks下驱动的简单的源代码给我发一份。 |
|
|
板凳#
发布于:2003-08-07 16:09
如何清楚标志位呢?
兄台能否说明一点? 我晚上再把程序的详细中断部分发出来,请帮我看看。希望你晚上能上。另外再送10分。 不知道你需要VXWORKS什么设备的驱动源码,你说详细一些,再附上EMAIL,我好发给你。 |
|
地板#
发布于:2003-08-07 16:32
如何清楚标志位呢? 这只是我的猜测,以前我做pci9054的驱动时,pci9054产生中断,但是其中断服务程序并未清除9054的中断标志位,结果中断服务程序反复执行,导致死机。不知你的以后的情况是否一样。 另外,我想编写vxworks下的pci板子的驱动,但是我对vxworks下驱动的机制还不是很清楚,特别是驱动的建立(iosdrvinstall)和设备的产生,有人说调用iosdrvstall的函数,例如mydrv应该包含在 syslib.c中,但是我不知道是否所有的驱动的初始化函数都包含在一个syslib.c中。当然还有其他的一些疑问,所以想找一份别人做过的、可以的vxworks下驱动的源代码看一看。都说源代码是最好的老师! 除了周末,一般我一直在网上! fwzfwz1@163.com [编辑 - 8/7/03 by fwzfwz1] |
|
|
地下室#
发布于:2003-08-07 16:41
这个驱动程序的问题是收到中断就重新启动了,没有死机。
vxworks下面的驱动程序我有,可以给你参考参考。 告诉我你的邮件地址,我发给你。 |
|
5楼#
发布于:2003-08-07 16:46
这个驱动程序的问题是收到中断就重新启动了,没有死机。 重启,那我不太清楚,你可以将你的中断服务程序贴上来让大伙看一看,给你分析一下。 我的邮箱:fwzfwz1@163.com |
|
|
6楼#
发布于:2003-08-07 17:00
我现在贴不上,是一个客户的,晚上才发。
我晚上贴上来。 |
|
7楼#
发布于:2003-08-07 18:24
中断服务程序已经清中断了,可能是没有进入中断服务程序,一直产生中断,导致系统复位。
这是中断挂接程序,由windriver产生的 //Enable mpeg interrupt if ( MPEG_IntIsEnabled(hMPEG) ) { MPEG_IntDisable(hMPEG); }else{ if ( !MPEG_IntEnable(hMPEG, AVE2KLIB_InterruptMpegHandlerRoutine) ) goto exit1; } 这是中断服务程序: void AVE2KLIB_InterruptMpegHandlerRoutine(MPEG_HANDLE hMPEG, MPEG_INT_RESULT *intResult) { int i; MPEG_SHARE* pstCurMpegShare= (MPEG_SHARE*)hMPEG->pMpegShare; MPEG_WriteDword(hMPEG,MPEG_AD_BAR0,0x4,0x2); // 清中断 return ; } 中断服务程序只是做了清中断一件事 vxworks pci驱动程序已发给你,你查收一下。 |
|