From a7f6753153e6442116b8440ec06f46e425137261 Mon Sep 17 00:00:00 2001 From: Uwe Bonnes Date: Mon, 22 Jun 2015 10:02:17 +0200 Subject: STM32f0: F07 and F09 have 2kiByte blocksize. --- src/stm32f1.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/stm32f1.c b/src/stm32f1.c index 4d291d1..fecebdf 100644 --- a/src/stm32f1.c +++ b/src/stm32f1.c @@ -114,6 +114,7 @@ static void stm32f1_add_flash(target *t, bool stm32f1_probe(target *t) { size_t flash_size; + size_t block_size = 0x400; t->idcode = target_mem_read32(t, DBGMCU_IDCODE) & 0xfff; switch(t->idcode) { case 0x410: /* Medium density */ @@ -154,15 +155,18 @@ bool stm32f1_probe(target *t) break; case 0x448: /* STM32F07 RM0091 Rev.7 */ t->driver = "STM32F07"; + block_size = 0x800; break; case 0x442: /* STM32F09 RM0091 Rev.7 */ t->driver = "STM32F09"; + block_size = 0x800; break; } if (t->driver) { - flash_size = target_mem_read32(t, FLASHSIZE_F0) *0x400; + flash_size = (target_mem_read32(t, FLASHSIZE_F0) & 0xffff) *0x400; + gdb_outf("flash size %d block_size %d\n", flash_size, block_size); target_add_ram(t, 0x20000000, 0x5000); - stm32f1_add_flash(t, 0x8000000, flash_size, 0x400); + stm32f1_add_flash(t, 0x8000000, flash_size, block_size); target_add_commands(t, stm32f1_cmd_list, "STM32F0"); return true; } -- cgit v1.2.3