如何确定嵌入式程序使用的堆栈空间大小

时间:2016-03-08 21:48:41

标签: c stack embedded stack-trace

我想知道确定程序使用多少堆栈空间的最佳方法是什么,是否有任何技术或工具来生成统计数据,而不是手工计数?

该程序希望分析是代码编写器中的C程序,如果这有所不同。

谢谢

2 个答案:

答案 0 :(得分:5)

您可以使用某种模式填充堆栈ram(例如0xDEADBEEF)然后运行一段时间然后检查堆栈以查看使用了多少。您仍然需要进行分析才能找到最深的路径,然后在应用程序中生成最深层的嵌套中断。

答案 1 :(得分:2)

有一些关于在TI网站here上运行静态分析工具的信息。通常,静态分析会告诉您main()中最深的调用树使用了多少堆栈,但它不包括ISR。您需要手动查看调用树并添加ISR调用深度。如果您有多个ISRS优先级,请不要忘记优先级较高的ISR可以中断较低优先级的ISR。