网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61IC中国电子在线 >> DSP >> 代码示例 >> 综合代码 >> 文章正文
  CCS里统计程序运行时间的详细举例         ★★★ 【字体:
CCS里统计程序运行时间的详细举例
作者:Free    文章来源:Free    点击数:    更新时间:2008-1-2    
我们以实例来介绍在CCS里如何统计程序的运行时间,内容修改自CCS的教程,程序见后面:

我们将使用CCS的profiling功能来统计标准puts()函数的执行情况。

1.    选择File→Reload Program。

2.    选择Profiler→Enable Clock。标记“√”出现在Profile菜单Enable Clock项的旁边,该选项使能就可计算指令周期。

3.    在Project View中双击文件hello.c.

4.    选择View→Mixed Source/ASM,灰色的汇编指令紧随在C源代码行后面。

5.    将光标放在下述行上:

    puts(“hello world!\n”);

6.    点击工具栏按钮      (Toggle Profile_point),该C源代码行和第一条汇编指令被用绿色加亮。

7.    向下移动滚动条,将光标停在以下行上:

    for (i = 0; i<BUFSIZE;i++);{

8.   
点击工具栏按钮或者在该代码行上点击右键并从弹出菜单中选择Toggle Profile Pt。

有关测试点的统计数据报告显示自前一个测试点或程序开始运行以来到本测试点所需的指令周期数。在这里,第二个测试点的统计数据报告显示自puts()开始执行到该测试点所需的指令周期数。

9.    选择Profile→View Statistics,窗口底部出现一个显示测试点统计数据的区域。

10.   通过拖拽该区域的边缘可调整其大小。
                                                
11.  点击(RUN)工具栏按钮 或按F5键运行该程序并在提示窗口中键入一串字符。

12.  注意对第二个测试点所显示的指令周期数,它应该大约为2800个周期(显示的实际数目可能会变化),这是执行puts()函数所需的指令周期数。由于这些指令只执行了一次,所以平均值、总数、最大值和最小值都是相同的。

注:目标系统在测试点处于暂停状态

    只要程序运行到一个测试点,它就会自动暂停。所以,当使用测试点时,目标系统应用程序可能不能满足实时期限的要求。(用RTDX则可能实现实时监控,这可参见1.5节。)    

13.  执行以下步骤释放测试期间所占用的资源:

o    进入profiler菜单并撤消 Enable Clock使能。

o    点击鼠标右键从弹出菜单中选择Hide从而关闭Profile Statistcs窗口。

o    进入profiler→profile_points, 选择Dlete All并点击OK。

o    进入View菜单,并撤消 Mixed Source/ASM使能。

程序如下:
/* ======== hello.c ======== */

#include <stdio.h>

#include "hello.h"

#define BUFSIZE 30

struct PARMS str =

{

2934,

9432,

213,

9432,

&str

};

/** ======== main ========**/

void main()

{

#ifdef FILEIO

int i;

char scanStr[BUFSIZE];

char fileStr[BUFSIZE];

size_t readSize;

FILE *fptr;

#endif

/* write a string to stdout */

puts("hello world!\n");

#ifdef FILEIO

/* clear char arrays */

for (i = 0; i < BUFSIZE; i++) {

scanStr = 0 /* deliberate syntax error */

fileStr = 0;

}

/* read a string from stdin */

scanf("%s", scanStr);

/* open a file on the host and write char array */

fptr = fopen("file.txt", "w");

fprintf(fptr, "%s", scanStr);

fclose(fptr);

/* open a file on the host and read char array */

fptr = fopen("file.txt", "r");

fseek(fptr, 0L, SEEK_SET);

readSize = fread(fileStr, sizeof(char), BUFSIZE, fptr);

printf("Read a %d byte char array: %s \n", readSize, fileStr);

fclose(fptr);

#endif

}
               欢迎点击进入:TI德州中文网   (国内唯一针对TI应用的中文技术网站)    文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    CCS 菜单命令精解
    CCS系列讲座之一:CCS的配置…
    CCS系列讲座之二:工程文件的…
    CCS系列讲座之三:CCS中源程…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61IC 湘ICP备05002478号