ESP8266 Developer Zone The Official ESP8266 Forum 2016-03-24T18:00:05+08:00 https://bbs.espressif.com:443/feed.php?f=66&t=1841 2016-03-24T18:00:05+08:00 2016-03-24T18:00:05+08:00 https://bbs.espressif.com:443/viewtopic.php?t=1841&p=6211#p6211 <![CDATA[Re: [Solved] 请教:OTA时,由USER2.BIN更新USER1.BIN出错,无法启动.]]> Statistics: Posted by galaxyobe — Thu Mar 24, 2016 6:00 pm


]]>
2016-03-03T22:26:10+08:00 2016-03-03T22:26:10+08:00 https://bbs.espressif.com:443/viewtopic.php?t=1841&p=5959#p5959 <![CDATA[Re: 请教:OTA时,由USER2.BIN更新USER1.BIN出错,无法启动.]]> Statistics: Posted by xyz769 — Thu Mar 03, 2016 10:26 pm


]]>
2016-03-03T11:08:14+08:00 2016-03-03T11:08:14+08:00 https://bbs.espressif.com:443/viewtopic.php?t=1841&p=5948#p5948 <![CDATA[Re: 请教:OTA时,由USER2.BIN更新USER1.BIN出错,无法启动.]]>
请确认,user1.bin 和 user2.bin 应该是不同的两个 bin 文件,编译步骤:
1. 编译 user1.bin
2. make clean 清除上次编译生成的临时文件
3. 与步骤 1 中的其他编译选项均一致,区别仅在于选择编译 user2

怀疑您是否在编译时异常,您的 user1.bin 和 user2.bin 其实都是 user1.bin。
或者麻烦提供一下您的 user1.bin 和 user2.bin,我们将协助您分析。

Statistics: Posted by ESP_Faye — Thu Mar 03, 2016 11:08 am


]]>
2016-03-02T15:44:35+08:00 2016-03-02T15:44:35+08:00 https://bbs.espressif.com:443/viewtopic.php?t=1841&p=5915#p5915 <![CDATA[Re: 请教:OTA时,由USER2.BIN更新USER1.BIN出错,无法启动.]]>
sec_block 58
..........................................................upgrade_get_sum_disconcb 41696
erase sector=1 ok

ets Jan 8 2013,rst cause:4, boot mode:(3,7)


erase sector=1 ok ---->0x01000

可是不知什么原因卡住了,并触发了WDT RESET,奇怪的是明明提示只擦了USER1.BIN区域,但USER2.BIN区域却无法启动了.更怪的是,此时用串口重新擦USER2.BIN却不能正常启动USER2.BIN,只有重新擦写USER1.BIN才能让USER2.BIN正常启动.

感觉是BOOTLOADER从USER2.BIN启动时,还是要跳到USER1.BIN中转一圈才回到USER2.BIN中正常执行...

Statistics: Posted by xyz769 — Wed Mar 02, 2016 3:44 pm


]]>
2016-03-02T15:38:09+08:00 2016-03-02T15:38:09+08:00 https://bbs.espressif.com:443/viewtopic.php?t=1841&p=5914#p5914 <![CDATA[Re: 请教:OTA时,由USER2.BIN更新USER1.BIN出错,无法启动.]]>
LOCAL void ICACHE_FLASH_ATTR user_webclient_upgrade_rsp(void *arg) {
struct upgrade_server_info *server = arg;
if (server->upgrade_flag == true) {
PERR("upgrade successful\n");
system_upgrade_reboot();
} else {
PERR("upgrade failed\n");
}
os_free(server->url);
server->url = NULL;
os_free(server);
server = NULL;
}

LOCAL void ICACHE_FLASH_ATTR user_webclient_begin_upgrade(void) {
struct upgrade_server_info *upsvc = (struct upgrade_server_info *) os_zalloc(sizeof(struct upgrade_server_info));

uint8 * user_bin=(uint8 *)os_zalloc(100);

upsvc->pespconn = &TcpClient;
upsvc->port = WEB_PORT;
upsvc->check_cb = user_webclient_upgrade_rsp;
upsvc->check_times = 120000;
os_memcpy(upsvc->ip, &tcp_server_ip, 4);
upsvc->url = (uint8 *) os_zalloc(512);
//
//os_bzero(user_bin, 100);
if (system_upgrade_userbin_check() == UPGRADE_FW_BIN1) {
os_sprintf(user_bin, UPDATE_URL, "user2.bin");
} else if (system_upgrade_userbin_check() == UPGRADE_FW_BIN2) {
os_sprintf(user_bin, UPDATE_URL, "user1.bin");
}
//
os_sprintf(upsvc->url, HTTP_HEAD_FRAME, "GET", user_bin, &server_url.server_host[0], 0);
//
os_free(user_bin);
//
if (system_upgrade_start(upsvc) == false) {
PERR("upgrade is already started\n");
os_free(upsvc->url);
os_free(upsvc);
}
}

请帮忙看看这个入口函数有没有问题,谢谢.

Statistics: Posted by xyz769 — Wed Mar 02, 2016 3:38 pm


]]>
2016-03-02T10:16:46+08:00 2016-03-02T10:16:46+08:00 https://bbs.espressif.com:443/viewtopic.php?t=1841&p=5895#p5895 <![CDATA[Re: 请教:OTA时,由USER2.BIN更新USER1.BIN出错,无法启动.]]>
从您的现象描述看来,无论运行 user1.bin 还是 user2.bin,您的程序擦写的都是 user2 的区域 (0x81000),这样导致运行 user2 时将正在运行的固件擦掉了而无法启动。

