完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
OTA的升级原理是什么?
ESP-01和ESP-01S有哪些区别? ESP-01S如何进行二次开发?支持二次开发吗?仅仅1M的flash支持OTA升级吗? |
|
相关推荐
1个回答
|
|
一、认识 ESP-01 和 ESP-01S 区别
这里并不是为了带货写文章,太多人在群里问这个问题了,单纯想把这个文章分享出来给大家参考; ESP-01 和 ESP-01S 都是安信可官方出品的,这里贴下对其主要的区别: ESP-01S 在电路设计上已经把 GPIO0、RST和En 引脚上拉,而 ESP-01 没有; ESP-01S 天线区域右下角只有一个指示灯,ESP8266-01天线区域右下角有两个指示灯。 ESP-01S背面有引脚说明,ESP-01背面有没有引脚说明。 二、调试接线 因为其的用途主要是给自有MCU单片机通讯连接单片机,所以很少有人用它二次开发,可能烧录固件会考虑到其的接线,这里不再贴接线方式了,而我目前用的是 ESP-plog 连接器,这里再贴下其介绍链接:ESP-Prog 下载与调试板介绍,不仅仅可以有自动下载功能,还可以对 ESP32 断点调试哦! 三、搭建环境和编译 3.1 环境搭建 找到OTA升级的工程, examples/system/ota/native_ota/1MB_flash/new_to_new_no_old,之后我们面板设置他的下载方式: 1、配置为 1M flash: 2、SPI模式 配置为 DOUT: 3、波特率改为 230400 ,可以提高下烧录速度! 烧录配置如图所示: 4、配置远程 3.2 编译 1、 第一次跑3.3分支,请先擦一下模块, make flash,再编译:make ota生成固件!这时候,会生成四个固件:ota.ota.bin、ota.app1.bin、ota.app2.bin 和 ota.bin ; 其关系为: ota.app1.bin != ota.app2.bin != ota.ota.bin ota.ota.bin = ota.app1.bin + ota.app2.bin 2、烧录 make flash 或者 用烧录工具这样烧录 3.3 开启本地web服务器 为了方便调试,我们可以用Python开启一个本地服务器,端口号为 8070 : python -m SimpleHTTPServer 8070 如下截图所示,可看到开启成功,并且得到局域网的地址 :192.168.31.48 ,这个是局域网内访问的本机设备,您在开发时候,你的电脑主机也会有所不同,请务必注意! 我们需要把每次编译生成的 ota.ota.bin 固件放在web服务器即可,这里我编译了2个版本的固件(ota_v1.bin和ota_v2.bin),并在打印上每个固件的版本,以区别是否远程升级成功。 我们测试下web服务器是否开启成功?我们用手机加入本地局域网,之后用手机浏览器打开上述的IP地址和端口号:192.168.31.48:8070, 发现可以访问不报错即可! 这时候,我们开始在源码修改下 web 服务器的配置,然后再 make ota 生成2个固件,放在web服务器里面,就如下图所示了: 放置2个固件之后,再用手机浏览器访问。 3.4 现象 首次上电,打印版本号为 version - 1.0 ,之后连接路由器,请求文件升级!来回升级哈哈! 四、FAQ 笔记 1、这个OTA的升级原理是什么? 命令“ make ota”将生成3个固件:“ xxx(项目名称).app1.bin”,“ xxx(项目名称).app2.bin”和“ xxx(项目名称).ota.bin”。您仅应将“ xxx(项目名称).ota.bin”上传到您的OTA服务器,并让应用下载它并且运行。 xxx.app1.bin用于下载到OTA_0分区,xxx.app2.bin用于下载到OTA_1分区。如果ESP8266的闪存大于“ 1 MB”,或者您选择了“复制OTA”功能,则xxx.app1.bin = xxx.app2.bin = xxx.ota.bin 。 否则,如果主板的闪存大小为1 MB,而您未选择“复制OTA”功能,则 xxx.app1.bin != xxx.app2.bin!= xxx.ota.bin,xxx.ota.bin = xxx.app1.bin + xxx.app2.bin。 因此,ESP8266的falsh大小配置对于OTA升级非常重要。 基于以上理论,我们可以看到对于ESP8266 + 2MB flash(或更大),app1和app2相同,可以直接下载而不用区别。但是对于ESP8285(ESP8266 + 1MB闪存),ota0(app1)和ota1(app2)是不同的,您需要在FOTA期间区分应该下载哪一个,并将其下载到哪个位置。 现在,示例代码中的方法是将app1和app2合成为“ xxxx(项目名称).ota.bin”。FOTA时,根据下载位置,仅将目标应用程序(app1或app2)写入闪存;而另一部分将被丢弃。 2、连接web服务器失败? 检查您的PC是否可以通过IP ping ESP8266,并确保menuconfig中的IP,AP和其他配置设置正确。如果您的web服务器是在外网,请检查是否允许ip地址访问?检查PC上是否有阻止进入连接的防火墙软件。 |
|
|
|
只有小组成员才能发言,加入小组>>
4523个成员聚集在这个小组
加入小组3339 浏览 0 评论
航顺(HK)联合电子发烧友推出“近距离体验高性能Cortex-M3,免费申请价值288元评估板
4268 浏览 1 评论
4295 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 13:59 , Processed in 0.713389 second(s), Total 75, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号