CC1352R1F3 SimpleLink_CC13x2_CC26x2 SDK_4.30.00.54 导入CC1352R LanchPad —>Ble5_Stack —>simple_broadcaster例程 开启广播结束事件GAP_ADV_EVT_MASK_END,大概运行20分钟左右会造成内存耗尽的问题,表现在广播回调函数种消息入队分配不到内存。 请问这是什么原因造成的?
Viki Shi:
请看一下下面这个贴,是不是类似问题:
e2echina.ti.com/…/612738
user5329327:
回复 Viki Shi:
你好 有相关文档指导怎么快速进行内存泄漏问题的查找么?
Viki Shi:
回复 user5329327:
建议看一下如下文档的memory部分:
dev.ti.com/…/debugging-index.html
user5329327:
回复 Viki Shi:
你好 我配置了simple_broadcaster_app.cfg中HEAPNGR_CONFIG = 0x81,查看ROV中HeapMem.Detailed中的信息,广播事件回调第一次少2字节,第2次少8字节,差不多这样循环,直至内存耗尽,请问这版SDKsimpleLink_broadcaster例程是否也存在内存泄露的问题?请帮忙确认下,比较着急!
Viki Shi:
回复 user5329327:
1、代码是否有改动?
2、请说明一下测试步骤,是否每次都出现?
user5329327:
回复 Viki Shi:
import例程之后,GapAdv_setEventMask只增加了GAP_ADV_EVT_MASK_END事件,每次都出现,
user5329327:
回复 user5329327:
不好意思更正一下每次GAP_EVT_ADV_END事件发生时都会少8个字节
Viki Shi:
回复 user5329327:
GAP_EVT_ADV_END事件加在哪里?SimpleBroadcaster_processAdvEvent?这部分以及其他修改的代码是否能贴上来?
user5329327:
回复 Viki Shi:
你好, 修改如下:
1、 增加事件,simple_broadcaster.c中修改setEventMask函数参数增加GAP_ADV_EVT_MASK_END事件:
// Set event mask status = GapAdv_setEventMask(advHandleLegacy, GAP_ADV_EVT_MASK_START_AFTER_ENABLE | GAP_ADV_EVT_MASK_END | GAP_ADV_EVT_MASK_END_AFTER_DISABLE | GAP_ADV_EVT_MASK_SET_TERMINATED);
2、SimpleBroadcaster_processAdvEvent函数修改如下:
static bool SimpleBroadcaster_processAdvEvent(sbGapAdvEventData_t *pEventData){ bool safeToDealloc = TRUE;
static volatile uint8_t test;
switch (pEventData->event) { case GAP_EVT_ADV_START_AFTER_ENABLE: Display_printf(dispHandle, 2, 0, "Advertising"); break;
case GAP_EVT_INSUFFICIENT_MEMORY: safeToDealloc = FALSE; break;
case GAP_EVT_ADV_END: test++; break;
default: // Do nothing. break; }
return(safeToDealloc);}
附上完整simple_broadcaster.文件:
simple_broadcaster.c
Viki Shi:
回复 user5329327:
我这边测试到了跟你一样的现象,感谢你提供的详细信息。我需要跟美国那边的开发team沟通一下,有消息会来回复