1.OTA升级后无法跳转到user2 分区执行用户程序或一直错误打印无法正确引导程序。

在疫情归来后,本人完全忘记该操作的步骤,以为user1.bin和user2.bin升级没有任何区别,依旧把新固件user1.bin固件放到自己的搭建的服务器上进行OTA更新。导致固件ota第一次升级后无法跳转到0x101000地址,重新到0x1000运行用户程序。

 

该博主在这个问题讲解尤其细致

https://blog.csdn.net/xh870189248/article/details/80095139

ota升级备参考:https://wenku.baidu.com/view/b34ae42880eb6294dc886c51.html

 

esp8266 ota升级遇到问题小结   

1.1 user1.bin 和user2.bin 是相同的应用程序,选择不同编译选项生成的不同固件。做升级时,注意必须要分开编译!

如果第一次user1.bin升级到user2.bin的完成,下一次user2.bin升级到user1.bin也需要重新编译一个user1.bin放置到服务器上。

1.2.系统参数区存储了一个标志位,标识当前应当启动user1.bin或user2.bin,启动时运行boot,boot读取系统参数区的标志位,判断应该读取哪一个分区。ota下载完成,更新系统参数。通过标志位开启不同分区程序。

 

2.在编译选项中选择size_map 为选项5 ,程序中更新的flash地址也为0x101000,但是ota下载完成后,仍然从0x81000开始引导?

esp8266 ota升级遇到问题小结

esp8266 ota升级遇到问题小结

经过测试发现工具选项需要改变

esp8266 ota升级遇到问题小结

由于我错误选择Flash size 32Mbit ,对应的4MB(512+512KB)

导致flash_map 分区uesr2.bin 地址为0x81000

esp8266 ota升级遇到问题小结

相关文章: