Hi ,
我用的SDK是RTOS 1.4.0版本的SDK。
我是按照IOT platform的例子和《RTOS SDK编程手册》的说明,为fota任务起了一个定时器,如果超时没有完成fota,就由定时器回调关闭fota任务和socket连接。
ret=xTaskCreate(fota_task, "fota task", 512, NULL, 2 , &xFotaCmdTaskHandle);
if(pdPASS == ret){
os_timer_disarm(&upgrade_timer);
os_timer_setfn(&upgrade_timer, (os_timer_func_t *)upgrade_check, &timer_param);
os_timer_arm(&upgrade_timer, FOTA_TIME_MAX, 0);
}
但是,我发现在回调upgrade_check()中无法关闭在fota任务中创建的socket,并且会导致程序崩溃重启。
void upgrade_check(void *parm)
{
int ret;
/*network not stable, upgrade data lost, this may be called*/
os_timer_disarm(&upgrade_timer);
fotaNewFwReady = 0;
system_upgrade_flag_set(UPGRADE_FLAG_IDLE);
if(fota_socket>0){
ret=closesocket(fota_socket);
if(ret!=0){
printf("timer callback::close socket failed!\r\n");
}
fota_socket=0;
}
if(xFotaCmdTaskHandle!=NULL){
vTaskDelete(xFotaCmdTaskHandle);
xFotaCmdTaskHandle=NULL;
}
/*take too long to finish,fail*/
printf("\ntimer callback:: upgrade fail,exit.\n");
return;
}
Regards
Bobby
FOTA的定时器回调中关闭socket导致崩溃重启
-
- Posts: 27
- Joined: Tue Sep 29, 2015 4:27 pm
FOTA的定时器回调中关闭socket导致崩溃重启
Postby bobby_jiang » Tue Jun 21, 2016 9:38 pm
- Attachments
-
- update.rar
- (3.79 KiB) Downloaded 585 times
Re: FOTA的定时器回调中关闭socket导致崩溃重启
Postby ESP_Faye » Wed Jun 22, 2016 9:50 am
您好,
基于 ESP8266_RTOS_SDK 的 FOTA 示例,您可以参考 https://github.com/espressif/ESP8266_IOT_PLATFORM/tree/master/upgrade。
感谢您对 ESP8266 的关注!
基于 ESP8266_RTOS_SDK 的 FOTA 示例,您可以参考 https://github.com/espressif/ESP8266_IOT_PLATFORM/tree/master/upgrade。
感谢您对 ESP8266 的关注!
-
- Posts: 27
- Joined: Tue Sep 29, 2015 4:27 pm
Re: FOTA的定时器回调中关闭socket导致崩溃重启
Postby bobby_jiang » Wed Jun 22, 2016 2:05 pm
Espressif_Faye wrote:您好,
基于 ESP8266_RTOS_SDK 的 FOTA 示例,您可以参考 https://github.com/espressif/ESP8266_IOT_PLATFORM/tree/master/upgrade。
感谢您对 ESP8266 的关注!
Hi Faye,
你好。
我就是参考了https://github.com/espressif/ESP8266_IOT_PLATFORM/tree/master/upgrade,它里面就有为fota任务起一个超时定时器,但是我实际测算发现这个定时器超时会导致系统崩溃重启。
你可以帮忙看看我附件中所带的代码吗?谢谢
Regards
Bobby
Who is online
Users browsing this forum: No registered users and 290 guests
Login
Newbies Start Here
Are you new to ESP8266?
Unsure what to do?
Dunno where to start?
Start right here!
Latest SDK
Documentation
Complete listing of the official ESP8266 related documentation release by ESPRESSIF!
Must read here!
- All times are UTC+08:00
- Top
- Delete all board cookies
About Us
Espressif Systems is a fabless semiconductor company providing cutting-edge low power WiFi SoCs and wireless solutions for wireless communications and Internet of Things applications. We are the manufacturer of ESP8266EX.