0
私が使用しているプロセッサアーキテクチャには、パフォーマンス測定を行うために読みたいタイムタグカウンタがあります。時間タグカウンタは、 アドレス0x90000008にマップされたメモリです。私は時刻 からの値を読むために次のルーチンを使いましたが、プリントアウトの差は常にゼロです。誰でもアイデア 私は行方不明ですか?メモリマップドレジスタからの読み出し
char* const ADDR = (char *) 0x90000008;
unsigned long cycle_count_val() {
unsigned long res;
asm volatile (
"set ADDR, %%l0 \n\t"
"ld [%%l0], %0 \n\t"
: "=r" (res)
:
: "%l0"
);
return res;
}
....
unsigned long start = cycle_count_val();
execute_benchmark();
unsigned long end = cycle_count_val();
printf("Benchmark performance(in clock cycles) = %ld \r\n", end-start);
あなたの助け、 フィル
はそのよろしいですあなたのタイムスタンプは 'char'ですか? – ruslik
いいえ、それは32ビットのメモリ位置(MSBは0)の30ビットの値です。 –