hmwhmw
驱动牛犊
驱动牛犊
  • 注册日期2002-11-23
  • 最后登录2011-06-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1173回复:2

急!为什么从local端访问DMACSR0(0)会引起9054死掉

楼主#
更多 发布于:2003-08-09 18:34
我以前是在pci端启动中止DMA传输,没有任何问题.后来需要从local端来启动,中止,暂停DMA传输,刚开始时没有问题,在多次访问之后(可能是几百次)就会发生以下两种9054异常现象
1 9054的所有local寄存器的读出值为0xffffffff,驱动程序释放卡之后再也找不到,只能重新启动计算机(我的驱动程序是windriver,此时如果用windriver来寻找会找到9块9054卡,其功能号从0到8,而且vender id号也可能会被改掉)
2 会引起不明来源的中断,中断源始终清不掉,dma传输停止,最后计算机变得巨慢.
上述现象很奇怪,因为我做过测试.不停得读写其他寄存器或在不启动dma得情况下不停写DMACSR0(1)都不存在任何问题.
我已经试了俩星期现象都一样,请高手帮忙解决.
另外还有一个小问题,为什么DMACSR0(1)有时写一遍不起作用,要再写一遍才生效(从local端和pci端都有此现象,有时几十次就会发生一次)
zxw_top
驱动大牛
驱动大牛
  • 注册日期2003-07-18
  • 最后登录2020-04-26
  • 粉丝0
  • 关注0
  • 积分1116分
  • 威望2537点
  • 贡献值0点
  • 好评度202点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2003-08-09 23:51
确定你的外部逻辑正确,最好能仿真一下。
寄存器操作不正确是因为你的外部接口逻辑不正确,破坏了9054内部
的状态机和时序。
hmwhmw
驱动牛犊
驱动牛犊
  • 注册日期2002-11-23
  • 最后登录2011-06-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-08-11 18:55
我是严格按照9054资料上提供的时序来做的,而且读始终没有问题,如果不开始DMA传输写DMA寄存器也没有问题, 如果开始DMA传输去写DMA寄存器有时上千次也不死,如果是时序问题,不应该这样啊。
游客

返回顶部