Page 1 of 1

【已解决】扫地机BLE控制时反复打开关闭手机蓝牙内存溢出

Posted: 2022年 Nov 9日 15:31
by wxq1123

最近发现BLE控制设备时,手机蓝牙反复打开/关闭后,会导致内存溢出;
操作步骤:
1、BLE配网后,路由器断电(或者关闭路由器外网,同时关闭手机WIFI和流量,只保持手机蓝牙开启),此时WIFI模组会切换到BLE线路;
2、通过手机APP可正常操作设备(走BLE线路);
3、此时反复打开/关闭手机蓝牙,多次(10多次)尝试后,及时保持BLE打开,也不能控制设备了(此时内存就会不断的减小)
4、通过打印日志发现是sys_timer不断的申请20个字节的内存;且不会释放;(详见附件)
5、通过tuya_os_adapt_system_malloc 的任务名称打印出来了。是名叫“OS_Mem”的任务在申请空间

SDK版本信息:南方硅谷sv32wb0x
/* custom settings */
#define BUILD_DATE "2022_03_15"
#define BUILD_TIME "16_16_41"
#define GIT_USER "ci_manage"
#define IOT_SDK_VER "1.0.0"
#define SDK_BETA_VER "beta.32"
#define PROJECT_NAME "ty_iot_household_electrical_appliances_sdk"
#define TARGET_PLATFORM "sv32wb0x"
#define KV_KEY_SEED "8710_2M"


Re: 【求助】扫地机BLE控制时反复打开关闭手机蓝牙内存溢出

Posted: 2022年 Nov 9日 18:41
by 愚者千虑必有一得

通过日志分析,怀疑是蓝牙发送数据的地方,在不停的重连过程中,出到异常卡住了,导致队列阻塞,一些还在运行的任务不停的申请任务扔到队列中得不到执行,内存被消耗掉了。

请结合log再确认一下。


Re: 【求助】扫地机BLE控制时反复打开关闭手机蓝牙内存溢出

Posted: 2022年 Nov 10日 11:37
by 愚者千虑必有一得

结合日志分析,原厂在蓝牙发送的时候阻塞在wait_event中出不来,导致msg_queue阻塞,大量任务阻塞导致内存消耗不得释放,原厂修复之后问题解决。

企业微信截图_16679859322987.png