diff --git a/targets/stm32l432/src/flash.c b/targets/stm32l432/src/flash.c index 92395f1..b25ca0b 100644 --- a/targets/stm32l432/src/flash.c +++ b/targets/stm32l432/src/flash.c @@ -32,14 +32,17 @@ static void flash_unlock(void) void flash_option_bytes_init(int boot_from_dfu) { uint32_t val = 0xfffff8aa; - if (solo_is_locked()){ - val = 0xfffff8cc; - } - if (boot_from_dfu) - { + if (boot_from_dfu){ val &= ~(1<<27); // nBOOT0 = 0 (boot from system rom) } + else { + if (solo_is_locked()) + { + val = 0xfffff8cc; + } + } + val &= ~(1<<26); // nSWBOOT0 = 0 (boot from nBoot0) val &= ~(1<<25); // SRAM2_RST = 1 (erase sram on reset) val &= ~(1<<24); // SRAM2_PE = 1 (parity check en)