完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
- 有没有办法OTA下载新固件,但不能重新启动 - 并在下一次系统启动时检查新固件和交换机。我想进行 OTA 更新,但无需重新启动。
- ESP8266将当前正在使用的用户(1|2.bin)保存在哪里?如何将其重置为 user1.bin?从 user1.bin 到 user2.bin 进行 OTA 更新后,我刷新了 uC (user1.bin)、引导加载程序和设备/用户设置区域,但它仍然想加载user2.bin。 |
|
相关推荐
1个回答
|
|
|
ESP8266 进行 OTA 更新时,通常需要重启设备以加载新的固件。但是,您可以尝试以下方法来实现在下次启动时检查新固件并进行切换:
1. 使用两个 OTA 固件槽:ESP8266 支持两个 OTA 固件槽(user1.bin 和 user2.bin)。您可以在其中一个槽中上传新固件,然后在下次启动时检查新固件并进行切换。 2. 使用 SPIFFS 或 LittleFS 文件系统:将新固件存储在 SPIFFS 或 LittleFS 文件系统中,然后在下次启动时检查文件系统中的新固件。如果检测到新固件,您可以使用 Arduino 的 `ESP8266HTTPUpdateServer` 库进行 OTA 更新。 3. 手动触发 OTA 更新:在您的应用程序中添加一个功能,允许用户手动触发 OTA 更新。这样,您可以在用户准备好时进行更新,而无需立即重启设备。 关于您的问题: - ESP8266 将当前正在使用的固件槽保存在 NVS(非易失性存储器)中。您可以使用 `esp_partition` 库读取 NVS 并获取当前固件槽。 - 要将固件槽重置为 user1.bin,您可以使用 `esp_partition` 库将 NVS 中的固件槽设置为 user1.bin。然后,重启设备以加载新的固件槽。 - 如果在 OTA 更新后刷新了 uC(user1.bin)、引导程序和设备/用户设置区域,但设备仍然尝试加载 user2.bin,可能是因为 NVS 中的固件槽设置没有更新。请确保在 OTA 更新后更新 NVS 中的固件槽设置。 请注意,这种方法可能不适用于所有场景,因为某些设备可能需要立即重启以加载新固件。但是,您可以尝试上述方法来实现在下次启动时检查新固件并进行切换。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
944 浏览 0 评论
1671 浏览 0 评论
请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
1330 浏览 1 评论
1233 浏览 1 评论
5015 浏览 2 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
1250浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
927浏览 3评论
2330浏览 3评论
ESP-IDF的VScode插件的build按钮点击会报错的原因?
2526浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
1051浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 22:31 , Processed in 1.356744 second(s), Total 72, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
456
