基于SDK 1.3.0 FOTA升级失败,求分析原因

icomet
Posts: 6
Joined: Tue Jun 09, 2015 9:26 pm

基于SDK 1.3.0 FOTA升级失败,求分析原因

Postby icomet » Mon Aug 24, 2015 2:34 pm

1. 在https://iot.espressif.cn/#/上面创建了自己的设备;
2. 在SDK 1.3中 IoT demo做了修改:
#define device_type 54403
具体代码见附件 app.7z;
3. 编译后,经过调试,设备成功激活;ping正常;此过程中遇到的问题见后文;
4. 在https://iot.espressif.cn/#/上传bin,创建新版本;点升级版本;
5. ESP8266的打印信息如下:

Code: Select all

user_esp_platform_recv_cb: {"nonce": 779601965, "get": {"action": "sys_upgrade", "version": "b1.0.8t54403(a)"}, "meta": {"Authorization": "token 9d8ea99150486f5f97db650960b349d21f2c0e9d"}, "path": "/v1/device/rpc/", "method": "GET", "deliver_to_device": true}

{"status": 200, "nonce": 779601965, "deliver_to_device": true}

GET /v1/device/rom/?action=download_rom&version=b1.0.8t54403(a)&filename=user2.bin HTTP/1.0
Host: 115.29.202.58:80
Connection: keep-alive
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
Accept: */*
Authorization: token de245dadba58f047310949e235aae55b929f1bfa
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8


system_upgrade_start
upgrade_connect
upgrade_connect_cb
GET /v1/device/rom/?action=download_rom&version=b1.0.8t54403(a)&filename=user2.bin HTTP/1.0
Host: 115.29.202.58:80
Connection: keep-alive
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
Accept: */*
Authorization: token de245dadba58f047310949e235aae55b929f1bfa
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8

user_esp_platform_sent_cb
totallen = 266
user_esp_platform_sent_beacon 126562324
user_esp_platform_sent_cb
user_esp_platform_recv_cb: {"status": 200, "epoch": 1440344766, "message": "ping success", "identified": true, "datetime": "2015-08-23 23:46:06"}

ping success
user_esp_platform_sent_beacon 176624565
user_esp_platform_sent_cb
user_esp_platform_recv_cb: {"status": 200, "epoch": 1440344816, "message": "ping success", "identified": true, "datetime": "2015-08-23 23:46:56"}

ping success
upgrade_check
user_esp_platform_upgrade_failed
{"path": "/v1/messages/", "method": "POST", "meta": {"Authorization": "token de245dadba58f047310949e235aae55b929f1bfa"},"get":{"action":"device_upgrade_failed"},"body":{"pre_rom_version":"v1.0.7t54403(a)","rom_version":"b1.0.8t54403(a)"}}

user_esp_platform_sent_cb
user_esp_platform_recv_cb: {"status": 200, "message": "send message success", "result": "success"}


升级失败;
问题: “upgrade_check” 这个打印说明什么?已经下载完了bin吗?
6. 服务器端message见下图
[img]
Untitled.jpg
[/img]
请帮忙分析下原因;谢谢!

调试中遇到的问题:
1. active_nonce = os_random() && 0x7FFFFFFF; “&&”应该是“&”吧? “&&”导致nonce总是1,在激活过程中循环,不停打印;
2. user_esp_platform_sent()函数中,os_memcpy(token, esp_param.token, 40); 这句改为 os_memcpy(token, esp_param.devkey, 40) 后才能正确激活;否则服务器返回400错误;why?
Attachments
app.7z
(249.78 KiB) Downloaded 653 times
Untitled.jpg

ESP_Faye
Posts: 1646
Joined: Mon Oct 27, 2014 11:08 am

Re: 基于SDK 1.3.0 FOTA升级失败,求分析原因

Postby ESP_Faye » Tue Aug 25, 2015 2:31 pm

您好,

1. “&&”应该是“&”,非常感谢您的反馈,我们已经更新了 IoT_Demo

2. token 是用户想控制 ESP8266 设备时给出的一个随机字串,您可以参考 \esp_iot_sdk_v1.3.0\document 路径下的文档“2B-ESP8266__SDK__IOT_Demo” 中的说明。

简单的升级示例,可以参考这个帖子 http://bbs.espressif.com/viewtopic.php?f=7&t=865#p2950

感谢您对 ESP8266 的关注!

icomet
Posts: 6
Joined: Tue Jun 09, 2015 9:26 pm

Re: 基于SDK 1.3.0 FOTA升级失败,求分析原因

Postby icomet » Thu Sep 03, 2015 4:02 pm

多谢回复;
问题已经找到,原来是在网站上传的文件名错误!太粗心了...

Who is online

Users browsing this forum: No registered users and 85 guests