主题中讨论的其他部件:CC3220SF
大家好,
我正在尝试在CC3220SF模块中实施OTA。 我可以从服务器获取文件并升级OTA,但文件下载完成后,我的MQTT断开连接。 我甚至尝试通过执行MQTT_INIT和MQTT_START来重新连接到MQTT,但没有任何功能,MCU进入 挂起状态。 OTA升级的日志文件已附加。 执行SL_STOP后出现以下错误。
00:04:07 INFO ../APP/MQTT_CLIENT_CBS.c:180:MQTT客户端已断开连接!!
00:04:07 debug ../app/event_queue.c:95:发射到应用程序事件队列,事件=6
00:04:07调试../app/event_queue.c:146:发射到MQTT事件队列中,事件= 12
00:04:07错误../app/MQTT_client_task.c:634:无法推入/topic/device/version/progress -错误:-7
请查看随附的日志以了解更多信息。
e2e.ti.com/.../CC3220SF_2D00_OTA.txt
我对"OTA_test_and_reset_handler"的功能如下:-
Int32_t ota_test_and_reset_handler()
{
Int32_t RetVal;
log_info("OtaImageTestingAndReset: Download done");
/* char *有效负载=(char *) malloc(512);
sprintf (有效载荷,"{\"deviceId\":\"%16s\","
"\"状态\":\"已升级\",\"进度\":100}",
aquaiConfig.deviceId);
//将有效负载推送到MQTT队列
MqttEventPayload_t mqttEvt;
mqttEvt.event = publish_ota_progress;
mqttEvt.msgPtr =有效载荷;
mqttEvt.msgLen = strlen(有效载荷);
EVENT_QUEUE_EMIT_MQTT (&mqttEvt);*/
MQTT_SEND (publish_ota_progress,128,
"{\"deviceId\":\"%16s\","
"\"状态\":\"已升级\",\"进度\":100}",
gAppConfig.deviceId);
/*休眠以确保MQTT推送数据*/
睡眠(1);
log_info(.
"OtaImageTestingAndReset:调用SL_Stop以将分发包移动到"
"测试状态");
SL_Stop (SL_STOP_TIMEOUT);
log_info(.
"OtaImageTestingAndReset: Reset the platform to test the new"(OtaImageTestingAndReset:重置平台以测试新的
"图像...");
platform_reset();
/*如果我们到达此处,则平台不支持自重置*/
/*重置NWP以测试新图像*/
log_info(.
"OtaImageTestingAndReset: Platform does not support self reset";
log_info(.
"OtaImageTestingAndReset:Reset the NWP to test the new image");
RetVal = Network_if_InitDriver(Role_STA);
//MQTT_init();
//MQTT_start();
/* SL_Stop/Start将生成EVENT APP_EVENT_STARTTED*/
Return (RetVal);
}
有人能帮我解决这个问题吗?