Page 1 of 1

【已解决】TuyaOS-3.11.1 持续上报数据返回SEND_ST_MEMORY_ERR 问题

Posted: 2025年 Sep 1日 16:03
by xiaoluo

目前使用的ZSU模组,目前自动化场景执行一段时间后,设备上报数据返回“SEND_ST_MEMORY_ERR”状态, 导致app面板失控。操作步骤如下:
1、首先创建一些一键执行场景。
2、然后创建一个将第一步创建的一键执行场景延时20秒自动执行下一个。
3、自动化场景里面设置,当设备开启,就自动执行第二步创建的场景,延时几分钟后执行“关”, 延时几秒后执行“开”。
目前有尝试在调用接口:tal_zg_send_data 之前调用接口:tal_zg_clear_send_data(ZG_CLEAR_ALL_ZCL_ID, &send_data.zcl_id); 还是未能解决目前出现的问题,请问这个问题怎么解决呢?


Re: 【求助】TuyaOS-3.11.1 持续上报数据返回SEND_ST_MEMORY_ERR 问题

Posted: 2025年 Sep 1日 16:06
by shiliang

是否可以提供发送代码,超时时间设置的多久


Re: 【求助】TuyaOS-3.11.1 持续上报数据返回SEND_ST_MEMORY_ERR 问题

Posted: 2025年 Sep 1日 16:32
by xiaoluo

发送数据超时时间设置的3秒。参考代码见附件:

00000.txt
(4.9 KiB) Downloaded 5 times

Re: 【求助】TuyaOS-3.11.1 持续上报数据返回SEND_ST_MEMORY_ERR 问题

Posted: 2025年 Sep 1日 16:39
by shiliang

SEND_ST_MEMORY_ERR代表填充发送函数时malloc错误,可以尝试增加memory heap看是否能解决问题:
#define APP_HEAP_SIZE 11*1024
STATIC UINT8_T gs_heap[APP_HEAP_SIZE];
VOID_T tkl_memory_cfg(UINT8_T **out_buff, UINT32_T *out_buff_len)
{
*out_buff = gs_heap;
*out_buff_len = APP_HEAP_SIZE;
}


Re: 【求助】TuyaOS-3.11.1 持续上报数据返回SEND_ST_MEMORY_ERR 问题

Posted: 2025年 Sep 1日 16:43
by xiaoluo

修改这个后, 怎么查看当前RAM使用情况呢?


Re: 【求助】TuyaOS-3.11.1 持续上报数据返回SEND_ST_MEMORY_ERR 问题

Posted: 2025年 Sep 1日 16:46
by shiliang

可通过tal_system_get_free_heap_size查看剩余heap量


Re: 【求助】TuyaOS-3.11.1 持续上报数据返回SEND_ST_MEMORY_ERR 问题

Posted: 2025年 Sep 1日 17:02
by xiaoluo

这个只是查看:gs_heap 的使用情况吧。 我想要查看整个芯片的RAM使用情况应该怎么看呢


Re: 【求助】TuyaOS-3.11.1 持续上报数据返回SEND_ST_MEMORY_ERR 问题

Posted: 2025年 Sep 1日 17:36
by xiaoluo
shiliang 2025年 Sep 1日 16:39

SEND_ST_MEMORY_ERR代表填充发送函数时malloc错误,可以尝试增加memory heap看是否能解决问题:
#define APP_HEAP_SIZE 11*1024
STATIC UINT8_T gs_heap[APP_HEAP_SIZE];
VOID_T tkl_memory_cfg(UINT8_T **out_buff, UINT32_T *out_buff_len)
{
*out_buff = gs_heap;
*out_buff_len = APP_HEAP_SIZE;
}

目前按照这个修改后, 挂一会还是会出现上报返回SEND_ST_MEMORY_ERR。 继续改大吗?


Re: 【求助】TuyaOS-3.11.1 持续上报数据返回SEND_ST_MEMORY_ERR 问题

Posted: 2025年 Sep 1日 17:45
by shiliang

麻烦确认下:
1.上报数据是否比较多,看之前代码超时时间3s,正常3s后会释放恢复发送前heap,可监测确认;
2.确认是否代码中有其他地方调用tal_malloc,占用较多的ram;