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.

[参考译文] CC2650:如何清除CC2650的堆内存

Guru**** 2587365 points
Other Parts Discussed in Thread: CC2650

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/581517/cc2650-how-to-clear-the-heap-memory-of-cc2650

部件号:CC2650

您好,

我正在使用CC2650 Launchpad和GitHub中的多角色项目。使用堆栈 el_cc26xx_2_01_01_4.4627万。

在将数据从一个CC2650发送到另一个CC2650时,我的堆消耗将增加到其最大限制  

我设置了HEAPMGR_SIZE=8300,我的heapmgrMemUB达到其最大限制。  

如何将 heapmgrMemUB重置为初始值。

谢谢

古朗

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好Gourang,
    如果还看到heapmgrMemFail变量的大幅增加,这意味着您需要更多的堆。
    您能否描述您的设置,如何使用多角色项目?
    heapmgrMemUB只是一个全局性能分析变量,您可以在调试模式中直接清除此变量(自己尚未对此进行测试)。 但我不明白为什么你会这样做,因为它显然已经达到了极限,表明你可能需要更多的堆来实现。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢Eirik的回复,
    如果我正在增加堆内存,内存将用完。因此我无法增加HEAPMGR_SIZE的值。
    我正在使用多角色项目将数据(4字节)从一个CC2650设备发送到另一个设备。
    在发送数据时,我正在使用GATT_BM_ALLOY()函数。
    如果发送数据不成功,我正在使用GATT_BM_FREE()。
    如果发送数据成功,则栈调用GATT_BM_FREE()。
    我正在观察heapmgrMemUb (已分配块的最远内存位置,以从堆开始偏移量的形式测量)。
    现在,即使我使用了GATT_BM_FREE(),堆消耗也会持续增加。
    请建议我在成功发送数据后如何清除堆内存
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好Gourang,

    可以通过将堆栈移植到较高的堆栈并很好地支持堆内存来解决此问题,但没有释放堆内存的命令。
    在堆栈2.2 中,此问题不像在堆栈2.1 中一样容易发生。

    此致,
    Abhishek Yakkundi

    如果回答了您的问题,请按下面的验证答案。