ARM上的堆和堆栈测量

时间:2017-03-23 11:07:20

标签: c arm stack heap

我有一个为ARM编译的C代码,然后在ARM设备上运行。我对程序的内存使用感兴趣,即堆和堆栈分配。

是否有任何工具可以让我测量这些值? 到目前为止,我得到的只是来自armlink的链接器输出,但是使用这些值我无法计算堆和堆栈。 我目前正在使用ARM Workbench IDE,但我找不到任何与此问题相关的内容。

1 个答案:

答案 0 :(得分:0)

一般来说,堆和堆栈的使用都必须测量,你不能静态分析代码并弄清楚它们。

幸运的是,在嵌入式代码中,通常更容易跳入代码中。 malloc()并使其包含测量值,然后您可以使用调试器进行检查。

通过用一些已知数据填充堆栈空间并检查"高水位标记,有时可以更加被动地测量堆栈使用情况。当应用程序用实际数据覆盖填充符时离开。

这两种方法当然都需要运行程序,即使其运行使用这些资源的各种代码路径(同样,这是动态测量,而不是静态分析)。