有始有终 发表于 2017-9-4 16:40:27

8266 SOC OTA时固件下载与传感器获取数值程序冲突

官方工程师下午好,

我在8266 SOC方案OTA的时候,发现8266从服务器下载固件的过程与我的串口传感器读数据过程冲突,导致下载分很多次执行,一直重启不停。
我计划通过system_upgrade_flag_check函数想获取升级状态,但貌似固件下载过程不算做这个函数所谓的升级已开始的过程(我推断的),所以通过这个函数在固件下载过程中获取到的返回值一直都是0x00,我想问有啥简单的方法能获取到固件开始下载或计划下载的标志位吗?这样我就可以在下载的时候暂停我的传感器发送数据,解决始终重启的问题。

boboP 发表于 2017-9-5 09:55:22

你分别屏蔽OTA和传感器采集的部分,看看这两个功能是否是好的

有始有终 发表于 2017-9-5 11:37:54

boboP 发表于 2017-9-5 09:55
你分别屏蔽OTA和传感器采集的部分,看看这两个功能是否是好的

屏蔽OTA暂时还不会在不执行OTA的时候设备是正常运转的 且连续几周运行正常
我把传感器采集部分屏蔽或把传感器拔掉之后,OTA也是正常的

我的传感器是串口的,应该是OTA从服务器下载固件和串口接收中断冲突,而导致不停重启以致分段下载

有什么简便的方法能识别固件开始下载了吗

boboP 发表于 2017-9-6 10:15:51

有始有终 发表于 2017-9-5 11:37
屏蔽OTA暂时还不会在不执行OTA的时候设备是正常运转的 且连续几周运行正常
我把传感器采集部分屏蔽或把 ...

可以参考串口协议的大数据接受部分,OTA开始时,模组会给MCU发送相应的串口数据的

有始有终 发表于 2017-9-8 00:55:41

boboP 发表于 2017-9-6 10:15
可以参考串口协议的大数据接受部分,OTA开始时,模组会给MCU发送相应的串口数据的 ...

我这是8266 SOC方案,也适用于MCU的串口协议?

boboP 发表于 2017-9-8 10:16:36

有始有终 发表于 2017-9-8 00:55
我这是8266 SOC方案,也适用于MCU的串口协议?

SOC的话你看看你读取数据的时候是否对flash进行了操作

有始有终 发表于 2017-9-9 20:58:39

boboP 发表于 2017-9-8 10:16
SOC的话你看看你读取数据的时候是否对flash进行了操作

bobo,您好,

传感器数据是在串口接收中断里处理的,中断里没有对flash操作,也没有调用ICACHE_FLASH_ATTR的函数。
附图是OTA升级过程中,出现问题接连重启的日志,每次的重启基本都是这样,从服务器下载一部分固件,然后重启。

有始有终 发表于 2017-9-10 23:23:41

boboP 发表于 2017-9-8 10:16
SOC的话你看看你读取数据的时候是否对flash进行了操作

还得补充一下,就是数次(不一定是几次)重启之后,偶尔也能OTA成功。
页: [1]
查看完整版本: 8266 SOC OTA时固件下载与传感器获取数值程序冲突