TI中文支持网
TI专业的中文技术问题咨询交流网站

CC1352R1F3 E版本长时间运行ble例程会造成内存耗尽问题?

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沟通一下,有消息会来回复

赞(0)
未经允许不得转载:TI中文支持网 » CC1352R1F3 E版本长时间运行ble例程会造成内存耗尽问题?
分享到: 更多 (0)