summaryrefslogtreecommitdiff
path: root/ports/stm32/flashbdev.c
diff options
context:
space:
mode:
authorDamien George <damien@micropython.org>2023-11-01 19:12:09 +1100
committerDamien George <damien@micropython.org>2024-01-08 12:33:34 +1100
commitb6ab9e420b0a874eb2f8f6b7597430ed9e526bf7 (patch)
treec323b9c7839b3037169a4ae1f28eafcade531fb0 /ports/stm32/flashbdev.c
parentcf115918e66bea460256661848d9198ca6ca994d (diff)
stm32/flash: Change flash_erase to only erase a single sector at a time.
An erase sector sits in a given flash bank and some MCUs have two flash banks. If trying to erase a range of sectors and that range crosses from one flash bank into the next, the original implementation of `flash_erase()` would not handle this case and would do the wrong thing. This commit changes `flash_erase()` to only erase a single sector, which sidesteps the need to handle flash-bank-crossing. Most callers of this function only need to erase a single sector anyway. Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'ports/stm32/flashbdev.c')
-rw-r--r--ports/stm32/flashbdev.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/ports/stm32/flashbdev.c b/ports/stm32/flashbdev.c
index 19edde210..e96c54e79 100644
--- a/ports/stm32/flashbdev.c
+++ b/ports/stm32/flashbdev.c
@@ -161,7 +161,7 @@ static void flash_bdev_irq_handler(void) {
// This code erases the flash directly, waiting for it to finish
if (!(flash_flags & FLASH_FLAG_ERASED)) {
- flash_erase(flash_cache_sector_start, flash_cache_sector_size / 4);
+ flash_erase(flash_cache_sector_start);
flash_flags |= FLASH_FLAG_ERASED;
return;
}