From 8d13dda5a9ce29cfdbbf3809f4ccfe6851fb5ff3 Mon Sep 17 00:00:00 2001 From: Drzony Date: Wed, 29 Jul 2020 23:24:36 +0200 Subject: [PATCH 1/2] Fixed PUYA flash write buffer alignment --- cores/esp8266/Esp.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/cores/esp8266/Esp.cpp b/cores/esp8266/Esp.cpp index 1127eef80e..b705f0b2ca 100644 --- a/cores/esp8266/Esp.cpp +++ b/cores/esp8266/Esp.cpp @@ -697,15 +697,16 @@ static SpiFlashOpResult spi_flash_write_puya(uint32_t offset, uint32_t *data, si } else { bytesLeft = 0; } - rc = spi_flash_read(pos, flash_write_puya_buf, bytesNow); + size_t bytesAligned = (bytesNow & 3) ? ((bytesNow & ~3) + 4) : bytesNow; + rc = spi_flash_read(pos, flash_write_puya_buf, bytesAligned); if (rc != SPI_FLASH_RESULT_OK) { 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; ++ptr; } - rc = spi_flash_write(pos, flash_write_puya_buf, bytesNow); + rc = spi_flash_write(pos, flash_write_puya_buf, bytesAligned); pos += bytesNow; } return rc; From 063b9b7c295242d53a97397b93f91bc642ea959f Mon Sep 17 00:00:00 2001 From: Drzony Date: Thu, 30 Jul 2020 08:11:59 +0200 Subject: [PATCH 2/2] fixup! Fixed PUYA flash write buffer alignment --- cores/esp8266/Esp.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cores/esp8266/Esp.cpp b/cores/esp8266/Esp.cpp index b705f0b2ca..80d969e40c 100644 --- a/cores/esp8266/Esp.cpp +++ b/cores/esp8266/Esp.cpp @@ -697,7 +697,7 @@ static SpiFlashOpResult spi_flash_write_puya(uint32_t offset, uint32_t *data, si } else { bytesLeft = 0; } - size_t bytesAligned = (bytesNow & 3) ? ((bytesNow & ~3) + 4) : bytesNow; + size_t bytesAligned = (bytesNow + 3) & ~3; rc = spi_flash_read(pos, flash_write_puya_buf, bytesAligned); if (rc != SPI_FLASH_RESULT_OK) { return rc;