Arm Keil uVision 5模拟器中的内存使用基准测试

Arm Keil uVision 5模拟器中的内存使用基准测试,arm,benchmarking,keil,cortex-m,Arm,Benchmarking,Keil,Cortex M,我有一个Keil uVision项目,我想对其进行广泛的基准测试。代码当前正在模拟器模式下运行。为了可视化结果,我们只需将字符存储在内存区域中,并将所述区域显示为ASCII 这种方法非常适合使用Cortex-M系统计时。但是,我不知道代码的ram使用情况: 理想情况下,我希望模拟器在使用最大ram量时停止执行 我还希望看到最大堆使用率(甚至每个函数) 有没有办法获得这些值?我知道生成系统报告的最大堆栈大小 有没有办法限制uVision模拟器中可用的ram数量 谢谢有一个非常明显的解决方案:只

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

这种方法非常适合使用Cortex-M系统计时。但是,我不知道代码的ram使用情况:

  • 理想情况下,我希望模拟器在使用最大ram量时停止执行
  • 我还希望看到最大堆使用率(甚至每个函数)
有没有办法获得这些值?我知道生成系统报告的最大堆栈大小

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


谢谢

有一个非常明显的解决方案:只需在内存窗口中计算ram。首先找到为堆和堆栈分配的内存区域(通常可以在启动程序集文件中找到)。然后通过调试器中的“内存”窗口查看内存没有更改的地方

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

$TOTAL = $TOP - $BOTTOM
如果看不到边界,那么首先用模式()初始化内存是有意义的