Понимание OTA-обновлений ESP8266: вопрос об ограничениях
В настоящее время я изучаю OTA-обновления для прошивки ESP8266, и у меня есть вопрос, на который я не нашел ответа:
Вопрос: Ограничено ли количество ОТА-обновлений? Согласно документации, в ней говорится: "Flash Размер чипа должен быть достаточно большим, чтобы одновременно вместить старый скетч (работающий в данный момент) и новый скетч (OTA)." Означает ли это, что старый скетч всегда остаётся, и с каждым новым обновлением предыдущие версии продолжают существовать? Если да, означает ли это, что после нескольких обновлений флэш-память в конечном итоге заполнится, что предотвратит дальнейшие обновления?
Спасибо за помощь.
@M-125, 👍3
2 ответа
Ни одно обновление не заменяет самое старое (если оно присутствует), поэтому во флэш-памяти всегда может быть не более двух версий
Это утверждение учитывает в основном две причины:
- Для OTA-обновления требуется полный скетч, который выполняет обновление. Перезапись работающего скетча с помощью обновления почти во всех случаях приводит к сбою.
- ОТА-обновление может быть прервано или выйти из строя, поскольку беспроводное соединение, как известно, ненадежно. После таких событий устройству необходим рабочий скетч.
Поэтому устройство сохраняет новый скетч в пространстве, отдельном от старого.
Но как только кнопка "загрузить" завершен и, надеюсь, проверен (с помощью хеша или других средств контрольной суммы) на отсутствие ошибок и валидность, старый скетч больше не нужен. Система "переключается" из старого скетча в новый, в вашем случае загрузчик перезаписывает старый скетч новым, см. последняя часть документации, на которую вы ссылаетесь.
Пространство после запущенного нового скетча снова свободно для следующего OTA-обновления.
Однако существует физический предел, вызванный износом флэш-памяти. Обычно это далеко от количества OTA-обновлений, которые устройство получит за свой срок службы.
- Достаточно ли 1 МБ флэш-памяти для загрузки OTA в ESP-01?
- ОТА-программа SPIFFS на ESP8266
- OTA через MQTT для ESP32
- OTA-обновление ESP8266 с разными настройками размера флэш-памяти?
- Как безопасно переключиться с ArduinoOTA на ESPhome?
- esp8266 проблема с ОТА
- Как изменить тайм-аут загрузки ArduinoOTA?
- ESP-01 OTA Ошибка загрузки