如何计算在ARM程序中执行的指令数量?

我想通过计算指令来执行我想对应用程序进行的更改的性能度量。 但是,我不熟悉ARM的debugging接口知道如何做到这一点。 有甚至有这样的事情的接口? 如果有必要,我完全有能力潜入内核,但我的直觉告诉我这种事情应该在用户空间中实现。

Linux内核.config CONFIG_PERF_EVENTS

用于访问的用户空间工具是在linux-source/tools/perf/

HW_PERF_EVENTS启用PMU,因此CPU_HAS_PMU被定义为: (CPU_V6 || CPU_V6K || CPU_V7 || XSCALE_PMU) && (!ARCH_OMAP3 || OMAP3_EMU)所以你的芯片可能有它。 否则,Linux会尝试在软件中获得一些统计数据(我想,在一个中断中%pc的采样值)。

ARM Profiler用户指南指出,在实时系统模型中运行时可以创建指令跟踪,并且可以在代码和重播视图反汇编面板中显示已执行的指令。