Statistics: Posted by ESP_Faye — Wed Mar 02, 2016 10:16 am


]]>
2016-03-01T22:06:21+08:00 2016-03-01T22:06:21+08:00 https://bbs.espressif.com:443/viewtopic.php?t=1841&p=5887#p5887 <![CDATA[[Solved] 请教:OTA时,由USER2.BIN更新USER1.BIN出错,无法启动.]]> SDK用的1.5.2,由USER1.BIN更新USER2.BIN时正常,重启后能运行到USER2.BIN,但随即从USER2.BIN更新USER1.BIN时,FLASH超时,触发WDT RESET ,系统一直报错,无法启动.重新通过串口刷一次USER1.BIN,重启后是从USER2.BIN启动.相关日志如下:

第一次启动信息:
ets Jan 8 2013,rst cause:2, boot mode:(3,7)

load 0x40100000, len 1856, room 16
tail 0
chksum 0x63
load 0x3ffe8000, len 776, room 8
tail 0
chksum 0x02
load 0x3ffe8310, len 552, room 8
tail 0
chksum 0x79
csum 0x79

2nd boot version : 1.5
SPI Speed : 40MHz
SPI Mode : QIO
SPI Flash Size & Map: 8Mbit(512KB+512KB)
jump to run user1 @ 1000

SDK version:1.5.2(80914727)
------------------------------------
OAT升级USER2.BIN部分日志:
HEAD /agent/update/user2.bin HTTP/1.1
Host: 192.168.1.140
Connection: close
Content-Length: 0
Cache-Control: max-age=0
Accept: */*
User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8,en;q=0.6,zh-TW;q=0.4

pusrdata = HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Accept-Ranges: bytes
ETag: W/"236356-1456840445390"
Last-Modified: Tue, 01 Mar 2016 13:54:05 GMT
Content-Type: application/octet-stream
Content-Length: 236356
Date: Tue, 01 Mar 2016 13:55:07 GMT
Connection: close


sumlength = 236356
sec_block 58
..........................................................upgrade_get_sum_disconcb 41696
erase sector=129 ok
erase sector=130 ok
erase sector=131 ok
erase sector=132 ok
erase sector=133 ok
---------------------------------------------
执行OAT升级USER2.BIN时,启动信息:
totallen = 236356
upgrade file download finished.
flash_crc = 896672383
img_crc = 896672383
upgrade_check
upgrade successful
reboot to use2
state: 5 -> 0 (0)
rm 0
pm close 7
del if0
usl

ets Jan 8 2013,rst cause:2, boot mode:(3,7)

load 0x40100000, len 1856, room 16
tail 0
chksum 0x63
load 0x3ffe8000, len 776, room 8
tail 0
chksum 0x02
load 0x3ffe8310, len 552, room 8
tail 0
chksum 0x79
csum 0x79

2nd boot version : 1.5
SPI Speed : 40MHz
SPI Mode : QIO
SPI Flash Size & Map: 8Mbit(512KB+512KB)
jump to run user2 @ 81000

SDK version:1.5.2(80914727)
----------------------------------------------
再次执行OAT,升级USER1.BIN日志信息:
HEAD /agent/update/user1.bin HTTP/1.1
Host: 192.168.1.140
Connection: close
Content-Length: 0
Cache-Control: max-age=0
Accept: */*
User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8,en;q=0.6,zh-TW;q=0.4

pusrdata = HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Accept-Ranges: bytes
ETag: W/"236356-1456840451625"
Last-Modified: Tue, 01 Mar 2016 13:54:11 GMT
Content-Type: application/octet-stream
Content-Length: 236356
Date: Tue, 01 Mar 2016 13:55:28 GMT
Connection: close


sumlength = 236356
sec_block 58
..........................................................upgrade_get_sum_disconcb 41696
erase sector=1 ok

ets Jan 8 2013,rst cause:4, boot mode:(3,7)

wdt reset
load 0x40100000, len 1856, room 16
tail 0
chksum 0x63
load 0x3ffe8000, len 776, room 8
tail 0
chksum 0x02
load 0x3ffe8310, len 552, room 8
tail 0
chksum 0x79
csum 0x79

2nd boot version : 1.5
SPI Speed : 40MHz
SPI Mode : QIO
SPI Flash Size & Map: 8Mbit(512KB+512KB)
jump to run user2 @ 81000

Fatal exception (0):
epc1=0x40201a18, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000
Fatal exception (0):
epc1=0x40201a18, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000
Fatal exception (0):
epc1=0x40201a18, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000
Fatal exception (0):
epc1=0x40201a18, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000
Fatal exception (0):
epc1=0x40201a18, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000
Fatal exception (0):
epc1=0x40201a18, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000
Fatal exception (0):
epc1=0x40201a18, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000
...................
后面一直是这个错误信息,重新上电直接报这个错误,无法启动.
通过串口单独烧录USER1.BIN到0X01000后,启动成功,启动信息:
ets Jan 8 2013,rst cause:2, boot mode:(3,6)

load 0x40100000, len 1856, room 16
tail 0
chksum 0x63
load 0x3ffe8000, len 776, room 8
tail 0
chksum 0x02
load 0x3ffe8310, len 552, room 8
tail 0
chksum 0x79
csum 0x79

2nd boot version : 1.5
SPI Speed : 40MHz
SPI Mode : QIO
SPI Flash Size & Map: 8Mbit(512KB+512KB)
jump to run user2 @ 81000
don't use rtc mem data

启动成功.
aaa.JPG

Statistics: Posted by xyz769 — Tue Mar 01, 2016 10:06 pm


]]>