[Bugfix] stm32f1_probe would always return true, breaking support for all other targets
The intention of `if (t->driver)` conditional was to test if any of the cases in the preceeding switch/case were met. However t->driver was previously set to point to a default value in cortexm.c:200 and therefore this would always evaluate to true. I've replaced the broken if statement with a duplicate of the switch/case run above. It looks like this was introduced in09544bc710
(PR #92) but492d6c9cf8
maybe contributes to the confusion in this instance.
This commit is contained in:
parent
762e54060f
commit
101821ae31
|
@ -162,7 +162,12 @@ bool stm32f1_probe(target *t)
|
|||
block_size = 0x800;
|
||||
break;
|
||||
}
|
||||
if (t->driver) {
|
||||
switch(t->idcode) {
|
||||
case 0x444: /* STM32F03 RM0091 Rev.7 */
|
||||
case 0x445: /* STM32F04 RM0091 Rev.7 */
|
||||
case 0x440: /* STM32F05 RM0091 Rev.7 */
|
||||
case 0x448: /* STM32F07 RM0091 Rev.7 */
|
||||
case 0x442: /* STM32F09 RM0091 Rev.7 */
|
||||
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);
|
||||
|
@ -353,4 +358,3 @@ static bool stm32f1_cmd_option(target *t, int argc, char *argv[])
|
|||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue