1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-06-06 05:21:22 +03:00

Fixed PUYA flash write buffer alignment (#7491)

* Fixed PUYA flash write buffer alignment (round up)
This commit is contained in:
Drzony 2020-07-30 17:03:49 +02:00 committed by GitHub
parent 1041a9d752
commit 85ea47e9bc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -697,15 +697,16 @@ static SpiFlashOpResult spi_flash_write_puya(uint32_t offset, uint32_t *data, si
} else { } else {
bytesLeft = 0; bytesLeft = 0;
} }
rc = spi_flash_read(pos, flash_write_puya_buf, bytesNow); size_t bytesAligned = (bytesNow + 3) & ~3;
rc = spi_flash_read(pos, flash_write_puya_buf, bytesAligned);
if (rc != SPI_FLASH_RESULT_OK) { if (rc != SPI_FLASH_RESULT_OK) {
return rc; return rc;
} }
for (size_t i = 0; i < bytesNow / 4; ++i) { for (size_t i = 0; i < bytesAligned / 4; ++i) {
flash_write_puya_buf[i] &= *ptr; flash_write_puya_buf[i] &= *ptr;
++ptr; ++ptr;
} }
rc = spi_flash_write(pos, flash_write_puya_buf, bytesNow); rc = spi_flash_write(pos, flash_write_puya_buf, bytesAligned);
pos += bytesNow; pos += bytesNow;
} }
return rc; return rc;