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.

[参考译文] CC2652P7:堆栈

Guru**** 2465890 points


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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1178402/cc2652p7-stack-and-heap

器件型号:CC2652P7

你(们)好

我对 TI 堆栈的使用有疑问:

在链接器文件中分配1KB 的堆栈。 但为 BLE 任务分配了2048字节的堆栈、为 Zigbee 任务分配了3000字节的堆栈。 它从哪个内存分配给 BLE 和 Zigbee 任务? 它是来自堆吗? 请提供与此相关的详细信息/参考/文档/链接。

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

    您好、Krishna、

    链接器文件中的默认堆栈大小与射频协议的任务堆栈大小不同: https://e2e.ti.com/f/1/t/948859 

    BLE 和 Zigbee 任务从堆分配、堆可在.cfg (TI-RTOS)或.syscfg (TI-RTOS7)文件中进行配置。

    此致、
    Ryan

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

    感谢您提供信息。 我想监控 BLE 和 Zigbee 任务堆栈的增长/使用情况。 如何才能做到这一点?

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

    我使用的是 IAR Embedded Workbench 版本8.50.9、如何查看 ROV 窗口?

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

    您可以定义 HEAPMGR_metrics 来监控堆使用情况、如 BLE5-Stack 调试指南中所述。  它还介绍了 IAR ROV 的使用。

    此致、
    Ryan

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

    感谢您提供信息。

    我对任务堆栈有疑问。

    任务堆栈是从堆还是 RAM (通用 RAM 存储器)中分配的?

    我可以看到、由链接器文件分配的堆栈和任务堆栈都是用0xBE 标记的水。

    任务堆栈是否包含任何页眉和页脚? 请参阅下图 Zigbee 任务堆栈、其中前4个字节填充为0x00、然后是标有0xBE 的水。 即使在末尾、也有4个字节的0x00。

    在代码执行期间、如果我检查、最后4个字节被填充为0x00、而之前4个字节被填充为0xBE。

    但在 BLE 堆栈任务(下图)中未观察到相同情况、其中4个数组索引中没有0x00。

    您能解释一下原因吗? 或者、您能告诉我在哪里可以获得有关此内容的详细信息(任何文章/文档)吗?

    提前感谢。

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

    任务栈从堆分配。  我没有关于任务堆栈默认内容的注释。  您可以查看用于两个堆栈任务的 Task_con构 的任务参数之间的差异、以及其他协议差异。   更多信息、请参阅 TI-RTOS 7内核文档。

    此致、
    Ryan