阅读:958回复:1
Amcc5933同步方式DMA驱动程序问题求助!!
自己做的板子,使用amcc5933作pci接口控制芯片。
把amcc5933设置为pci master方式,使用addon to pci的fifo(以下简称fifo),同步方式,dma传输。基本上用的是这个驱动开发网上的amcc5933pciwdmv1.4.zip那个例子。已经可以传输。但是只要接收频率超过1M,接收到的数据就会有错误! 问几个相关问题,各位老大一定要帮忙啊! 1、addon端对fifo需不需要保护?也就是说,是否需要做逻辑,当fifo满了以后就停止往fifo里写数?我这个板子做保护了。 2、当第一次dma完成,驱动程序进行处理时,addon端数据仍然往fifo里写,而驱动程序已经不从fifo里取数了,这段时间fifo会不会被写满?fifo只有8个32位深。我这个板子1M频率以上时,每次dma完成处理fifo就会被写满。所以需要对fifo做保护。但商业板子的驱动就不会被写满(可惜没有源代码)! 3、现在接收频率超过1M后,收到的数据错误很有规律,大致情况如下(发生错误的次数大概是20-50次/100M) ...11 12 13 2c 2d 2e 2f 18 19 1a ... ~~~~~~~~~~~ 以上2c 2d 2e 2f应该是14 15 16 17,数据源其实就是从00到ff一直循环。考虑到fifo是8个32位深,假如数据在fifo中是这个样子: (10 11 12 13) <- 已取走 14 15 16 17 <- 应该取这4个数 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f <- 实际取的这4个数 30 31 32 33 这又是为什么呢? myemail: regainworld@263.net |
|
|
沙发#
发布于:2002-01-14 17:17
真衰!
1M以下也出错,老板说了,有高手愿意指点的话,可以出点儿血,价格面议。 |
|
|