Ver Fonte

Merge branch 'bugfix/size_calculation_in_ota_v4.0' into 'release/v4.0'

Fix size calculation to erase partition range for OTA image (v4.0)

See merge request espressif/esp-idf!8267
Mahavir Jain há 5 anos atrás
pai
commit
cfb331e71b
1 ficheiros alterados com 2 adições e 1 exclusões
  1. 2 1
      components/app_update/esp_ota_ops.c

+ 2 - 1
components/app_update/esp_ota_ops.c

@@ -157,7 +157,8 @@ esp_err_t esp_ota_begin(const esp_partition_t *partition, size_t image_size, esp
     if ((image_size == 0) || (image_size == OTA_SIZE_UNKNOWN)) {
         ret = esp_partition_erase_range(partition, 0, partition->size);
     } else {
-        ret = esp_partition_erase_range(partition, 0, (image_size / SPI_FLASH_SEC_SIZE + 1) * SPI_FLASH_SEC_SIZE);
+        const int aligned_erase_size = (image_size + SPI_FLASH_SEC_SIZE - 1) & ~(SPI_FLASH_SEC_SIZE - 1);
+        ret = esp_partition_erase_range(partition, 0, aligned_erase_size);
     }
 
     if (ret != ESP_OK) {