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.

[参考译文] CC3235SF:如何在系统运行时观察每个任务的堆栈?

Guru**** 2559190 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1068012/cc3235sf-how-to-observe-the-stack-of-each-task-when-the-system-is-running

部件号:CC3235SF

您好,

当我的系统运行时,我应该如何观察每个任务的堆栈使用情况? 我发现一篇相关文章说 ROV 可以用于观察堆栈,但我使用的是 FreeRTOS 操作系统。 当我导入带有 ROV 的仪表板时,我发现我的项目中没有 ROV.json。 ROV 视图是否仅可用于 tirtos?

此外,我发现我的主线程在堆栈使用中已被100%使用。 这是什么意思? 这是否会对整个系统造成任何损害?

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

    ROV 将与 TI RTOS 一起使用。 如果您需要有关如何使用它的帮助,请参阅下面链接的视频和文档:

    https://training.ti.com/how-use-runtime-object-view 

    https://dev.ti.com/tirex/explore/node?node=AEwahlHnEy6Wj4XMYzQTrQ__fc2e6sr__LATEST (Simplelink Academy >实时操作系统> TI-RTOS 基础知识)

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

    但我使用 FreeRTOS。 我应该如何使用 ROV 并观察每项任务中的堆栈使用情况?

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

    您好,

    用于 FreeRTOS 的永不版本 CCS 也支持 ROV -请参阅部分。 另一个选项可以是在运行时使用 FreeRTOS API (vTaskGetInfo() usStackHighWaterMark)

    1月

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

    您好,

    您能告诉我下图中对主线程使用100%和黄色意味着什么? 有什么危害? 如何修改?

    谢谢。

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

    您好,

    堆栈使用情况视图在链接时显示堆栈的静态视图。 更多详细信息请参见此处。 因为您希望在运行时看到堆栈峰值,所以此工具不能满足您的需要。 您应该使用 ROV。

    1月

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

    但我使用 FreeRTOS 操作系统。 我应该如何使用 ROV?

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

    您好,

    是的,您可以将 ROV 与 FreeRTOS 配合使用。 请参阅我上一个答案中的链接

    1月

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

    您好,

    如何增加系统堆栈大小?

    谢谢。

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

    您好,

    TI 编译器的链接器文件(*.cmd)或 GCC 的链接器文件(*.lds)...

    1月

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

    您好,

    直接在此处修改是否可以?

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

    您好,

    当然,可以增加链接器文件中的堆栈大小。 但不要忘记,该堆栈与 main()和 ISR 上下文相关。 与任务的堆栈无关。

    1月

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

    您好,

    我已经在这里,.cmd 文件中的堆栈大小会增加,但我的维护人员仍然是100%。 为什么?

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

    您好,

    这取决于您的代码。 不要忘记,此工具显示的是堆栈的静态使用情况,而不是运行时的实际使用情况。 在静态分析中使用100%堆栈对于运行时堆栈的使用可能并不意味着任何错误。

    如果您不知道堆栈使用工具的确切含义,请不要使用该工具。 使用 ROV 确定运行时应用程序的运行情况。

    1月

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

    您好,

    修改系统堆栈后,处于静态状态的堆栈不会更改? 我为什么要修改它? 它为100%,大小为2212字节。

    谢谢。

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

    您好,

    更改链接器文件内的堆栈大小并编译代码后,静态堆栈分析中会出现变化。 但我认为您的“主线程”与系统堆栈无关。 这只是另一项任务。

    但是,对堆栈使用情况进行静态分析并不是一种在运行时确定堆栈的方法,正如您在第一个问题中所问的那样。

    1月