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.

[参考译文] RTOS/CC2640R2F:销毁任务后的存储器源

Guru**** 2595805 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/609695/rtos-cc2640r2f-memory-source-after-destructing-a-task

器件型号:CC2640R2F

工具/软件:TI-RTOS

您好!

   我将通过调用函数 Task_construction 创建一个任务、并且一个数组被作为堆栈提供给这个任务。

   如果我通过调用函数 Task_析 构函数来破坏此任务、是否会释放此内存?

   此外、该存储器是否可用于堆使用?

此致。

牡蛎

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

    如果您构建的是 TI-RTOS 对象、则会从应用程序提供内存、因此不会使用堆。 请参阅 SDK 中包含的 SYS/BIOS (TI-RTOS 内核)用户指南中的"1.4 SYS/BIOS 软件包和 API"。

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

    如果你没有提供堆栈缓冲区、Task_con构 将已经从堆中分配它。 然后 Task_析 构函数会将其释放到同一堆中。

    由于您确实在 Task_con构 上提供了堆栈缓冲区、因此在 Task_con构 中没有分配额外的内存、因此在 Task_析 构中不会释放任何内存。 您需要管理调用 Task_析 构函数后提供的堆栈缓冲区。 您可以将其重复用于其他内容、或者如果您已从堆中分配了它、则可以立即将其释放。

    Todd