完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在尝试在ESP8266上使用非操作系统 SDK 2.2.0 实现 OTA 升级,从本地服务器升级。
我的应用程序找到了该文件(我可以在服务器日志中看到 HEAD 和 GET 请求成功),并且 ESP 似乎删除了某些扇区。 但是,在擦除所有扇区后,似乎没有任何反应,system_upgrade_flag_check() 始终返回 UPGRADE_FLAG_START,直到升级超时到期(通过 struct upgrade_server_info.check_times 设置),即使超时值为 180000 秒。 SDK 的输出如下: system_upgrade_start upgrade_connect 50768 upgrade_connect_cb pusrdata = HTTP/1.0 200 正常 服务器不支持 HEAD 方法,现在发送 GET 消息 pusrdata = 服务器:SimpleHTTP/0.6 Python/2.7.9 日期:2018 年 6 月 5 日星期二 12:40:31 GMT 内容类型:application/octet-stream 内容长度:231316 最后修改时间: Mon, 04 Jun 2018 13:49:22 GMT 总长度 = 231316 sec_block 57 .........................................................upgrade_get_sum_disconcb 46888 擦除扇区 = 1 确定 擦除扇区=2 确定 擦除扇区 = 3 确定 (更多擦除... 擦除扇区 = 55 确定 擦除扇区 = 56 确定 擦除扇区 = 57 确定 全部=57 扇区擦除正常! upgrade_connect_cb 总计 = 17 总计 = 1477 总计 = 2937 (更完整... 总计 = 230697 总计 = 231519 (没有更多打印)... upgrade_check_cb << Called on timeout, here I check the flag indicating the result of the upgrade: it is always false (failed, upgrade_flag == false) 你有没有遇到过这个问题,并有一些想法? 在整个 OTA 过程中,我应该在控制台中执行哪些输出? 我的配置是: 第二次启动版本:1.7(5d6f877) SPI速度:40MHz SPI模式:QIO SPI Flash Size & Map: 32Mbit(512KB+512KB) 跳转运行 user2 @ 81000 使用 ./gen_misc.sh 编译,选择上述选项。 |
|
相关推荐
1个回答
|
|
从您提供的信息来看,您已经成功地实现了 OTA 升级的基本功能,包括找到文件、发送 HEAD 和 GET 请求以及擦除扇区。但是,在擦除所有扇区后,升级过程似乎没有继续进行。这可能是由于以下原因:
1. **升级超时设置**:您提到设置了超时值为 180000 秒,这是一个非常长的超时时间。请确保您的服务器在这段时间内能够持续响应 ESP8266 的请求。如果服务器响应时间过长,可能会导致超时。 2. **升级状态检查**:`system_upgrade_flag_check()` 函数返回 `UPGRADE_FLAG_START` 表示升级尚未开始。请检查您的代码,确保在擦除扇区后正确调用了 `system_upgrade_start()` 函数来启动升级过程。 3. **文件传输问题**:请确保文件传输过程中没有出现错误,例如网络中断、文件损坏等。您可以通过在 ESP8266 上添加日志输出来监控文件传输状态。 4. **固件兼容性**:请确保您上传的固件与 ESP8266 硬件和 SDK 版本兼容。不兼容的固件可能导致升级失败。 5. **内存问题**:OTA 升级过程中,ESP8266 需要足够的内存来存储新固件。请检查您的应用程序是否占用了太多内存,导致升级过程中出现问题。 为了解决这个问题,您可以尝试以下步骤: 1. **检查代码逻辑**:确保在擦除扇区后正确调用了 `system_upgrade_start()` 函数。 2. **增加日志输出**:在关键步骤(如擦除扇区、开始升级等)添加日志输出,以便更好地了解升级过程中的状态。 3. **减少超时时间**:尝试减少超时时间,例如设置为 60 秒或更短,以便更快地发现问题。 4. **检查服务器响应**:确保服务器在超时时间内能够响应 ESP8266 的请求。 5. **测试不同固件**:尝试使用不同版本的固件进行升级,以排除固件兼容性问题。 6. **检查内存使用情况**:确保您的应用程序没有占用过多内存,以免影响 OTA 升级过程。 希望这些建议能帮助您解决问题。如果问题仍然存在,请提供更多详细信息,以便我们能够更好地帮助您。 |
|
|
|
只有小组成员才能发言,加入小组>>
545浏览 6评论
457浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
438浏览 5评论
441浏览 4评论
411浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 12:22 , Processed in 0.867641 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号