aboutsummaryrefslogtreecommitdiff
path: root/src/stm32f1.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/stm32f1.c')
-rw-r--r--src/stm32f1.c8
1 files 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;
}