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.

[参考译文] CC2640R2F:GATT_BM_alloc 失败时、重试分配是否无意义?

Guru**** 2587365 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1404495/cc2640r2f-is-retrying-allocation-meaningless-when-gatt_bm_alloc-failed

器件型号:CC2640R2F

工具与软件:

您好!

以下代码毫无意义吗?

noti.pValue = GATT_bm_alloc(gapConnHandle, ATT_HANDLE_VALUE_NOTI, size, NULL);
if (noti.pValue == NULL) // Try 1 more
{
	Task_sleep(10000); // 100ms
	noti.pValue = GATT_bm_alloc(gapConnHandle, ATT_HANDLE_VALUE_NOTI, size, NULL);
}

if (noti.pValue != NULL)
{
    ....
    ....
}

谢谢!

Calvin

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

    您好、Calvin、

    感谢您的咨询。 我想问一下、您的用例是什么、您无意义的具体含义是什么?

    如果 ICall 堆无法分配请求的大小、将返回 NULL 值。 可以尝试启用 heap_metrics、以了解您是否有足够的堆空间。 另一方面、另一个任务可能是在内存空闲时释放内存、因此在一段时间后尝试再次分配时可能有效、但这取决于您的系统、并且很可能不是确定性的。

    BR、

    David。