阅读:2739回复:9
如何测试DMA的传输速度问题???
我现在想要测试我得DMA传输数据的速度,即每秒钟多少兆,改使用那些API函数阿?
我使用GetLocalTime()函数来测试,结果却超过了PCI总线的最大传输率,所以,肯定不对,希望高手指导一下! 多谢多谢了! |
|
沙发#
发布于:2003-04-24 21:34
怎么没有人测试过数据传输率吗?
帮帮忙吧!高分送!!! |
|
板凳#
发布于:2003-04-24 21:35
传一段标准大小的数据,看一段时间内完成了多少次或者完成一次用了多少时间.
|
|
|
地板#
发布于:2003-04-25 09:07
多谢版主回答了,我得DMA一次要传输16K数据,我用GetLocalTime()测不出一次传输的时间变化,所以,我就循环执行DMASTART()那个函数,然后看这么多次的时间,可是,结果却超过了理论值,后来,我用GetTickCount()测时间,还是差不多的结果!
我是直接循环的DMASTART()这个函数,因为,就是这个函数里从发DAM启动命令到检测到DMA完成标志,所以,只是循环它就可以了吧? |
|
地下室#
发布于:2003-04-25 09:31
应该是可以了,不过不管怎么样都不可能超过总线带宽.
|
|
|
5楼#
发布于:2003-04-26 14:22
你拿API来测试DMA速度?好象不相关吗.
你只能测试出你的程序完成一次操作的响应时间. |
|
6楼#
发布于:2003-04-28 09:17
你拿API来测试DMA速度?好象不相关吗. 纯粹硬件传输的速度是可以测的,但通常情况下考虑到系统延迟和软件响应延迟的速度更有实际意义. |
|
|
7楼#
发布于:2003-05-01 21:02
多谢各位的支持了,这几天因为WINDRIVER到期了,所以,没有办法调试板子,但是,现在看速度还是很高,超过了PCI总线速度,真不知道怎么回事,试了很多API函数都是一样的结果!
jts7792,能不能给指导一下阿,难道真的是如power_lei说得,我只是测了一个程序的相应速度? 但又好像不大可能阿,因为,程序在执行DMAStart()中,如果,没有接收到DMA完成信号,就不可能结束的,所以,原因到底在那儿阿? |
|
8楼#
发布于:2003-05-02 09:19
你用的测时间的函数不对呀!
试试“ftime()”函数吧,在timeb.h文件中有定义的!可以精确到ms级 |
|
9楼#
发布于:2003-05-02 09:49
是吗?flying,我这就试试!
|
|