Over
驱动牛犊
驱动牛犊
  • 注册日期2001-09-26
  • 最后登录2002-08-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1641回复:8

Amcc5933的DMA传输驱动

楼主#
更多 发布于:2002-02-06 11:02

具体情况如下,硬件用windriver作驱动可以比较稳定在4MB/s,几乎不出错。

用从驱动开发网上下载的那个pci-wdm-v1.4.zip驱动程序,无论工作在10MB/s,还是4MB/s,甚至100KB/s,都会产生相同的错误。所以肯定是驱动的问题。
错误的现象如下:
收到的数据中会产生跳变,每次跳变字节数必定为4或12或16或24,最多24字节,而且跳变的内容肯定是其后不远(间隔8或12或16或24个字节)处的数据,如下所示:
。。。03 04 05
“1a 1b 1c 1d ”
0a 0b 0c 0d
0e 0f 10 11
12 13 14 15
16 17 18 19
1a 1b 1c 1d。。。
你看应该是06 07 08 09 的地方变成了1a 1b 1c 1d,而且必然是其后不远处的数据(距离是4字节的倍数)!!


其它情况:
1、如果只把数据从设备dma到用户内存,等dma结束后再把内存中的数据写到硬盘,数据就不会错!!
2、如果dma的同时也写盘,数据会出错,20-50个/400MB!!
3、如果设备和显卡共用一个中断号,即使采用1的方法,当屏幕有变化的时候也会出错!!
4、当采用1的方法时,另外开一个进程写盘,数据也会错!




当我们仰望星空,其实是在回顾历史
lxf
lxf
驱动小牛
驱动小牛
  • 注册日期2001-03-26
  • 最后登录2013-05-04
  • 粉丝4
  • 关注0
  • 积分76分
  • 威望30点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-02-06 15:29
我就是用pci-wdm-v1.4.zip驱动程序改的,很好呀!
你的AMCC那一头连的什么东西呀?
别着急,慢慢来!
sirroom
驱动大牛
驱动大牛
  • 注册日期2001-07-30
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望11点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-02-06 16:07
你自己的5933一定要改一些东东的,应该不可以直接用吧。你看一下硬件设计和例程的不同之处吧,不会完全一样的
111
Over
驱动牛犊
驱动牛犊
  • 注册日期2001-09-26
  • 最后登录2002-08-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-02-07 14:21
我就是用pci-wdm-v1.4.zip驱动程序改的,很好呀!
你的AMCC那一头连的什么东西呀?


amcc的addon端接输入的32位数据,并且有一个cpld产生输入时钟。当cpld检测到fifo满的时候,就停止往fifo里写数,同时外部有一个大的fifo进行缓冲。

因为用windriver在4MB/s下可以正常工作,所以应该是软件的问题。

我对那个例子也改了点儿内容,但主要的流程没变。难道哪里改坏了?

你加入超时取消irp的功能了吗?

要不我把我的代码发给你,帮忙看看好吗?
当我们仰望星空,其实是在回顾历史
sirroom
驱动大牛
驱动大牛
  • 注册日期2001-07-30
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望11点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-02-07 15:38
  真是抱谦,现在一直都很忙,要到了4月份才有空啊。
  我不会用windriver和ds 的工具,现在只会用ddk.
  windriver和ds的都带有5933的,工作也不正常?
  直接发信给lxf吧,他可是高手哦。
  硬件是你自己设计的吗,
  good lucky。
111
Over
驱动牛犊
驱动牛犊
  • 注册日期2001-09-26
  • 最后登录2002-08-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-02-07 22:22
 真是抱谦,现在一直都很忙,要到了4月份才有空啊。
  我不会用windriver和ds 的工具,现在只会用ddk.
  windriver和ds的都带有5933的,工作也不正常?
  直接发信给lxf吧,他可是高手哦。
  硬件是你自己设计的吗,
  good lucky。
 


谢谢你!
已经好了,那个wdm的例子果然好用,是我的应用端写的效率太低了。现在10MB/s可以支持了,只不过前3M字节会丢数,以后就稳定多了。

windriver工作正常,只是效率不高。不过我现在怀疑是自己的代码效率太低了:(

硬件不是我设计的。设计硬件的家伙被我害惨了,真是过意不去!!

现在好了,可以放心回家过年了。谢谢你和lxf这么热心帮助我,祝你们春节快乐!
当我们仰望星空,其实是在回顾历史
lxf
lxf
驱动小牛
驱动小牛
  • 注册日期2001-03-26
  • 最后登录2013-05-04
  • 粉丝4
  • 关注0
  • 积分76分
  • 威望30点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-02-08 09:57
如果设备和显卡共用一个中断号,即使采用1的方法,当屏幕有变化的时候也会出错!

在你的中断里有没有识别处理?
别着急,慢慢来!
Over
驱动牛犊
驱动牛犊
  • 注册日期2001-09-26
  • 最后登录2002-08-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-02-08 21:35
如果设备和显卡共用一个中断号,即使采用1的方法,当屏幕有变化的时候也会出错!

在你的中断里有没有识别处理?  


有识别处理,就是读intcsr检验是否发生中断。问题还是出在客户端,今天有进步了,连初始信息都不会错误了,真爽啊:)
当我们仰望星空,其实是在回顾历史
f1117
驱动牛犊
驱动牛犊
  • 注册日期2007-09-10
  • 最后登录2008-07-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望7点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2007-12-08 15:48
pci-wdm-v1.4.zip驱动程序在站内怎么没有啊!
大虾能给个链接么?
游客

返回顶部