我正在使用包含两个ARM处理器的两个硬件平台:
我想通过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
命令,但没有成功。
有人知道如何产生这样的痕迹吗?谢谢。
答案 0 :(得分:1)
在Cortex-A和Cortex-R上,通常无法通过CoreSight跟踪传输性能计数器(也称为“基准标记计数器(BMC)”)。
(Btw .:某些Cortex-M可以导出BMC通过table DWT列中列出了这些处理器的列表。
但是可以在运行时读取性能计数器,从而可以在运行时对其值进行采样。
要在运行时对性能计数器进行采样,请使用SNOOP.OFF
和SNOOP.AutoArm ON
启用SNOOPer,并使用SNOOPer.Mode BMC
选择BMC计数器。使用SNOOPer.List
查看结果。
要将结果保存到硬盘驱动器中以供以后分析,可以使用SNOOPer.SAVE *
并稍后使用SNOOPer.LOAD *