diff options
| author | Damien George <damien@micropython.org> | 2023-11-01 19:12:09 +1100 |
|---|---|---|
| committer | Damien George <damien@micropython.org> | 2024-01-08 12:33:34 +1100 |
| commit | b6ab9e420b0a874eb2f8f6b7597430ed9e526bf7 (patch) | |
| tree | c323b9c7839b3037169a4ae1f28eafcade531fb0 /ports/stm32/flashbdev.c | |
| parent | cf115918e66bea460256661848d9198ca6ca994d (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.c | 2 |
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; } |
