如何确定嵌入式程序使用了多少堆栈 space

How to Determine how much stack space an embeded program is using

我想知道确定程序使用了多少堆栈的最佳方法是什么 space,是否有任何技术或工具可以生成统计信息,而不是手动计数?

该程序希望分析的是 code composer 中的 C 程序,如果有区别的话。

谢谢

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

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