gpt4 book ai didi

c++ - 从内存映射寄存器读取

转载 作者:太空宇宙 更新时间:2023-11-04 05:46:18 25 4
gpt4 key购买 nike

我正在使用的处理器架构有一个时间标签计数器,我想读出它来进行性能测量。时间标签计数器是内存映射到地址 0x90000008。我使用以下例程从时间读取值tage 计数器,但是打印输出的差异始终为零。任何人的想法我缺少什么?

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);

非常感谢您的帮助,菲尔

最佳答案

我认为您不需要求助于 assember - 为什么您不能直接阅读:

uint32_t tbr = (*((uint32_t volatile *) 0x90000008))

关于c++ - 从内存映射寄存器读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4377119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com