社区导航

 

搜索
查看: 5403|回复: 5

如何测试程序在DSP上的运行时间?

[复制链接]

108

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2010-6-16 11:39 | 显示全部楼层 |阅读模式

如何测试程序在DSP上的运行时间?
1、用CLOCK()准确吗?
2、用CCS上的工具,但如何使用?

    在你要测试时间的程序的两端,用Project Toolbar上的Toggle profile point按键,加上profile print,像断点一样,不过是绿色的。然后在profiler菜单中选择Enable Clock和view clock,在view clock窗口中可以看到程序运行的时间/周期(时钟)数。在view clock窗口中第2行显示的时间就是程序从第1行所在位置到第2行位置的时间,也就是你要测定的时间。这是ti推荐的方法,但我发现数据不准确,比实际的要大。如果用profiler得到的数据比你的要求好要少的话,那就说明已经达到了要求,如果比你的大则比一定达不到要求。

    周期测定可以利用DSP的定时器来实现!在你要测定开始的地方设定定时器并启动,在你结束的地方关闭定时器即可.不过要关闭中断哟?

    用clock函数是可行的,尤其是优化以后的代码很难确定PROFILE的位置。你看一下.asm的输出就知道了,clock没有这个问题。有一点要注意,clock函数如果直接在DSP上跑时间是不准的,必须用load6x命令在DOS或命令行状态下加载,这样结果就准的多。当然,调用函数本身的开销也是要考虑的。

    数汇编代码测程序运行时间的方法是不行的:)因为指令所耗费周期数是不一样的,并不是都是一个周期啊,你数指令条数判断运行时间不准确啊,而且小程序你还可以用数的方法,大的怎么办呢:)看看指令耗费周期数的大致规律啊
指令所耗费周期数规律:主要跟操作多少及有关系,简单的加减乘和逻辑运算一般是单周期,延迟跳转指令也是1周期,复杂的并行运算则因操作数据所在存储区(片内、外)而分成一周期和两周期,改变程序计数器的指令一般如跳转,返回等耗费4周期,软件陷阱则因操作多而需要5个周期。


3714

TA的帖子

0

TA的资源

五彩晶圆(初级)

Rank: 7Rank: 7Rank: 7

荣誉会员勋章

发表于 2010-6-18 11:33 | 显示全部楼层
不看还真不知道,有这么多方法。
工程 = 数学+物理+经济

回复

使用道具 举报

31

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-6-20 22:14 | 显示全部楼层
thank you for your share your idea!

回复

使用道具 举报

404

TA的帖子

0

TA的资源

五彩晶圆(中级)

Rank: 8Rank: 8

发表于 2010-6-22 16:48 | 显示全部楼层

回复 楼主 paradoxfx 的帖子

没那么麻烦!看程序运行的时间不能是这么看的。万一在实时的硬件运行中有中断等各种影响,你还怎么算时间?最正确的就是看那段代码运行的MIPS。

点评

请问怎样看代码运行的MIPS呢?新手,求简要指教!  详情 回复 发表于 2012-10-25 23:25

回复

使用道具 举报

45

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-7-7 11:07 | 显示全部楼层
不看还真不知道,有这么多方法a

回复

使用道具 举报

9

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2012-10-25 23:25 | 显示全部楼层

回复 4楼 flyingdsp 的帖子

请问怎样看代码运行的MIPS呢?新手,求简要指教!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 1/4 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-4-7 01:44 , Processed in 0.211112 second(s), 20 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表