TI中文支持网
TI专业的中文技术问题搜集分享网站

C6678 TSC 统计运行时间问题

有个问题请教下TI的专家:

            想在板子上评估下程序运行速度,使用TSCL 统计运行时间,

            函数执行完毕后,再读取TSC的值,之后打印出来运行时间,发现这个64位的时间计数值有一些问题:

            1.  若在IPC中断服务函数内部  在某个处理函数开始前使能TSC,则最终的运行时间统计值是一个负数

             2. 若在IPC中断服务函数外部,比如main函数内使能TSC,        则最终的运行时间统计值是一个10位数(1650350998)。

          请问下这个会是什么原因?

Shine:

请问统计时间的函数是这样写的吗?void main() {    unsigned long long t1, t2;    …    TSCL = 0; // Initiate CPU timer by writing any val to TSCL    …    t1 = _itoll( TSCH, TSCL ); // benchmark snapshot of free-running ctr    my_code_to_benchmark();    t2 = _itoll( TSCH, TSCL ); // benchmark snapshot of free-running ctr      printf("# cycles == %ld\n", (t2-t1)); }

赞(0)
未经允许不得转载:TI中文支持网 » C6678 TSC 统计运行时间问题
分享到: 更多 (0)