阅读:998回复:0
Amcc5933的DMA传输问题求助!
具体情况如下,硬件用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的方法时,另外开一个进程写盘,数据也会错! |
|
|