esp-idf/components/app_update
Peter Hoddie 3a768f51c3 app_update: add support for incremental flash erase
This patch modifies the OTA implementation to incremental erase flash sectors
as they are written, rather than bulk erasing them all at once when OTA begins.

This solves several problems:
- The bulk flash erase can take so long that it triggers the watchdog timer.
  Disabling the watchdog is an undesirable risk.
- The bulk erase interferes with the responsiveness of the system to user input.
- Incremental erasing eliminates the need to pass the firmware image size to
  esp_ota_begin to avoid erasing more flash sectors than required.
- When installing an OTA received via HTTP, the size of the firmware image is
  known when the content-length header is received. Calling esp_ota_begin at that
  time causes a long delay to do the bulk erase which causes the TCP transfer
  speed to be measurably slowed when the transfer resumes after the erase.
  Incremental erasing eliminates this TCP slowdown.

Update:
Rework so erase optimization is only applied when image_size is set to
OTA_WITH_SEQUENTIAL_WRITES #5246

Merges https://github.com/espressif/esp-idf/pull/5246
2020-09-04 12:05:02 +05:30
..
include app_update: add support for incremental flash erase 2020-09-04 12:05:02 +05:30
test esp_rom: extract common GPIO apis into esp_rom_gpio.h 2020-07-07 11:40:19 +08:00
CMakeLists.txt Merge branch 'feature/use_underlying_cmake_targets_for_idf_py' into 'master' 2020-01-21 17:05:47 +08:00
component.mk build: Add CONFIG_APP_PROJECT_VER to set the project version from Kconfig 2020-01-15 11:02:27 +00:00
esp_app_desc.c app_update: Fix case when elf file SHA256 should be printed by panic handler while cache is disabled 2020-03-10 20:26:03 +08:00
esp_ota_ops.c app_update: add support for incremental flash erase 2020-09-04 12:05:02 +05:30
Kconfig.projbuild app_update: Fix case when elf file SHA256 should be printed by panic handler while cache is disabled 2020-03-10 20:26:03 +08:00
Makefile.projbuild app_update: Remove deprecated "make erase_ota" target 2019-09-13 09:44:07 +10:00
otatool.py app_update: Add the baud option into otatool 2019-07-10 15:09:46 +02:00