flash_ops: fix spi_flash_read with source buffer not from internal memory and size < 16

Closes https://github.com/espressif/esp-idf/issues/4010
This commit is contained in:
Ajita Chavan
2019-10-19 15:00:00 +08:00
committed by Mahavir Jain
parent 57a13b09cc
commit 32b8b60dc5
6 changed files with 57 additions and 3 deletions

View File

@@ -513,7 +513,17 @@ esp_err_t IRAM_ATTR spi_flash_read(size_t src, void *dstv, size_t size)
goto out;
}
COUNTER_ADD_BYTES(read, read_size);
#ifdef ESP_PLATFORM
if (esp_ptr_external_ram(dstv)) {
spi_flash_guard_end();
memcpy(dstv, ((uint8_t *) t) + left_off, size);
spi_flash_guard_start();
} else {
memcpy(dstv, ((uint8_t *) t) + left_off, size);
}
#else
memcpy(dstv, ((uint8_t *) t) + left_off, size);
#endif
goto out;
}
uint8_t *dstc = (uint8_t *) dstv;