cod*_*rts 1 trace32 lauterbach
我有一个嵌入式系统,其中包含我想要进行基准测试的代码。在本例中,我想知道一行所花费的时间(它是创建一个新对象,启动我们应用程序的其余部分)。
我可以打开“Trace”->“Chart”->“Symbols”并查看用光标选择的区域所花费的时间,但这很麻烦并且不如我想要的那么准确。我还找到了 Perf->Function Runtime,但我正在对新对象的分配进行基准测试,而不是对任何特定函数调用进行基准测试(new在多个位置调用,而不仅仅是感兴趣的行)。
有没有办法使用 Trace32 查看一行代码所花费的实际时间?比单行更进一步:是否有一种方法可以轻松地对两个断点之间的时间进行基准测试?
如果您没有实时跟踪,codehearts使用命令的解决方案就很好。RunTime它适用于任何 Lauterbach 工具和任何目标 CPU。
但是,如果您有实时跟踪(例如带有 ETM 的 CPU 和 Lauterbach PowerTrace 硬件),我建议改用该命令Trace.STATistic.AddressDURation <start-addr> <end-addr>。此命令打开一个窗口,显示两个地址之间的平均时间。如果多次执行两个地址之间的代码,您将获得最佳结果。
ETM.TImeMode.CycleAccurate如果您使用的是支持周期精确定时信息的 ARM Cortex CPU(通常是所有 Cortex-A、Cortex-R 和 Cortex-M7),则可以通过使用该设置(与 一起使用)来显着提高结果的准确性ETM.CLOCK <core-frequency>。
如果您使用的是 Lauterbach CombiProbe 或 uTrace(并且您不能使用ETM.TImeMode.CycleAccurate),我建议您使用该设置Trace.PortFilter.ON。(默认情况下,端口过滤器设置为 PACK,它允许记录更多数据和程序流,但计时精度稍差。)
| 归档时间: |
|
| 查看次数: |
4709 次 |
| 最近记录: |