From 9e8eba797e250d808bca7807ef7dd44e23a56a5b Mon Sep 17 00:00:00 2001 From: Dave Hylands Date: Sat, 1 Aug 2015 20:22:08 -0700 Subject: [PATCH] stmhal: M7 Reset clocksources changed by DFU bootloader The DFU bootloader on the ST32F7 chip changes the clocksource for various possible boot sources (UART1, UART3, I2C1-3). This commit resets those clock sources back to their cold reset values. --- stmhal/system_stm32.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/stmhal/system_stm32.c b/stmhal/system_stm32.c index 72cc0b2ea5..7758aae305 100644 --- a/stmhal/system_stm32.c +++ b/stmhal/system_stm32.c @@ -307,4 +307,12 @@ void SystemClock_Config(void) { __fatal_error("HAL_RCC_ClockConfig"); } + +#if defined(STM32F7) + // The DFU bootloader changes the clocksource register from its default power + // on reset value, so we set it back here, so the clocksources are the same + // whether we were started from DFU or from a power on reset. + + RCC->DCKCFGR2 = 0; +#endif }