打印

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

[复制链接]
4104|30
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
傲视群熊|  楼主 | 2017-4-12 09:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如何测试程序在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个周期。

相关帖子

沙发
minzisc| | 2017-4-13 21:12 | 只看该作者
使用定时器计算不行吗

使用特权

评论回复
板凳
minzisc| | 2017-4-13 21:18 | 只看该作者
这个CLOCK有具体实现的代码吗?

使用特权

评论回复
地板
kkzz| | 2017-4-14 22:23 | 只看该作者
以前都是单步调试来测试时间

使用特权

评论回复
5
kkzz| | 2017-4-14 22:27 | 只看该作者
在CCS上运行代码,使用断点运行。

使用特权

评论回复
6
pklong| | 2017-4-15 23:02 | 只看该作者
使用调试,执行到断点就知道了。

使用特权

评论回复
7
pklong| | 2017-4-15 23:03 | 只看该作者
在运行步骤能够看到运行的时间

使用特权

评论回复
8
shenmu2012| | 2017-4-16 13:43 | 只看该作者
这个有专门的计时函数可以用的

使用特权

评论回复
9
comeon201208| | 2017-4-16 15:46 | 只看该作者
这个还不是很理解的哈——指令所耗费周期数规律:主要跟操作多少及有关系,简单的加减乘和逻辑运算一般是单周期,延迟跳转指令也是1周期,复杂的并行运算则因操作数据所在存储区(片内、外)而分成一周期和两周期,改变程序计数器的指令一般如跳转,返回等耗费4周期,软件陷阱则因操作多而需要5个周期。

使用特权

评论回复
10
pl202| | 2017-4-16 16:57 | 只看该作者
没有使用过CLOCK这个功能

使用特权

评论回复
11
pl202| | 2017-4-16 17:00 | 只看该作者
一般都是使用断点查看运行的时间。

使用特权

评论回复
12
309030| | 2017-4-17 22:03 | 只看该作者
这个有专门的计时函数可以用的

在哪里呢,怎么设置

使用特权

评论回复
13
backlugin| | 2017-4-17 22:28 | 只看该作者
在profiler菜单中选择EnableClock和viewclock,在viewclock窗口中可以看到程序运行的时间/周期(时钟)数。

使用特权

评论回复
14
qiufengsd| | 2017-4-17 22:28 | 只看该作者
ccs6.0内没有进行那些所谓的clockenable

使用特权

评论回复
15
wengh2016| | 2017-4-17 22:29 | 只看该作者
16
kmzuaz| | 2017-4-17 22:49 | 只看该作者
TI DSP编译环境CCS3.3, 在profiler菜单中,选择Enable Clock和view clock,在view clock窗口中可以看到程序运行的时间/周期(时钟)数。

使用特权

评论回复
17
backlugin| | 2017-4-17 22:49 | 只看该作者
用profile测试代码运行时间

使用特权

评论回复
18
qiufengsd| | 2017-4-17 22:49 | 只看该作者
用定时器进行测试

使用特权

评论回复
19
wengh2016| | 2017-4-17 22:49 | 只看该作者
利用TI CCS3.3(6.1.12版本以上)集成开 发环境自带的函数进出钩子(Function entry/ exit hooks)的新功能

使用特权

评论回复
20
kmzuaz| | 2017-4-17 22:50 | 只看该作者
在view clock窗口中第2行显示的时间就是程序从第1行所在位置到第2行位置的时间,也就是你要测定的时间。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

51

主题

84

帖子

1

粉丝