ESP8266 Upgrade FOTA升级被折腾那些“小”事
FOTA升级,顾名思义就是空中升级,再顾名思义就是云端升级!就是通过把目标文件放到网上,然后触发下载并升级程序,最后就执行最新程序。就有小伙伴会问:我直接用线下载不就完事儿了(开发的时候确实可以这样)!但想想如果产品在用户手中了的话,举个例子:
若我们产品给卖到非洲去,而我们发现了八阿哥踪影,想要解决掉,那你怎么处理呢:1-搭乘枯燥牌灰机过去烧写更新程序(明显不合理);2-让客户寄过来升级后再寄回去(貌似可行),但如果下一个BUG呢?(貌似还是不能这样折腾,估计要被开除警告了);3-联网升级(非洲应该通网了),这个就比较靠谱。因此,FOTA就应运而生了!
最近在学习的是乐鑫ESP8266这款WIFI芯片,想着折腾FOTA升级,这样到时候就可以脱离USB线下载了!因此,本着学习的心,到各大视频网站(其实就B站了)去看相关资料,发现很多都是基于arduino开发,但是,不习惯使用这个啊(毕竟每天都是和C和汇编打交道的码农),最终找到了基于ESP8266_RTOS_SDK-2.0.0带系统相关视频,就照着学照着做呗!开始也还都顺风顺水,都愉快地把各类函数SDK给用上,期间好多问题也能在官方文档和视频上找到对应答案(此过程省略1万字____(虽然也不容易,但它不是今天主角啊))……
因为前面问题都能解决,因此不做赘述,毕竟问题不大嘛。但是有一个问题是一直困扰自己啊!!你能想象到春节前没放假就被它困扰,期间已经放弃好些回,午夜梦回,也依然没能解决好!其实现在看来问题很简单诶:1、ESP8266_RTOS_SDK-2.0.0这个文件里没有upgrade升级所需的文件,因此需要自己官网找(难度2 );2、升级命令发出后能够GET到服务器文件,但是死活就下载不下来(难度8
);3、从服务器下载好文件后CRC校验不通过,无法升级(难度4
)。
问题1:官方提供的SDK(ESP8266_RTOS_SDK-2.0.0)中并未有升级所需要的文件,因此升级所需要的函数system_upgrade_start(upgrade_server_info)就没法链接通过,因此就扒官方文档,从官方文件ESP8266_IOT_PLATFORM中提取到upgrade文件
就是这三个家伙!!!也就解决了编译不通过的问题!你以为这就好了嘛!too young too simple
,这才刚刚是开始,重头戏在后边啊!
问题2:当升级请求发出后,能通过HTTP协议GET到文件,但就死活下载不下来,一直报错误:串口打印错误1-超时了(一直不知道为啥):err1,exceed max time value,max val is 000689D0
《超过最大时间》
问题2—不知道服务器回应啥?
:server response with something else,check it!
《不知服务器应答啥了》
《一直回应一直在GET文件》
这两个问题困扰了很久很久很久很久,每天晚上下班回来就找问题。什么服务器不行啊!烧录线问题啊!供电问题啊!协议问题啊!能想到和能度娘到的统统都做了,依然毫无门路,就那么个放弃了!!但,但是,嘴上这么说,身体却很实诚啊!时不时还是想要解决这个问题啊。因此又经过零零散散时间实验和思考总结,最后根据打印信息锁定到upgrade.c文件的问题,但又不知道怎么改,又去网上找了好久好久(这个问题实在太少人遇到了,反正也根据差到的零星信息来调整),最后的最后,还是在前天中午午休时间查到了相关文档,简单地修改upgrade文件下的upgrade.c就可以了!!!那个文件说的是官方这个,C升级文件需要稍作修改,否则就无法进行相应下载,同时也解决了第一个超时问题,那叫一个舒心啊:
《服务器响应异常处理-修改upgrade.c文件》
《超过最长时间处理-修改upgrade.c文件》
问题3:正当晚上回来尝试后,发现确实可以第一次下载user2.bin并能正常启动,但是再重复升级user1.bin的时候,就出现CRC校验失败,参数不同:
《CRC校验失败》
这个问题比较容易,在乐鑫论坛bbs.espressif.com上找到了答案
《CRC问题处理—修改tools / gen_appbin.py文件》
最后的最后实现了正常的FOTA功能:
/***************************************************************************
SDK:基于官方提供的ESP8266_RTOS_SDK-2.0.0进行调试
硬件:ESP-12E开发板
平台:官方提供的Oracle VM VirtualBox和Ubuntu以及Windows开发
烧录软件: win下的烧录软件flash_download_tools_v3.6.8
服务器:MiniWebServer.exe搭建
***************************************************************************/
参考:
1: https://wenku.baidu.com/view/b34ae42880eb6294dc886c51.html
2:https://bbs.espressif.com/viewtopic.php?f=9&t=10398&p=20969&hilit=upgrade+crc#p20969
3-B站视频
4-各种相关文档