乐鑫技术交流
直播中

刘浩

7年用户 1098经验值
私信 关注
[问答]

测试自定义服务器和ESP8285的FOTA升级过程,手动重置ESP8285时会引发致命的异常怎么解决?

我一直在测试自定义服务器和ESP8285的FOTA升级过程。
When running user1.bin -> the system OTA downloads user2.bin and reboots -> no problem.
However when running user2.bin -> after calling system_upgrade_start -> we receive the HEAD request on the server and the GET (download) -> after awhile (a few seconds) -> UART interface (used for debug) starts to send garbage.
当我手动重置ESP8285时,它会跳转到user2.bin但会引发致命的异常epc1=0x40201dd4(所有其他 epc=0x00000000)。

解决启动问题的唯一方法是刷新(UART 下载)有效的user1.bin。
手动刷新后user1.bin系统运行(不是刚刚闪存的user1.bin),但user2.bin。
尽管系统正在运行(user2.bin),但不知何故,保存在user1.bin上的内容可能会使系统崩溃 - 这很奇怪。
系统在哪里保存有关启动时要运行哪个user.bin的信息?
这似乎真的像是bootv1.7.bin上的一个错误
              

回帖(1)

岳臻俊

2024-7-11 16:23:42
为了解决这个问题,我们可以尝试以下步骤:

1. 首先,确保ESP8266/ESP8285固件是最新的,以避免已知的错误或问题。

2. 检查FOTA升级过程中的代码,确保在调用`system_upgrade_start()`之前,已经正确地设置了升级参数,例如升级模式(FOTA或SPIFFS)和升级包的大小。

3. 在升级过程中,确保服务器返回的HTTP响应头包含正确的`Content-Length`字段,以便ESP8266/ESP8285知道要接收的数据量。

4. 在升级过程中,使用`system_upgrade_userbin_check()`函数检查用户二进制文件的完整性。如果检查失败,可以采取相应的措施,例如重试升级或恢复到之前的固件版本。

5. 在升级过程中,确保UART接口的波特率设置正确,以避免数据传输错误。如果可能,尝试降低波特率以提高稳定性。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分