ESP8266的SOC方案,OTA问题——在线等大侠
按照乐鑫官方建议,OTA升级时,使用user1和user2进行ping-pang循环,以防升级中途意外。但是机智云GAgent貌似采用了其它方式。根据提示信息
M2M cmd to check OTA!!!
M2M push WIFI OTA!
Logsystem: Cloud_isNeedOTA GAgent_OTA:yes!
start WIFI OTA...
WIFI OTA is running!
GAgent Download WIFI Firmware success,go to copy it to code area!
CRITICAL copy firmware success!
reboot to use1、
可以看到,GAgent先将新版固件下载到flash中某些地方暂存,下载完成后,再复制到乐鑫的user1代码区。这就引出两个问题:
1、我存储了大量用户数据在flash里面(按照乐鑫文档使用的用户数据区),GAgent OTA一刷,各种数据都被破坏掉了。——很显然是GAgent下载新固件使用了这些区域暂存。然而我不知道GAgent用了哪些区域啊,不知道怎么避开,求文档求说明。。。。。
2、目测GAgent没有使用user1和user2两套固件ping-pang循环升级的方式,那么万一升级过程中出现异常,那产品会不会变砖?已经销售到终端客户手上的产品变砖很惨啊。。。。。
求助,在线等。。
本帖最后由 Genius 于 2017-8-7 11:49 编辑
使用情况如图所示
求助,@boboP 大大 1、我存储了大量用户数据在flash里面(按照乐鑫文档使用的用户数据区),GAgent OTA一刷,各种数据都被破坏掉了。——很显然是GAgent下载新固件使用了这些区域暂存。然而我不知道GAgent用了哪些区域啊,不知道怎么避开,求文档求说明。。。。。
2、目测GAgent没有使用user1和user2两套固件ping-pang循环升级的方式,那么万一升级过程中出现异常,那产品会不会变砖?已经销售到终端客户手上的产品变砖很惨啊。。。。。
问题1确定你固件是没有问题的就可以,固件一定要先测试 郭庆帅 发表于 2017-8-3 11:39
1、我存储了大量用户数据在flash里面(按照乐鑫文档使用的用户数据区),GAgent OTA一刷,各种数据都被破坏 ...
谢谢回复!
我可能没有说清楚。
我硬件使用的是安信可ESP-12F模组
烧录的映像是这样的:
boot_v1.5.bin 0x00000
user1.4096.new.6.bin 0x01000
blank.bin 0x3fe000
esp_init_data_default.bin 0x3fc000
asc_xs.bin 0x208000(约600K)
用乐鑫提供的ESPFlashDownloadTool_v3.4.4.exe烧录上述映像,运行良好,单独更新烧录其中的user1.4096.new6.bin也运行良好。
我的操作步骤:
一、然后我将user1.4096.new.6.bin代码里面的宏SDK_VERSION从“13”改为“14”,其它不做任何改动,编译后本地烧录,能运行正常。
二、将“14”版上传到机智云固件升级(OTA)云端,使用固件类型“wifi”
三、重新将原“13”版user1.4096.new.6.bin本地烧录到esp8266中,正常运行;
四、使用云端OTA“验证固件”功能,根据串口调试信息,可以看到固件正常更新。但同时,读出asc_xs.bin(0x208000)的数据,已经发生变化。
下面是串口调试界面的输出:(中间二进制数据,是定时读出flash中,0x208000位置的数据输出,可以看到OTA升级后,该位置数据发生变化)
2017-08-03 16:52:00
flash address: 0x208000
83030000C02F00000000000020000000
18000C00040000000000000000000000
00000000000000003FFFF8003FFFF800
20000800200008002000080020000800
M2M cmd to check OTA!!!
M2M push WIFI OTA!
Logsystem: Cloud_isNeedOTA GAgent_OTA:yes!
start WIFI OTA...
WIFI OTA is running!
2017-08-03 16:52:02
flash address: 0x208000
83030000C02F00000000000020000000
18000C00040000000000000000000000
00000000000000003FFFF8003FFFF800
20000800200008002000080020000800
2017-08-03 16:52:04
flash address: 0x208000
83030000C02F00000000000020000000
18000C00040000000000000000000000
00000000000000003FFFF8003FFFF800
20000800200008002000080020000800
2017-08-03 16:52:05
flash address: 0x208000
83030000C02F00000000000020000000
18000C00040000000000000000000000
00000000000000003FFFF8003FFFF800
20000800200008002000080020000800
2017-08-03 16:52:07
flash address: 0x208000
83030000C02F00000000000020000000
18000C00040000000000000000000000
00000000000000003FFFF8003FFFF800
20000800200008002000080020000800
2017-08-03 16:52:09
flash address: 0x208000
83030000C02F00000000000020000000
18000C00040000000000000000000000
00000000000000003FFFF8003FFFF800
20000800200008002000080020000800
GAgent Download WIFI Firmware success,go to copy it to code area!
CRITICAL copy firmware success!
reboot to use2
state: 5 -> 0 (0)
rm 0
pm close 7
del if0
usl
2017-08-03 16:52:16
flash address: 0x208000
0100000000000000B46A050000100000
30304553503832360000303430323031
31340000663333313164656334623837
36633235343662636135383735373061
http reconnect callback, error code -11 !!!
reconnect callback, error code -11 !!!
Socket: logServer reconnect !!!
GAgentStatus change, lastGAgentStatus=0x073a, newGAgentStatus=0x070a
@@@@ GAgentStatus:70a | :0,0,1,0,1,0
OnBoarding: Station mode
WiFi status: disconnected router
WiFi status: disconnected m2m
RSSI 7
ets Jan8 2013,rst cause:1, 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: 32Mbit(1024KB+1024KB)
jump to run user2 @ 101000
....
请继续帮忙看看,谢谢了哈
郭庆帅 发表于 2017-8-3 11:36
1
晕,这个宝贵楼层居然被论坛自动隐藏了,现在才看到。
这幅图正是我想要的,将会完美解决俺的问题,谢谢了哈!! 小横 发表于 2017-8-3 17:01
谢谢回复!
我可能没有说清楚。
重新刷过,刷个其他项目的,再回来刷 本帖最后由 admaoV 于 2017-9-27 17:47 编辑
有个方法笨方法试试就是把25存储器 焊下来在编程器上读出来对比.试试看 我是比较懒懒得弄然后如果可以把25存储器换大点试试哈哈
:lol
我在想 把25存储器换成16M(128)的或者32M(256)的
admaoV 发表于 2017-9-27 17:46
有个方法笨方法试试就是把25存储器 焊下来在编程器上读出来对比.试试看 我是比较懒懒得弄然后如果可 ...
厉害了。。。。成功了一定要回来说一声哈!
页:
[1]