通过Trace32

时间:2019-03-28 15:31:19

标签: performancecounter tracing trace32 lauterbach

我正在使用包含两个ARM处理器的两个硬件平台:

  • Cortex-A15和
  • Cortex-R5。

我想通过Lauterbach Trace32导出由程序流和BMC值(基准计数器/性能计数器)组成的混合跟踪。为了阐明我的意图,我提供以下综合示例:

Instruction | Cache Misses | ... |
------------+--------------+------
 0x1234     | 1            | 0
 0x1235     | 1            | 0
 0x1236     | 2            | 0 

我试图利用以下命令正确设置跟踪器:

bmc.PMN0 DCMISS
bmc.export ON
bmc.trace ON
bmc.select PMN0

不幸的是,我无法导出包含我设置的BMC的跟踪。 我已经尝试了一些trace.export命令,但没有成功。

有人知道如何产生这样的痕迹吗?谢谢。

1 个答案:

答案 0 :(得分:1)

在Cortex-A和Cortex-R上,通常无法通过CoreSight跟踪传输性能计数器(也称为“基准标记计数器(BMC)”)。
(Btw .:某些Cortex-M可以导出BMC通过table DWT列中列出了这些处理器的列表。

但是可以在运行时读取性能计数器,从而可以在运行时对其值进行采样。

要在运行时对性能计数器进行采样,请使用SNOOP.OFFSNOOP.AutoArm ON启用SNOOPer,并使用SNOOPer.Mode BMC选择BMC计数器。使用SNOOPer.List查看结果。

要将结果保存到硬盘驱动器中以供以后分析,可以使用SNOOPer.SAVE *并稍后使用SNOOPer.LOAD *

重新加载