crazy_cat
驱动牛犊
驱动牛犊
  • 注册日期2002-05-09
  • 最后登录2002-05-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2233回复:5

PCI 板卡的无法锁定求助

楼主#
更多 发布于:2002-05-09 15:25
小弟设计了一个PCI板卡,用windriver在98下编写了驱动程序,大部分时间工作都很正常。可是有时会出现无法锁定目标的错误。
用Windriver调试时(对板卡进行Memory读写),Windriver提示错误为:
can not lock the target.
item 2 has been used .
之后,再也无法写入数据。

重新启动计算机后,一切又正常了,可是过会儿又出问题。

我觉得是程序结束的时候有没有关闭windriver句柄。因为我的程序在运行过程中停止的,也就是程序还没有结束就停了,自然就没有关闭windriver句柄。

这样,问题的关键就是,为什么程序运行中会出问题?
我的程序都是简单的对Memory读写序列。

现在小弟一筹莫展,毫无头绪,请各位大侠把刀相助!
zhuzc
驱动中牛
驱动中牛
  • 注册日期2001-09-01
  • 最后登录2005-04-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-05-09 16:16
用windriver写的驱动,一般是互斥的,因此此错误估计与没有释放句柄有关。
用一下方法试一下:
1.每次执行前,强制释放windriver。
2.经常用扫描函数,看卡是否工作正常。
3.检查是否有内存泄漏。
我是树上的那只鸟,整理着自己的羽毛,看着城市的喧嚣……
crazy_cat
驱动牛犊
驱动牛犊
  • 注册日期2002-05-09
  • 最后登录2002-05-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-05-10 09:52
多谢指点,昨夜苦战一夜,将问题解决了。
原因是PCI读写周期的延时不够,比需要的少几个纳秒,结果便不稳定,导致程序异常退出。
但又出了一个新问题:
    在我的卡工作的时候,所有其他的PCI插卡必须停止工作,网卡则更需禁用。否则,卡就不能稳定工作。
查看系统给他们分配的资源,并没有冲突。
    驱动程序由Windriver编写。



stroll
驱动小牛
驱动小牛
  • 注册日期2001-10-26
  • 最后登录2007-06-08
  • 粉丝0
  • 关注0
  • 积分161分
  • 威望17点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-05-13 09:44
能否将你的驱动发来,我试试.
wuqix
驱动小牛
驱动小牛
  • 注册日期2001-03-23
  • 最后登录2008-06-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-05-13 12:20
以前我也碰到过类似的问题,建议你检查一下中断。
crazy_cat
驱动牛犊
驱动牛犊
  • 注册日期2002-05-09
  • 最后登录2002-05-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-05-14 11:12
多些各位指点!
我现在用一个方法解决了这个问题。我在每次读写后操作后面都加了1ms的延时。这样一来,板卡就稳定了。但是我还是不明白原因。而且,这样一来,板卡都达不到速度的要求。
我在设计中,对每个PCI读写周期都延时了10个PCI时钟周期。没有用中断。
游客

返回顶部