Commit 62a1b8a3 authored by Eric Mechin's avatar Eric Mechin Committed by Daniel DeGrasse
Browse files

drivers: flash: STM32WBA flash_stm32wba_fm.c: fix sector erase error



The STM32WBA Flash Manager driver is failing to erase a sector, instead of
erasing one sector, two sectors are erased.
Fix it by correctly calculating the number of sectors to erase

Signed-off-by: default avatarEric Mechin <eric.mechin@st.com>
parent f8b4a041
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -95,7 +95,7 @@ static int flash_stm32_erase(const struct device *dev, off_t offset,
			     size_t len)
{
	int rc;
	int sect_num = (len / FLASH_PAGE_SIZE) + 1;
	int sect_num;

	if (!flash_stm32_valid_range(dev, offset, len, true)) {
		LOG_ERR("Erase range invalid. Offset: %p, len: %zu",
@@ -107,6 +107,9 @@ static int flash_stm32_erase(const struct device *dev, off_t offset,
		return 0;
	}

	/* len is a multiple of FLASH_PAGE_SIZE */
	sect_num = len / FLASH_PAGE_SIZE;

	flash_stm32_sem_take(dev);

	LOG_DBG("Erase offset: %p, page: %ld, len: %zu, sect num: %d",