收藏官网首页
查看: 23819|回复: 7

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

1

主题

18

帖子

290

积分

中级会员

Rank: 3Rank: 3

积分
290
跳转到指定楼层
楼主
发表于 2017-9-4 16:40:27 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
汉枫LPB120模块
官方工程师下午好,

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

34

主题

896

帖子

2274

积分

超级版主

Rank: 8Rank: 8

积分
2274
沙发
发表于 2017-9-5 09:55:22 | 只看该作者
你分别屏蔽OTA和传感器采集的部分,看看这两个功能是否是好的

点评

屏蔽OTA暂时还不会 在不执行OTA的时候设备是正常运转的 且连续几周运行正常 我把传感器采集部分屏蔽或把传感器拔掉之后,OTA也是正常的 我的传感器是串口的,应该是OTA从服务器下载固件和串口接收中断冲突,而导致  详情 回复 发表于 2017-9-5 11:37

1

主题

18

帖子

290

积分

中级会员

Rank: 3Rank: 3

积分
290
板凳
 楼主| 发表于 2017-9-5 11:37:54 | 只看该作者
boboP 发表于 2017-9-5 09:55
你分别屏蔽OTA和传感器采集的部分,看看这两个功能是否是好的

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

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

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

34

主题

896

帖子

2274

积分

超级版主

Rank: 8Rank: 8

积分
2274
地板
发表于 2017-9-6 10:15:51 | 只看该作者
有始有终 发表于 2017-9-5 11:37
屏蔽OTA暂时还不会  在不执行OTA的时候设备是正常运转的 且连续几周运行正常
我把传感器采集部分屏蔽或把 ...

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

点评

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

1

主题

18

帖子

290

积分

中级会员

Rank: 3Rank: 3

积分
290
5#
 楼主| 发表于 2017-9-8 00:55:41 | 只看该作者
汉枫LPB120模块
boboP 发表于 2017-9-6 10:15
可以参考串口协议的大数据接受部分,OTA开始时,模组会给MCU发送相应的串口数据的 ...

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

34

主题

896

帖子

2274

积分

超级版主

Rank: 8Rank: 8

积分
2274
6#
发表于 2017-9-8 10:16:36 | 只看该作者
有始有终 发表于 2017-9-8 00:55
我这是8266 SOC方案,也适用于MCU的串口协议?

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

点评

还得补充一下,就是数次(不一定是几次)重启之后,偶尔也能OTA成功。  详情 回复 发表于 2017-9-10 23:23
bobo,您好, 传感器数据是在串口接收中断里处理的,中断里没有对flash操作,也没有调用ICACHE_FLASH_ATTR的函数。 附图是OTA升级过程中,出现问题接连重启的日志,每次的重启基本都是这样,从服务器下载一部分固件  详情 回复 发表于 2017-9-9 20:58

1

主题

18

帖子

290

积分

中级会员

Rank: 3Rank: 3

积分
290
7#
 楼主| 发表于 2017-9-9 20:58:39 | 只看该作者
boboP 发表于 2017-9-8 10:16
SOC的话你看看你读取数据的时候是否对flash进行了操作

bobo,您好,

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

无标题.jpg (218.27 KB, 下载次数: 94)

无标题.jpg

1

主题

18

帖子

290

积分

中级会员

Rank: 3Rank: 3

积分
290
8#
 楼主| 发表于 2017-9-10 23:23:41 | 只看该作者
boboP 发表于 2017-9-8 10:16
SOC的话你看看你读取数据的时候是否对flash进行了操作

还得补充一下,就是数次(不一定是几次)重启之后,偶尔也能OTA成功。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表