私は、OMAP ZOOM 3430 MDKに付属のTMS32064x + DSPでコードを実行するのに必要なクロック・サイレンスを測定しようとしています。私はDSPチップの "Programmer's Guide"を見て、DSPがclock()機能をサポートしていると言います。私は何私のハードウェアでtime.h clock()が壊れていますか?
は、私はちょうど
start = clock();
for (i=0;i<100;i++){
/* do something here */
}
stop = clock();
total = stop - start;
を行い、その後、ARMプロセッサと、以前に割り当てられた共有メモリへの「スタート」、「ストップ」と「合計」の値を入れて、本当に簡単です。次に、それを単にARM側の画面に表示します。
問題は、私が最初に実行したときに、常に同じ「合計」値を得て、次の実行では常に0になります。 「開始」値と「停止」値は「合計」値と一緒に使用されます。
最も奇妙なことは、彼らは少しパターンに従っているようだということです! Apparantly
# ./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
、クロック()がうまく機能していないが、これが原因で、私は間違って何かのや物のこのタイプは、ハードウェアでサポートされていないためであるならば、私はよく分からない。私は以下の出力を置きます私が持っています。これがなぜ起こっているのでしょうか?
クロックがこれらの値を返すことは間違いありませんか?共有メモリにアクセスする際の問題を見ているだけでしょうか? – Vicky
これをチェックするには、戻り値の1つ、たとえば "start"をあらかじめ定義された値または共有メモリアドレスの値に変更するだけで、画面上で正しいものが得られます。 –
TIには例がありますか?他のコーデックの例では、実行経過時間も計算していたと思います。彼らがclock()APIを使用したかどうかは分かりません。しかし、それはデコーダやエンコーダのサンプルコードで動作するようです。 – simon