記錄ESP8266實現OTA和自己搭建服務器踩坑

ESP8266實現OTA的部分

使用的官方SDK版本:ESP8266_NONOS_SDK 3.1

使用SDK的時候主要注意兩點

1、根據自己的wifi模塊來配置upgrade.h文件裏面的兩個定義:
#define SPI_FLASH_SEC_SIZE 4096
#define LIMIT_ERASE_SIZE 0x1000
這兩個定義改變的時候要同時修改CFG_HOLDER這個定義的值,這個定義位置不固定,我使用的是mqtt功能,這個CFG_HOLDER定義在mqtt_config.h中,因爲只有這個值改變了纔會重新存儲改變的值。
2、根據flash的大小更改Makefile文件裏面SPI_SIZE_MAP定義。

SPI_SIZE_MAP flash大小(MByte) user1地址 user2地址
2 1024 0x1000 0x81000
3 2048 0x1000 0x81000
4 4096 0x1000 0x81000
5 2048 0x1000 0x101000
6 4096 0x1000 0x101000

用nodejs搭建服務器的部分

主要注意服務器反回http頭信息的時候如下:

‘Content-Disposition’:attachment; “filename=user2.1024.new.2.bin”,
’Content-Type’: ‘application/octet-stream’, //文件類型
‘Content-Length’: data.length


從USER1升級到USER2成功,但是從USER2升級到USER1就出現卡死然後看門狗復位的情況

目前具體原因沒找到,但是每次編譯USER1和USER2程序之前先clean一下工程再編譯,這樣生成的兩個二進制文件再燒錄到模塊中,並且更新服務器裏面的兩個程序文件,就可以解決了這個問題。經過多次升級測試目前還是挺穩定的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章