zhangyanping
驱动小牛
驱动小牛
  • 注册日期2003-02-23
  • 最后登录2004-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2739回复:9

如何测试DMA的传输速度问题???

楼主#
更多 发布于:2003-04-24 12:12
我现在想要测试我得DMA传输数据的速度,即每秒钟多少兆,改使用那些API函数阿?

我使用GetLocalTime()函数来测试,结果却超过了PCI总线的最大传输率,所以,肯定不对,希望高手指导一下!

多谢多谢了!
zhangyanping
驱动小牛
驱动小牛
  • 注册日期2003-02-23
  • 最后登录2004-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-04-24 21:34
怎么没有人测试过数据传输率吗?

帮帮忙吧!高分送!!!
jst7792
论坛版主
论坛版主
  • 注册日期2001-12-10
  • 最后登录2006-11-16
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-04-24 21:35
传一段标准大小的数据,看一段时间内完成了多少次或者完成一次用了多少时间.
兄弟们,给点分吧
zhangyanping
驱动小牛
驱动小牛
  • 注册日期2003-02-23
  • 最后登录2004-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-04-25 09:07
多谢版主回答了,我得DMA一次要传输16K数据,我用GetLocalTime()测不出一次传输的时间变化,所以,我就循环执行DMASTART()那个函数,然后看这么多次的时间,可是,结果却超过了理论值,后来,我用GetTickCount()测时间,还是差不多的结果!

我是直接循环的DMASTART()这个函数,因为,就是这个函数里从发DAM启动命令到检测到DMA完成标志,所以,只是循环它就可以了吧?
jst7792
论坛版主
论坛版主
  • 注册日期2001-12-10
  • 最后登录2006-11-16
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-04-25 09:31
应该是可以了,不过不管怎么样都不可能超过总线带宽.
兄弟们,给点分吧
power_lei
驱动小牛
驱动小牛
  • 注册日期2002-05-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-04-26 14:22
你拿API来测试DMA速度?好象不相关吗.

你只能测试出你的程序完成一次操作的响应时间.
jst7792
论坛版主
论坛版主
  • 注册日期2001-12-10
  • 最后登录2006-11-16
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-04-28 09:17
你拿API来测试DMA速度?好象不相关吗.

你只能测试出你的程序完成一次操作的响应时间.

纯粹硬件传输的速度是可以测的,但通常情况下考虑到系统延迟和软件响应延迟的速度更有实际意义.
兄弟们,给点分吧
zhangyanping
驱动小牛
驱动小牛
  • 注册日期2003-02-23
  • 最后登录2004-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-05-01 21:02
多谢各位的支持了,这几天因为WINDRIVER到期了,所以,没有办法调试板子,但是,现在看速度还是很高,超过了PCI总线速度,真不知道怎么回事,试了很多API函数都是一样的结果!

jts7792,能不能给指导一下阿,难道真的是如power_lei说得,我只是测了一个程序的相应速度?

但又好像不大可能阿,因为,程序在执行DMAStart()中,如果,没有接收到DMA完成信号,就不可能结束的,所以,原因到底在那儿阿?
flying
驱动小牛
驱动小牛
  • 注册日期2002-08-01
  • 最后登录2016-06-19
  • 粉丝0
  • 关注0
  • 积分197分
  • 威望70点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2003-05-02 09:19
你用的测时间的函数不对呀!
试试“ftime()”函数吧,在timeb.h文件中有定义的!可以精确到ms级
zhangyanping
驱动小牛
驱动小牛
  • 注册日期2003-02-23
  • 最后登录2004-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-05-02 09:49
是吗?flying,我这就试试!
游客

返回顶部