This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RM57L843:CCS堆栈使用情况视图

Guru**** 2535770 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1095763/rm57l843-ccs-stack-usage-view

部件号:RM57L843

您好,

我的客户正在评估RM57L,并希望检查其代码中的堆栈使用情况。
客户在CCS中使用“堆栈使用情况”视图。
https://software-dl.ti.com/ccs/esd/documents/ccs_stack_usage_view.html

以下是快照的示例。

如您所见,黄色条显示"488 out of 536 bytes used (91 %)"(已使用536个字节,其中488个字节()))。
我知道使用了488个字节,上限是536个字节。
但不清楚为什么限制为536bytes。  在客户配置中,堆栈大小为2048。
536字节来自何处?

顺便说一下,客户尝试将堆栈大小增加到3072,但没有任何变化。

谢谢,此致,
佐治一郎

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,Koichiro-san,

    "堆栈使用情况"视图是 系统 堆栈的静态视图,其信息是在项目构建过程中生成的。 它不提供每个任务的信息。

    536是应用程序的最大系统堆栈使用率。 它是最坏的情况堆栈深度(该函数及其调用的所有函数所使用的最大系统堆栈内存)。  

    如果打开内存分配视图,您将看到在应用程序中定义的堆栈大小(cmd文件):

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    QJ:您好!

    客户想知道定义的堆栈大小是否足够。
    是否有任何工具可以检查运行时实际使用了多少堆栈?

    谢谢,此致,
    佐治一郎

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    估计方法是分配更大的堆栈空间,用Sentinel值填充堆栈,然后监视执行期间实际使用的空间。