大家好,
我们在使用CC2652R SDK中的蓝牙project zero 工程开发产品是,发现蓝牙每次连接会丢失12字节内存;
SDK版本:simplelink_cc13x2_26x2_sdk_3_10_00_53
project zero工程配置:
- 配置为onchip ota
- ble_release.cfg中配置HEAPMGR_CONFIG=0x80,ICall_malloc函数使用rtos_heaposal.h中内存分配函数
- 链接文件修改为' $SRC_BLE_DIR$\common\cc26xx\iar\cc26xx_app_and_stack_agama_oad_onchip.icf '
我们通过调试发现,蓝牙连接时,连接过程中,应用层收到BLE_ADV_EVT消息,事件为GAP_EVT_ADV_END_AFTER_DISABLE,之后 llSendAdvSetTermEvent申请了8字节内存,不知有没有释放;
由于蓝牙底层打包成库函数,无法跟踪分析,请确认下,8字节内存在底层没有释放,还是传到应用层,应用层没有处理?
Kevin Qiu1:
升级到最新版本的SDK试试,HEAP是自动分配的,不需要修改
pab guo:
回复 Kevin Qiu1:
我们产品已经出货,无法修改SDK了,请确认我们使用的SDK有无泄漏
Kevin Qiu1:
回复 pab guo:
之前CC2652 SDK4.20中有内存泄漏的问题,SDK3.1没有收到反馈有内存泄露的问题
你可以使用HeapMgr调试是否有内存泄漏
参考e2e.ti.com/…/3035472
pab guo:
回复 Kevin Qiu1:
我们调试发现是有内存泄漏的,通过HeapMgr调试发现每次连接,都会有12字节泄漏,调试整个连接过程中的内存申请和释放,得到如下结论:
蓝牙连接时,连接过程中,应用层收到BLE_ADV_EVT消息,事件为GAP_EVT_ADV_END_AFTER_DISABLE,之后 llSendAdvSetTermEvent申请了8字节内存,不知有没有释放;底层没有代码无法分析,还需要你们具体确认;
Kevin Qiu1:
回复 pab guo:
我会和Team确认,你可以先用最新的SDK测试是否正常
pab guo:
回复 Kevin Qiu1:
谢谢,麻烦尽快确认,这个问题很着急。
我们使用SDK4.1、SDK4.2测试,蓝牙连接,没有出现内存泄漏现象。对于已经出货的产品,更新SDK是一个巨大的改动,需要几个版本测试才能稳定。
Kevin Qiu1:
回复 pab guo:
已经联系Team了,美国那边正在放假,得到答复后我会立即回复你
user1600444:
回复 Kevin Qiu1:
请问CC2652 SDK4.2 中内存泄漏的问题, 是在哪个点, 目前我们的产品是用的SDK 4.2 的。
Kevin Qiu1:
回复 user1600444:
在Bond Manager中 e2e.ti.com/…/936393
在SDK4.30中已经修复了
Kevin Qiu1:
回复 user1600444:
确认SDK3.10是有内存泄漏,也已经在SDK4.30中修复,建议你使用SDK4.30
TI中文支持网


