一、利用TSCL和TSCH来计算时钟周期
DSP开发过程中经常需要测试程序耗时,常用的profiling和clock()方法一般在simulation下使用,真正到了板子上跑时,因为要考虑到数据和被测 code在板子上的存放位置和读取时间,用这种方法测结果就不那么可靠了。其实在c64x+ core上有两个计数寄存器TSCL/TSCH,它们与CPU同频,共同表示一个64-bit数,CPU运行一个cycle,该寄存器就加1,因此可以用 它们来准确的测量cpu在某个执行段中消耗的cycles。一般我们只会用到TSCL这个寄存器,594MHz下,32-bit可以测试到7s,而 TSCH是高32位,除非测试整个工程,一般用不到它。
使用方法
1、长时间宽范围时钟测定
unsigned long long time_before,time_after;
time_before = _itoll(TSCH,TSCL);
/* put your code here */
time_after = _itoll(TSCH,TSCL);
printf(“#excute cycle=%d”,time_after - time_before);
2、短时间(7秒)窄范围时钟测定
time_before = TSCL;
/* put your code here */
time_after = TSCL;
Printf(“#cycle=%d”, time_after - time_before);