Thread 中讨论的其他器件:SysConfig
您好!
我发现项目 Simple Mesh 节点有问题。 我使用 SDK 5.20.0.52。 在项目中、我使用网状网络和外设。
当与 MCU 和手机建立连接并终止连接时、堆内存会丢失。 每个连接的损耗约为200字节。 几次连接后、MCU 崩溃、因为没有可用的堆内存。 除了添加堆监控之外、我没有对项目进行任何更改。 我使用函数 iCall_getHeapStats 监视堆存储器。
是否有解决方案?
我提前感谢您的帮助。
此致
托比亚斯
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.
您好!
我发现项目 Simple Mesh 节点有问题。 我使用 SDK 5.20.0.52。 在项目中、我使用网状网络和外设。
当与 MCU 和手机建立连接并终止连接时、堆内存会丢失。 每个连接的损耗约为200字节。 几次连接后、MCU 崩溃、因为没有可用的堆内存。 除了添加堆监控之外、我没有对项目进行任何更改。 我使用函数 iCall_getHeapStats 监视堆存储器。
是否有解决方案?
我提前感谢您的帮助。
此致
托比亚斯
您好、Speedbird、
我们已经对其进行了研究、并在 simple_mesh_node.c 中提出了以下修复 请注意、此修复程序仍在进行全面评估和测试、并将在即将推出的 SDK 中进行验证后发布。 此时、此修复程序似乎可以解决快速基准测试后最初报告的问题。
在 bleApp_taskFxn()内,将对 bleApp_processStackMsg 的调用打包在 if 语句内,如果为 true,则释放事件,如下所示。
if (events)
{
// Check if there are any messages in the queue
while (!Queue_empty(appMsgQueueHandle))
{
pMsg = (appEvt_t *)Util_dequeueMsg(appMsgQueueHandle);
if (pMsg)
{
if (BLEAPP_EVT_STACK_CALLBACK == pMsg->event)
{
// Process stack messages - changed from events to callback
if (bleApp_processStackMsg((bleStack_msgHdt_t*)pMsg->pData))
{
bleStack_freeMsg((bleStack_msgHdt_t*)pMsg->pData);
}
}