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.

[参考译文] CC2651R3:如何启用用于简单片外 OAD 的 HeapMem

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1329872/cc2651r3-how-do-i-enable-heapmem-for-simple-off-chip-oad

器件型号:CC2651R3

BLE 应用中有内存泄漏。 如果我在5-10倍后连接和断开、处理器将堆/资源用完。

我想用 ROV 和 HeapMem 来调试这个问题。 我尝试将 HEAPMGR_CONFIG=0x80更改为 HEAPMGR_CONFIG=0x82、但得到错误:致命错误:"XDC/cfg/global.h"

我在 simple_peripheral_oad_offchip 示例工程中收到相同的错误。

谢谢!

布赖恩

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

    您好、Brian、

    感谢您与我们联系。 您能否共享您正在处理的 SDK 版本? 此外、这种行为是否会在未经修改的示例上发生? 能否验证您是否也在非加载 simple_peripheral 上看到它? 我想缩小潜在泄漏的可能原因。

    此致、

    1月

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

    大家好、Jan、

    我更新到了 latset SDK 7_10_02_23、好消息是在示例 SimplePeripheral_off_chip_oad 上不会发生该行为。

    遗憾的是、我使用的定制电路板具有不同引脚上的外部闪存、因此 OAD 仍然可以使用此电路板。

    我附上了每次器件连接时堆增长的屏幕截图。 是否可以结合使用 HeapMem 和 BLE5STACK 等工具? 可以看到哪些行正在分配所有未释放的内存吗?

    我的大多数应用逻辑都位于完全独立的任务中、因此我将开始将示例代码移植到我的应用的各个部分、以查看我是否能找到问题所在。 非常感谢任何用于发现内存泄漏的指针。

    此致!

    布赖恩

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

    大家好、Jan、

    我认为内存泄漏来自 OAD,可能是 OAD_Cancel()设备断开连接。 也许这与我自定义的外部闪存有关吗?

    在我的应用程序中、我有一个禁用 OAD 的定义、当我禁用 OAD 时、内存泄漏消除了。 定义在初始化时禁用 OAD_open、OAD 回调以及断开时禁用 OAD_Cancel()。

    对此有什么想法吗? 我将继续深入 OAD 以查看导致内存泄漏的原因。

    此致!

    布赖恩

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

    编辑:禁用 OAD 后,内存泄漏仍然发生,但需要更多的连接和断开。 11现在,而不是4

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

    您好、Brian、  

    感谢您提供这些更新! 您遇到的问题可能是由外部定制闪存造成的、但我不确定。 您是否尝试过在 Launchpad 上而非您的定制电路板上重现问题?

    我可以在我的最后做这件事,也可以看看我是否遇到同样的内存泄漏。  

    此致、

    卢克

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

    Luke、您好!

    该文档指出 HeapMem/Heaptrack 应该可用于 BLE 调试。 这是不是已经过时了? 我无法获得 heapmem 来处理任何未经更改的示例。

    是否有其他方法可以查看什么是所有空闲内存?

    泄漏似乎与我的 BLE 服务配置文件有关。 当我禁用它们时、它会消失。 但是、泄漏发生在仅连接而不与服务交互的情况下。 我将尝试将我的一项服务移植到 launchpad 示例代码中、看看它是否仍然出现。

    此致!

    布赖恩

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

    您好、Brian、

    您能否提供您参考的文档的链接、以便我查看一下、确保您使用的版本不是过时的、或者我是否可以向我们的内部团队报告任何问题?

    您可以利用 UniFlash 及其"存储器浏览器"来查看空闲存储器。

    在您完成移植到示例代码以及问题是否仍然存在后、请随时向我通报最新情况!

    此致、

    卢克

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

    Luke、您好!

    很抱歉我上周出差的延迟回复。 不用担心、如果文档已过时、我将尝试查看内存浏览器。

    如需相关文档、请参阅 BLE5Stack -> Debugging Common Heap Problems -> Troubleshooting Heap Problems

    https://dev.ti.com/tirex/explore/node?node=A__AHaph7YfvcrVy2cDlmb4sQ__com.ti.SIMPLELINK_CC13XX_CC26XX_SDK__BSEc4rl__LATEST ("BLE5用户指南"中"Trouble Shooth Problems"的 ctrl-f 将会找到)

    此致!

    布赖恩

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

    我使用了内存浏览器、这是6个连接和资源都满后我在 HeapEnd 中看到的内容。 我如何分辨这个内存所指的是什么?

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

    Brian:

    感谢您分享您正在使用的文档! 您好像使用的是最新的文档、所以没有问题。  

    让我来看看您在这里留下的记忆、与我团队的一位专家交谈、并尽快与您联系、澄清我们所看到的内容。

    此致、
    卢克