请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:CC2530 主题中讨论的其他器件:CC2591、
大家好、
发送多个命令时、例如使用 zcl_SendReportCmd、我的 CC2530+CC2591往往会冻结几秒钟。 如果我发送命令时有几毫秒的延迟(使用计时器)、则一切都很好。
我的内存不足或什么?
我使用不同的输入参数值重复同步调用的代码如下所示:
static void zclZ8_ReportOnOff( uint8 endpoint )
{
const uint8 NUM_ATTRIBUTES = 1;
zclReportCmd_t *pReportCmd;
pReportCmd = osal_mem_alloc(sizeof(zclReportCmd_t) + (NUM_ATTRIBUTES * sizeof(zclReport_t)));
if (pReportCmd != NULL) {
pReportCmd->numAttr = NUM_ATTRIBUTES;
zclZ8_DstAddr.addrMode = (afAddrMode_t)Addr16Bit;
zclZ8_DstAddr.addr.shortAddr = 0;
zclZ8_DstAddr.endPoint = 1;
pReportCmd->attrList[0].attrID = ATTRID_ON_OFF;
pReportCmd->attrList[0].dataType = ZCL_DATATYPE_BOOLEAN;
pReportCmd->attrList[0].attrData = (void *)&(zclZ8_OnOff[endpoint]);
zcl_SendReportCmd(endpoint + 1, &zclZ8_DstAddr,
ZCL_CLUSTER_ID_GEN_ON_OFF, pReportCmd,
ZCL_FRAME_CLIENT_SERVER_DIR, false, zclZ8SeqNum++);
}
osal_mem_free(pReportCmd);
}