我现在的方法是#include <time.h>
start = clock();finish = clock();overhead = finish - start;start = clock(); /* code part */finish = clock();duration1 = (double)(finish - start - overhead)/ CLOCKS_PER_SEC ;printf("filter time : %f s\n", duration1);
但是测出来的时间比代码实际运行的时间短了许多,感觉并不正确,要如何测量时间呢?
user6041600:
回复 Nancy Wang:
Nancy,
你好,按照你的建议我进行了如下操作:
TSCL = 0;start11 = TSCL;func()end11 = TSCL;cycle = end11 - start11;最后cycle有结果,但是我不太明白这里cycle代表的是什么,具体有多久,能麻烦你给个相关的链接,或者解释一下吗?
Nancy Wang:
回复 user6041600:
取决于CPU的频率,具体的主频请看gel文件中的配置。
user6041600:
回复 Nancy Wang:
Hi Nancy,
我使用的是默认的gel文件,里面是这样写的
Each board designer defines the CLKIN frequency.On the TMDXEVM6678L,LE,LXE EVMs, the CLKIN frequency defined to 100MHz.The values for PLL1_M(39) and PLL1_D(1) defined below are pre-setto provide a 1000MHz operating frequency on the EVMs.
这是不是就意味着如果我使用该gel文件默认的参数,就直接为1000MHz也就是1Ghz?然后运行time = cycles / 10^9,单位是秒,是这样吗?
user6041600:
回复 Nancy Wang:
Nancy,我是用软件仿真测试的,只配置了CMD文件,并没有配置gel,这种情况下是不是默认频率就是1Ghz呢?
Nancy Wang:
回复 user6041600:
如果没有用GEL文件,要在你的程序代码里配置一下,跟CMD文件没关系。
user4927862:
回复 user6041600:
1000MHz也就是1Ghz?然后运行time = cycles / 10^9,单位是秒,是这样吗?