【问题标题】:Heap & Stack Usage ARM Cortex M3, M5堆和堆栈使用 ARM Cortex M3、M5
【发布时间】:2017-08-21 11:04:20
【问题描述】:

我想在基于 Renesas S3A7 ARM M3 的控制器上运行某些数学算法时测量堆栈和堆的使用情况。 有什么方法或程序可以测量执行某些功能时使用的最大内存吗?

【问题讨论】:

  • 为什么要在微控制器上堆?听起来像是一个破碎的设计。对于堆栈使用,您可以使用类似 valgrind 的方法
  • 您的编译器可能会提供一个设置来检查或记录堆栈达到的最深。如果你使用的是堆,你可以进入你的 malloc/sbrk 代码并添加一些东西来跟踪你分配的最远的内存。
  • 什么是 cortex-m5?
  • 感谢 old_timer 的回复。我正在使用 ARM Cortex M3。
  • 我的意思是说 M7。错字是否说 M3。

标签: memory arm profiling cortex-m3 heap-profiling


【解决方案1】:

要测量堆栈或堆的使用情况,您必须在使用前使用填充值初始化该区域,您可以选择下面列出的一个

https://en.wikipedia.org/wiki/Hexspeak

例如: 0xBAADF00D 或 0xDEADBEEF。

这个想法是计算剩余的填充值的数量来估计最大使用量。

【讨论】:

    猜你喜欢
    • 2016-03-01
    • 1970-01-01
    • 2015-07-05
    • 2017-06-23
    • 2011-07-13
    • 1970-01-01
    • 2012-05-15
    • 2014-06-08
    • 1970-01-01
    相关资源
    最近更新 更多