spi_flash: Add vTaskDelay while a long erasing (v3.1)
See merge request idf/esp-idf!4874
rc = spi_flash_unlock();
if (rc == ESP_ROM_SPIFLASH_RESULT_OK) {
for (size_t sector = start; sector != end && rc == ESP_ROM_SPIFLASH_RESULT_OK; ) {
+ #ifdef CONFIG_SPI_FLASH_YIELD_DURING_ERASE
+ int64_t start_time_us = esp_timer_get_time();
+ #endif
spi_flash_guard_start();
- if (sector % sectors_per_block == 0 && end - sector > sectors_per_block) {
+ if (sector % sectors_per_block == 0 && end - sector >= sectors_per_block) {
rc = esp_rom_spiflash_erase_block(sector / sectors_per_block);
sector += sectors_per_block;
COUNTER_ADD_BYTES(erase, sectors_per_block * SPI_FLASH_SEC_SIZE);