完善资料让更多小伙伴认识你,还能领取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 中的固件槽设置。 请注意,这种方法可能不适用于所有场景,因为某些设备可能需要立即重启以加载新固件。但是,您可以尝试上述方法来实现在下次启动时检查新固件并进行切换。 |
|
|
|
只有小组成员才能发言,加入小组>>
429浏览 6评论
362浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
343浏览 5评论
349浏览 4评论
327浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-1 14:42 , Processed in 0.618736 second(s), Total 48, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191