DSP

【CCS小技巧】CCS查看代码运行周期

2019-07-13 11:54发布

      在单片机开发中,通常需要精确估算代码运行时间,用于对算法优化以及对项目平台选择提供参考,通常算法如果用汇编编写,可以人工计算出运行时间,用C语言编写也可以通过反汇编代码而计算到较为精确的运行时间,但当程序中出现很多函数的调用,以及程序嵌套是,使用人工计算程序运行时间则比较费时费力。在CCS中可以对程序运行时间进行测量。CCS官方给出了两种测试代码运行时间的办法,有兴趣的可以阅读一下官方文档原文 ​1、Profile clock inCCS此方法适用于非Stellaris系列,因为我的Stellaris用这种方法不行,我也就不说了,自己看看文档,很简单) 2、​Watchpointsfor Stellaris in CCS此方法理论上使用TI所有单片机(包括Stellaris),我只测试了Stellaris,其他系列入MSP430有兴趣的可以自己试试。我讲的也是这种方法) 步骤:​ 1、现将程序编译并Debug下载到开发板。然后​点击Window->ShowView->Breakpoints 打开断点窗口 然后在右上角(默认设置)窗口中会多出一个断点窗口(默认有这个窗口可以跳过第一步)  2、点击断点下拉框选择CountEvent  下拉框 弹出提示框后选择ClockCycles,然后点击OK 点击OK 3、经过第二部后在读断点窗口中会多出一个CountEvent断点,在Count Event上鼠标点击右键选择BreakpointProperties对此断点进行配置。 右击断点 将Reset Count onRun改为true,点击OK保存。 修改配置 4、将要测试的代码代码加上断点,如图,假如我要测试程序从1到2需要运行对少时间,则将1所在的行设置断点同时把2设置断点,此时可以看到断点窗口多了两个断点。(注:此时CountEvent显示67941表示程序运行到main函数是已经运行了67941个时钟周期(启动代码消耗),刚加进来CountEvent是的计数值很大,那个值不准,重新Debug程序到开发板时因为之前已经添加了CountEvent,所以计数是准的 添加断点 5、单击运行按钮当程序运行到第一个断点时​​​​CountEvent数值变为93210,说明从main函数运行到这一代码之前一条代码(断点处代码在程序暂停时还没有运行)用了93210个时钟周期,这个始终中期不包括之前启动代码运行消耗的67941个时钟周期,因为之前设置了ResetCount on Run为True,所以每一次点击运行按钮这个值都会清零。 运行1 在此点击运行按钮,当程序运行到2处时自动暂停运行,此时看到count event变为了229938,说明程序从1运行到2用了229938个时钟周期。  6、运行时间计算 由第5步知道从代码1到代码2用了229938个机器中期,假如我设置看法板时钟频率为40Mhz,那这段代码运行时间就是​229938* (1/(40*1000000)=0.00574845,约为5.75MS

​转载自http://blog.sina.com.cn/s/blog_91e79d7f0102vjy1.html