阅读:2233回复:5
PCI 板卡的无法锁定求助
小弟设计了一个PCI板卡,用windriver在98下编写了驱动程序,大部分时间工作都很正常。可是有时会出现无法锁定目标的错误。
用Windriver调试时(对板卡进行Memory读写),Windriver提示错误为: can not lock the target. item 2 has been used . 之后,再也无法写入数据。 重新启动计算机后,一切又正常了,可是过会儿又出问题。 我觉得是程序结束的时候有没有关闭windriver句柄。因为我的程序在运行过程中停止的,也就是程序还没有结束就停了,自然就没有关闭windriver句柄。 这样,问题的关键就是,为什么程序运行中会出问题? 我的程序都是简单的对Memory读写序列。 现在小弟一筹莫展,毫无头绪,请各位大侠把刀相助! |
|
沙发#
发布于:2002-05-09 16:16
用windriver写的驱动,一般是互斥的,因此此错误估计与没有释放句柄有关。
用一下方法试一下: 1.每次执行前,强制释放windriver。 2.经常用扫描函数,看卡是否工作正常。 3.检查是否有内存泄漏。 |
|
|
板凳#
发布于:2002-05-10 09:52
多谢指点,昨夜苦战一夜,将问题解决了。
原因是PCI读写周期的延时不够,比需要的少几个纳秒,结果便不稳定,导致程序异常退出。 但又出了一个新问题: 在我的卡工作的时候,所有其他的PCI插卡必须停止工作,网卡则更需禁用。否则,卡就不能稳定工作。 查看系统给他们分配的资源,并没有冲突。 驱动程序由Windriver编写。 |
|
地板#
发布于:2002-05-13 09:44
能否将你的驱动发来,我试试.
|
|
地下室#
发布于:2002-05-13 12:20
以前我也碰到过类似的问题,建议你检查一下中断。
|
|
5楼#
发布于:2002-05-14 11:12
多些各位指点!
我现在用一个方法解决了这个问题。我在每次读写后操作后面都加了1ms的延时。这样一来,板卡就稳定了。但是我还是不明白原因。而且,这样一来,板卡都达不到速度的要求。 我在设计中,对每个PCI读写周期都延时了10个PCI时钟周期。没有用中断。 |
|