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.

[参考译文] CC2340R5:最小堆大小是多少?

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1532140/cc2340r5-what-could-be-minimum-heap-size

器件型号:CC2340R5

工具/软件:

您好论坛、

我看到“basic_ble_OAD_onchip"示“示例代码的默认堆大小为 0x00004D50 (~19kB)。 我想使用这个示例代码作为我的“基本代码“来进行最多具有 5 个连接的项目。 我担心的是 RAM 消耗、因为大部分空间都是堆占用的。 我可以将其降低到多大的最小限值?

此致

Vaibhav

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

    您好!

    选择默认堆值是为了支持基本 BLE 示例的运行、并为用户在基本 BLE 上可能添加的其他功能提供适当的裕度。

    也就是说、我建议您使用 运行时对象查看器 来评估所需的堆大小。 您可以按照 用户指南的这一章 为堆选择一个值。 本指南背后的理念是使用您的应用程序,在它应该支持的最大费用,一个慷慨的堆,然后看到所使用的最大内存。 您采用此值、增加安全裕度、这将成为堆大小。

    由于您不知道开发过程中所需的堆大小,我建议您保持初始堆大小,或者至少保持一个足够的堆大小,这样您就不会在初始开发过程中遇到堆错误。

    此致、
    Maxence

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

    谢谢 Maxence、我想问一件事、是否仍有在整个运行时评测堆使用情况? 我想知道运行时的“heap_usage vs. time“、以便可以绘制并观察最大值。

    此致

    Vaibhav

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

    大家好、这不是我们可悲支持的功能。

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

    是否有任何会返回当前堆使用情况的 API?

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

    您好、

    我将使用 FreeRTOS 函数来实现这一点、因为堆由 FreeRTOS 管理。 FreeRTOS xPortGetFreeHeapSize 函数会返回空闲堆大小。 您可以定期在固件中调用此函数、并将其发送到 UART 以使用您自己的软件进行图形绘制。

    此致、
    Maxence

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

    您好、

    感谢您的建议。

    我是否可以知道 TI 正在使用哪种堆实现? 我看到 FreeRTOS 中有 5 个堆实现、每种堆实现都适用于不同的情况。

    此致

    Vaibhav  

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

    您好、

    您需要此信息用于哪些目的? 我认为只要您可以使用 xPortGetFreeHeapSize、您就不需要知道此信息。

    此致、
    Maxence