在Keil uVision 5模拟器中对内存使用进行基准测试

时间:2015-02-16 17:37:18

标签: arm benchmarking keil cortex-m

我有一个Keil uVision项目,我想广泛地进行基准测试。代码当前正在模拟器模式下运行。为了可视化结果,我们只需将字符存储在内存区域中,并将所述区域显示为ASCII。

这种方法非常适合使用Cortex-M系统滴答获得时序。但是,我不知道ram使用代码:

  • 理想情况下,我会让模拟器在使用最大ram数量时停止执行。
  • 我还希望看到最大堆使用量(甚至每个函数)。

有没有办法获得这些价值?我知道构建系统报告的最大堆栈大小。

有没有办法限制uVision模拟器中可用的ram数量?

由于

1 个答案:

答案 0 :(得分:0)

有一个相当明显的解决方案:只计算内存窗口中的内存。首先找到为堆和堆栈分配的内存区域(通常可以在启动程序集文件中找到)。然后浏览调试器中的内存窗口,看看内存没有改变的地方。

Keil通常用0初始化内存,因此可以很容易地看到堆栈边界。 可以按以下方式计算总堆栈使用量

$TOTAL = $TOP - $BOTTOM

如果无法看到边界,首先用模式(see here)初始化内存可能是有意义的。