工具/软件:
您好论坛、
我看到“basic_ble_OAD_onchip"示“示例代码的默认堆大小为 0x00004D50 (~19kB)。 我想使用这个示例代码作为我的“基本代码“来进行最多具有 5 个连接的项目。 我担心的是 RAM 消耗、因为大部分空间都是堆占用的。 我可以将其降低到多大的最小限值?
此致
Vaibhav
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.
工具/软件:
您好论坛、
我看到“basic_ble_OAD_onchip"示“示例代码的默认堆大小为 0x00004D50 (~19kB)。 我想使用这个示例代码作为我的“基本代码“来进行最多具有 5 个连接的项目。 我担心的是 RAM 消耗、因为大部分空间都是堆占用的。 我可以将其降低到多大的最小限值?
此致
Vaibhav
您好!
选择默认堆值是为了支持基本 BLE 示例的运行、并为用户在基本 BLE 上可能添加的其他功能提供适当的裕度。
也就是说、我建议您使用 运行时对象查看器 来评估所需的堆大小。 您可以按照 用户指南的这一章 为堆选择一个值。 本指南背后的理念是使用您的应用程序,在它应该支持的最大费用,一个慷慨的堆,然后看到所使用的最大内存。 您采用此值、增加安全裕度、这将成为堆大小。
由于您不知道开发过程中所需的堆大小,我建议您保持初始堆大小,或者至少保持一个足够的堆大小,这样您就不会在初始开发过程中遇到堆错误。
此致、
Maxence
您好、
我将使用 FreeRTOS 函数来实现这一点、因为堆由 FreeRTOS 管理。 FreeRTOS xPortGetFreeHeapSize 函数会返回空闲堆大小。 您可以定期在固件中调用此函数、并将其发送到 UART 以使用您自己的软件进行图形绘制。
此致、
Maxence
您好、
您需要此信息用于哪些目的? 我认为只要您可以使用 xPortGetFreeHeapSize、您就不需要知道此信息。
此致、
Maxence