小编use*_*228的帖子

使用硬件计数器测量ARM Cortex-A8上的执行时间

我使用的是Exynos 3110处理器(1 GHz单核ARM Cortex-A8,例如在Nexus S中使用),并尝试测量特定功能的执行时间.我在Nexus S上运行了Android 4.0.3.我尝试了这个方法

[1] 如何测量ARM Cortex-A8处理器中的程序执行时间?

我加载了内核模块以允许在用户模式下读取寄存器值.我使用以下程序来测试计数器:

static inline unsigned int get_cyclecount (void)
{
    unsigned int value;
    // Read CCNT Register
    asm volatile ("MRC p15, 0, %0, c9, c13, 0\t\n": "=r"(value));
    return value;
}


static inline void init_perfcounters (int do_reset, int enable_divider)
{
    // in general enable all counters (including cycle counter)
    int value = 1;

    // peform reset:  
    if (do_reset)
    {
        value |= 2;     // reset all counters to zero.
        value |= 4;     // reset …
Run Code Online (Sandbox Code Playgroud)

c arm performancecounter time-measurement cortex-a8

7
推荐指数
1
解决办法
4940
查看次数

标签 统计

arm ×1

c ×1

cortex-a8 ×1

performancecounter ×1

time-measurement ×1