diff --git a/targets/TARGET_STM/TARGET_STM32F4/flash_api.c b/targets/TARGET_STM/TARGET_STM32F4/flash_api.c index 45efe28b2b..ac3e080407 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/flash_api.c +++ b/targets/TARGET_STM/TARGET_STM32F4/flash_api.c @@ -129,9 +129,10 @@ uint32_t flash_get_sector_size(const flash_t *obj, uint32_t address) uint32_t flash_get_page_size(const flash_t *obj) { - // not applicable for STM32F4 - return (0x4000); // minimum sector size + // Flash of STM32F4 devices can be programed 1 byte at a time + return (1); } + uint32_t flash_get_start_address(const flash_t *obj) { return FLASH_BASE; diff --git a/targets/TARGET_STM/TARGET_STM32L0/flash_api.c b/targets/TARGET_STM/TARGET_STM32L0/flash_api.c index 91e55f9c00..c4e5b4063c 100644 --- a/targets/TARGET_STM/TARGET_STM32L0/flash_api.c +++ b/targets/TARGET_STM/TARGET_STM32L0/flash_api.c @@ -128,7 +128,8 @@ uint32_t flash_get_sector_size(const flash_t *obj, uint32_t address) { } uint32_t flash_get_page_size(const flash_t *obj) { - return FLASH_PAGE_SIZE; + /* Page size is the minimum programable size, which 4 bytes */ + return 4; } uint32_t flash_get_start_address(const flash_t *obj) { diff --git a/targets/TARGET_STM/TARGET_STM32L1/flash_api.c b/targets/TARGET_STM/TARGET_STM32L1/flash_api.c index 86572e619d..1044830eeb 100644 --- a/targets/TARGET_STM/TARGET_STM32L1/flash_api.c +++ b/targets/TARGET_STM/TARGET_STM32L1/flash_api.c @@ -127,7 +127,8 @@ uint32_t flash_get_sector_size(const flash_t *obj, uint32_t address) uint32_t flash_get_page_size(const flash_t *obj) { - return FLASH_PAGE_SIZE; + /* Page size is the minimum programable size, which 4 bytes */ + return 4; } uint32_t flash_get_start_address(const flash_t *obj) diff --git a/targets/TARGET_STM/TARGET_STM32L4/flash_api.c b/targets/TARGET_STM/TARGET_STM32L4/flash_api.c index 1dd5b224cf..178d9b3595 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/flash_api.c +++ b/targets/TARGET_STM/TARGET_STM32L4/flash_api.c @@ -221,8 +221,8 @@ uint32_t flash_get_sector_size(const flash_t *obj, uint32_t address) { * @return The size of a page */ uint32_t flash_get_page_size(const flash_t *obj) { - /* considering 1 sector = 1 page */ - return FLASH_PAGE_SIZE; + /* Page size is the minimum programable size, which 8 bytes */ + return 8; } /** Get start address for the flash region