From 40e833c74667b400de9a81f1e31c4e83ecbbfeed Mon Sep 17 00:00:00 2001 From: elpekenin Date: Wed, 2 Aug 2023 20:13:52 +0200 Subject: [PATCH] [Fix] Wrong fix of cache use for STM32 --- ports/stm/supervisor/internal_flash.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ports/stm/supervisor/internal_flash.c b/ports/stm/supervisor/internal_flash.c index c7b792616c..3bbc50ae74 100644 --- a/ports/stm/supervisor/internal_flash.c +++ b/ports/stm/supervisor/internal_flash.c @@ -302,9 +302,9 @@ mp_uint_t supervisor_flash_read_blocks(uint8_t *dest, uint32_t block, uint32_t n uint32_t sector_start_addr; flash_get_sector_info(src, §or_start_addr, §or_size); // Count how many blocks are left in the sector - uint32_t count = (sector_size - (src - sector_start_addr)) / FILESYSTEM_BLOCK_SIZE; + uint32_t blocks_left_in_sector = (sector_size - (src - sector_start_addr)) / FILESYSTEM_BLOCK_SIZE; - if (count <= num_blocks && _cache_flash_addr == sector_start_addr) { + if (num_blocks <= blocks_left_in_sector && _cache_flash_addr == sector_start_addr) { // Read is contained in the cache, so just read cache memcpy(dest, (_flash_cache + (src - sector_start_addr)), FILESYSTEM_BLOCK_SIZE * num_blocks); } else {