通过 Trace32 导出 BMC 跟踪流
Exporting BMC trace flow via Trace32
我正在使用两个包含两个 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
命令,但我从未成功过。
有谁知道如何产生这样的痕迹?谢谢
在 Cortex-A 和 Cortex-R 上,性能计数器(又名 "BenchMark Counters (BMC)")通常无法通过 CoreSight 跟踪传输。
(顺便说一句:某些 Cortex-M 可以导出通过 CoreSight ITM 的 BMC。这些处理器的列表在此 table,DWT 列中列出。
但是可以在 运行 时间内读取性能计数器,这允许在 运行 时间内对其值进行采样。
要在 运行 时间内对性能计数器进行采样,请使用 SNOOP.OFF
和 SNOOP.AutoArm ON
启用 SNOOPer,并 select 使用 SNOOPer.Mode BMC
启用 BMC 计数器。使用 SNOOPer.List
查看结果。
要将结果保存到硬盘以供以后分析,您可以使用 SNOOPer.SAVE *
并稍后使用 SNOOPer.LOAD *
重新加载
我正在使用两个包含两个 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
命令,但我从未成功过。
有谁知道如何产生这样的痕迹?谢谢
在 Cortex-A 和 Cortex-R 上,性能计数器(又名 "BenchMark Counters (BMC)")通常无法通过 CoreSight 跟踪传输。
(顺便说一句:某些 Cortex-M 可以导出通过 CoreSight ITM 的 BMC。这些处理器的列表在此 table,DWT 列中列出。
但是可以在 运行 时间内读取性能计数器,这允许在 运行 时间内对其值进行采样。
要在 运行 时间内对性能计数器进行采样,请使用 SNOOP.OFF
和 SNOOP.AutoArm ON
启用 SNOOPer,并 select 使用 SNOOPer.Mode BMC
启用 BMC 计数器。使用 SNOOPer.List
查看结果。
要将结果保存到硬盘以供以后分析,您可以使用 SNOOPer.SAVE *
并稍后使用 SNOOPer.LOAD *