原文:https://blog.csdn.net/chen244798611/article/details/51375337
)
在Makeflie 中改了之后, 编译。结果如下。
Support boot_v1.2 and +
Generate user1.2048.new.3.bin successully in folder bin/upgrade.
boot.bin------------>0x00000
user1.2048.new.3.bin--->0x01000
编译器给出了在FLASH中的地址。
当APP= 2时,编译结果如下:
boot.bin------------>0x00000
user2.2048.new.3.bin--->0x81000
我用的是2M , SIZE_MAP 应该设置为3。
乐鑫的flash是FM25Q32. 用0x81000.
(乐鑫官网提供的云端升级的DEMO程序。
https://github.com/dheeptuck/esp8266-ota
)
第二步 把生成的BIN文件 烧写到模块中
2M 的FLASH 有512+512 布局的,还是1024 +1024布局。
从串口输出的信息中知道手头的模块是512+512 的结构。
### Flash size 16Mbit: 512KB+512KB
boot_v1.2+.bin 0x00000
user1.1024.new.2.bin 0x01000
esp_init_data_default.bin 0x1fc000 (optional)
blank.bin 0x7e000 & 0x1fe000 //my used
用下载工具 把user1.bin 下载进模块。 准备升级user2.bin
第三步, 把user2.bin 放到服务器上。
ESP8266_NONOS_SDK 应用
• 升级接口说明:参考文档《ESP8266 Non-OS SDK API 参考》。
• 升级应用示例:参考
ESP8266_NONOS_SDK\examples\IoT_Demo\user\user_esp_platform.c,由
user_esp_platform_upgrade_begin 系列函数实现。
/***********************************************************************************************************/
昨天花了10块大洋,买了半颗心的博客上的DEMO。
下载下来,看了一下,和官网ESP8266_NONOS_SDK\examples\IoT_Demo\user\user_esp_platform.c,中的user_esp_platform_upgrade_begin 差不多。
只不过user_esp_platform_upgrade_begin 写的乱七八糟,让人头疼。 半颗心的有注释,并去掉一些无关的程序,看起来简单多了。
配合其博客,我觉得值。时间上值。
下载的程序,在我的服务器上不能获取。 找上位机程序的高手看了一下, 是GET的格式不对,改一下就好了。
可能每个人用的服务器不同,别人亲测可用,自己不一定能用。
升级失败。 升级的程序死机。
如果恢复, 需要下载一个没有BOOT的程序来覆盖。
否则, 如果还下载一个支持BOOT的程序,里面的运行选择标志位 没有被清除。会造成程序还是会运行那个死机的程序。
同时,我还发现云端升级的一些问题。
1 设备自动上网去找对应的BIN文件。 并自动升级。
缺失版本判断
没法选择性的升级。 把升级文件一放入,全部设备都会升级。
2 没有回滚机制。
就像我这样,升级一个错误的文件,莫名其妙的就死机了, 至少得回复成先前没有错误的程序里去吧。
今天升级成功了, 也运行正常。
但是在有限不多的升级中,其中有一次就卡在中间,一动不动。 重新上电就像没有程序了一样。
我觉得好像不太稳定。
-----------2018 8 24
文章评论(0条评论)
登录后参与讨论