diff options
Diffstat (limited to 'os/hal/platforms')
-rw-r--r-- | os/hal/platforms/STM32F4xx/hal_lld.c | 7 | ||||
-rw-r--r-- | os/hal/platforms/STM32L1xx/hal_lld.c | 8 |
2 files changed, 12 insertions, 3 deletions
diff --git a/os/hal/platforms/STM32F4xx/hal_lld.c b/os/hal/platforms/STM32F4xx/hal_lld.c index 5033c41c8..6922ff3df 100644 --- a/os/hal/platforms/STM32F4xx/hal_lld.c +++ b/os/hal/platforms/STM32F4xx/hal_lld.c @@ -62,8 +62,9 @@ void hal_lld_init(void) { been initialized in the board initialization file (board.c).*/
rccResetAHB1(!0);
rccResetAHB2(!0);
+ rccResetAHB3(!0);
rccResetAPB1(!RCC_APB1RSTR_PWRRST);
- rccResetAPB2(!RCC_APB2RSTR_SYSCFGRST);
+ rccResetAPB2(!0);
/* SysTick initialization using the system clock.*/
SysTick->LOAD = STM32_HCLK / CH_FREQUENCY - 1;
@@ -152,6 +153,10 @@ void stm32_clock_init(void) { ;
#endif
#endif /* STM32_NO_INIT */
+
+ /* SYSCFG clock enabled here because it is a multi-functional unit shared
+ among multiple drivers.*/
+ rccEnableAPB2(RCC_APB2ENR_SYSCFGEN, TRUE);
}
/** @} */
diff --git a/os/hal/platforms/STM32L1xx/hal_lld.c b/os/hal/platforms/STM32L1xx/hal_lld.c index c59aa3f1c..96b18a656 100644 --- a/os/hal/platforms/STM32L1xx/hal_lld.c +++ b/os/hal/platforms/STM32L1xx/hal_lld.c @@ -60,8 +60,8 @@ void hal_lld_init(void) { /* Reset of all peripherals.*/
rccResetAHB(!RCC_AHBRSTR_FLITFRST);
- rccResetAPB1(!0);
- rccResetAPB2(!RCC_APB2RSTR_SYSCFGRST);
+ rccResetAPB1(!RCC_APB1RSTR_PWRRST);
+ rccResetAPB2(!0);
/* SysTick initialization using the system clock.*/
SysTick->LOAD = STM32_HCLK / CH_FREQUENCY - 1;
@@ -170,6 +170,10 @@ void stm32_clock_init(void) { ;
#endif
#endif /* STM32_NO_INIT */
+
+ /* SYSCFG clock enabled here because it is a multi-functional unit shared
+ among multiple drivers.*/
+ rccEnableAPB2(RCC_APB2ENR_SYSCFGEN, TRUE);
}
#else
void stm32_clock_init(void) {}
|