- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七讲 ESP8266 RTOS SDK实现OTA
第七讲 ESP8266 RTOS SDK实
现OTA
在局域网内运行WebServer ,将固件放到WebServer 的目录下,使用网络助手触
发ESP8266从WebServer上下载新固件,然后ESP8266重启,运行新固件。
笔名:火柴棍。
技术交流QQ群:476685983 。
概述
• ESP8266能通过网络远程更新固件,需要将编译生成的user1.bin和user2.bin放到服务器上,可以使用用户自己的服
务器,也可以使用乐鑫官方提供的免费服务器。
• 一.使用用户自己的服务器,这方式比较简单,将新的固件放到服务器的路径下,ESP8266使用http get的方式下载新
的固件写到FLASH里面,然后重启运行新的固件。
• 二.使用乐鑫官方提供的免费服务器,这种方式要复杂一些,毕竟使用别人的东西,需要遵循别人定的规则,首先要从
乐鑫官网申请一个key(密匙),将这个密匙写到程序中,再将新的固件放到乐鑫的服务器上,然后填写一些和固件相关的
信息,程序中也要有相关的部分。程序可参照官方的: ESP8266 IOT PLATFORM,文档可参考:99C-
ESP8266_FOTA_UPGRADE_CN.PDF。
我在开发时使用的是自己的服务器,所以我主要讲解使用开发着自己的服务器做远程固件升级。首先需
要弄清楚ESP8266的flash区域划分,为什么有user1.bin和user2.bin?
ESP8266在FLASH中划分了两块空间存放固件,FLASH中的系统参数区设置了ESP8266启动时运行那块空间的固件,
user1还是user2。如果ESP8266当前运行的是user1.bin,那么固件更新时,就下载user2.bin,并且存储在user2.bin的
FLASH空间,下载完成后,设置系统参数,启动时运行user2.bin;如果ESP8266当前运行的是user2.bin,那么固件更新
时,就下载user1.bin,并且存储在user1.bin的FLASH空间,下载完成后,设置系统参数,启动时运行user1.bin。如果
固件更新过程中出现失败,ESP8266不会损坏,会继续运行当前运行的固件,并且下次启动时,也会运行当前固件。
1024KB的FLASH空间划分
如上图,是1MB的FLASH空间划分,这个空间划分不是由FLASH芯片的具体空间大小决定的,而是编
译代码时STEP 5如何选择(flash map),总共有6个选项,如下:
0= 512KB( 256KB+ 256KB) 如果FLASH芯片是4MB的,那么这6个选项都能选,只是
2=1024KB( 512KB+ 512KB) 选择2,那么剩下的3MB空间不能被操作;选择5,剩下
3=2048KB( 512KB+ 512KB) 的2MB空间不能被操作;选择3,则有1MB的空间可以被
4=4096KB( 512KB+ 512KB) 操作,用于数据存储;选择4,则有3MB的空间可以被操
5=2048KB(1024KB+1024KB) 作,用于数据存储。如果FLASH芯片是1MB的,那么只能
6=4096KB(1024KB+1024KB) 选择0或是2,选择0,则有512KB的剩余空间可被操作。
如果不做固件更新,那么user2.bin的空间也是可以被操作的,用于数据存储。
相关文件
官方的ESP8266_IOT_PLATFORM Demo中有OTA升级相关的代码,upgrade文件夹下有3个文件:
将upgrade文件夹拷贝到主目录下,需要在主目录下的Makefile中的SUBDIRS添加upgrade,
COMPONENTS_eagle.app.v6 添加upgrade/libupgrade.a。
例程实现
• 把服务器存放固件的路径传给设备,设备自己选择是下载user1.bin还是user2.bin,补全
下载路径。
• 如:我
文档评论(0)