Can*_*Bal 7 c c++ embedded clock omap
我尝试测量在OMAP ZOOM 3430 MDK附带的TMS32064x + DSP上执行一段代码所需的时钟周期.我看一下DSP芯片的"程序员指南",它说DSP支持clock()功能.
我做的很简单,我就是这么做的
start = clock();
for (i=0;i<100;i++){
/* do something here */
}
stop = clock();
total = stop - start;
Run Code Online (Sandbox Code Playgroud)
然后将"start","stop"和"total"的值放入以前使用ARM处理器分配的共享内存中.然后我只是将它打印到ARM端的屏幕上.
问题是,在我第一次执行时,我总是得到相同的"总"值,然后在我的下一次运行中我总是得到0!"开始"和"停止"值与"总"值一起出现.
最奇怪的是他们似乎遵循了一点点模式!我把输出结果如下:
# ./sampleapp
Total = 63744
Start clock() value = 0x000000f9
Stop clock() value = 0x0000f9f9
# ./sampleapp
Total = 4177526784
Start clock() value = 0x00f9f9f9
Stop clock() value = 0xf9f9f9f9
# ./sampleapp
Total clock cyles = 0
Start clock() value = 0xf9f9f9f9
Stop clock() value = 0xf9f9f9f9
Run Code Online (Sandbox Code Playgroud)
显然,clock()运行不正常,但我不确定这是因为我做错了什么,还是因为我的硬件不支持这种类型的东西.任何想法为什么会这样?
从阅读到目前为止的问题来看,我想说,到目前为止,原始发帖者对此事的了解比贡献者要多得多,并且怀疑 Clock() 已损坏(或不受支持,并返回未定义的结果) DSP 似乎很有可能。