小横 发表于 2017-8-2 16:15:21

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循环升级的方式,那么万一升级过程中出现异常,那产品会不会变砖?已经销售到终端客户手上的产品变砖很惨啊。。。。。

求助,在线等。。


郭庆帅 发表于 2017-8-3 11:36:15

本帖最后由 Genius 于 2017-8-7 11:49 编辑

使用情况如图所示

小横 发表于 2017-8-2 16:31:00

求助,@boboP 大大

郭庆帅 发表于 2017-8-3 11:39:25

1、我存储了大量用户数据在flash里面(按照乐鑫文档使用的用户数据区),GAgent OTA一刷,各种数据都被破坏掉了。——很显然是GAgent下载新固件使用了这些区域暂存。然而我不知道GAgent用了哪些区域啊,不知道怎么避开,求文档求说明。。。。。

2、目测GAgent没有使用user1和user2两套固件ping-pang循环升级的方式,那么万一升级过程中出现异常,那产品会不会变砖?已经销售到终端客户手上的产品变砖很惨啊。。。。。
问题1确定你固件是没有问题的就可以,固件一定要先测试

小横 发表于 2017-8-3 17:01:42

郭庆帅 发表于 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-4 14:04:40

郭庆帅 发表于 2017-8-3 11:36
1

晕,这个宝贵楼层居然被论坛自动隐藏了,现在才看到。

这幅图正是我想要的,将会完美解决俺的问题,谢谢了哈!!

AIcainiao 发表于 2017-8-18 16:58:22

小横 发表于 2017-8-3 17:01
谢谢回复!

我可能没有说清楚。


重新刷过,刷个其他项目的,再回来刷

admaoV 发表于 2017-9-27 17:46:01

本帖最后由 admaoV 于 2017-9-27 17:47 编辑

有个方法笨方法试试就是把25存储器 焊下来在编程器上读出来对比.试试看 我是比较懒懒得弄然后如果可以把25存储器换大点试试哈哈

:lol
我在想 把25存储器换成16M(128)的或者32M(256)的

小横 发表于 2017-9-27 20:56:37

admaoV 发表于 2017-9-27 17:46
有个方法笨方法试试就是把25存储器 焊下来在编程器上读出来对比.试试看 我是比较懒懒得弄然后如果可 ...

厉害了。。。。成功了一定要回来说一声哈!
页: [1]
查看完整版本: ESP8266的SOC方案,OTA问题——在线等大侠