git-svn-id: svn://svn.code.sf.net/p/chibios/svn/branches/stable_16.1.x@9998 35acf78f-673a-0410-8e92-d51de3d6d3f4
This commit is contained in:
Rocco Marco Guglielmi 2016-12-30 15:35:52 +00:00
parent 92e5b683e2
commit 4979be3873
6 changed files with 1243 additions and 1166 deletions

View File

@ -41,7 +41,6 @@
#define STM32_PLS STM32_PLS_LEV0 #define STM32_PLS STM32_PLS_LEV0
#define STM32_HSI_ENABLED TRUE #define STM32_HSI_ENABLED TRUE
#define STM32_HSI14_ENABLED TRUE #define STM32_HSI14_ENABLED TRUE
#define STM32_HSI48_ENABLED FALSE
#define STM32_LSI_ENABLED TRUE #define STM32_LSI_ENABLED TRUE
#define STM32_HSE_ENABLED FALSE #define STM32_HSE_ENABLED FALSE
#define STM32_LSE_ENABLED FALSE #define STM32_LSE_ENABLED FALSE

View File

@ -41,7 +41,6 @@
#define STM32_PLS STM32_PLS_LEV0 #define STM32_PLS STM32_PLS_LEV0
#define STM32_HSI_ENABLED TRUE #define STM32_HSI_ENABLED TRUE
#define STM32_HSI14_ENABLED TRUE #define STM32_HSI14_ENABLED TRUE
#define STM32_HSI48_ENABLED FALSE
#define STM32_LSI_ENABLED TRUE #define STM32_LSI_ENABLED TRUE
#define STM32_HSE_ENABLED FALSE #define STM32_HSE_ENABLED FALSE
#define STM32_LSE_ENABLED FALSE #define STM32_LSE_ENABLED FALSE

View File

@ -307,9 +307,10 @@ void stm32_clock_init(void) {
#endif #endif
/* Clock settings.*/ /* Clock settings.*/
/* CFGR2 must be configured first since CFGR value could change CFGR2 */
RCC->CFGR2 = STM32_PREDIV;
RCC->CFGR = STM32_PLLNODIV | STM32_MCOPRE | STM32_MCOSEL | STM32_PLLMUL | RCC->CFGR = STM32_PLLNODIV | STM32_MCOPRE | STM32_MCOSEL | STM32_PLLMUL |
STM32_PLLSRC | STM32_PPRE | STM32_HPRE; STM32_PLLSRC | STM32_PPRE | STM32_HPRE;
RCC->CFGR2 = STM32_PREDIV;
#if STM32_CECSW == STM32_CECSW_OFF #if STM32_CECSW == STM32_CECSW_OFF
RCC->CFGR3 = STM32_USBSW | STM32_I2C1SW | STM32_USART1SW; RCC->CFGR3 = STM32_USBSW | STM32_I2C1SW | STM32_USART1SW;
#else #else

View File

@ -499,6 +499,10 @@
* HSI related checks. * HSI related checks.
*/ */
#if STM32_HSI_ENABLED #if STM32_HSI_ENABLED
#if (STM32_SW == STM32_SW_PLL) && \
(STM32_PLLSRC == STM32_PLLSRC_HSI) && !STM32_HAS_HSI_PREDIV
#error "STM32_PLLSRC_HSI not available on this platform. Select STM32_PLLSRC_HSI_DIV2 instead."
#endif
#else /* !STM32_HSI_ENABLED */ #else /* !STM32_HSI_ENABLED */
#if STM32_SW == STM32_SW_HSI #if STM32_SW == STM32_SW_HSI
@ -548,6 +552,9 @@
* HSI48 related checks. * HSI48 related checks.
*/ */
#if STM32_HSI48_ENABLED #if STM32_HSI48_ENABLED
#if !STM32_HAS_HSI48
#error "HSI48 not available on this platform"
#endif
#else /* !STM32_HSI48_ENABLED */ #else /* !STM32_HSI48_ENABLED */
#if STM32_SW == STM32_SW_HSI48 #if STM32_SW == STM32_SW_HSI48
@ -662,7 +669,7 @@
#define STM32_ACTIVATE_PLL FALSE #define STM32_ACTIVATE_PLL FALSE
#endif #endif
/* HSE prescaler setting check.*/ /* HSE, HSI prescaler setting check.*/
#if ((STM32_PREDIV_VALUE >= 1) || (STM32_PREDIV_VALUE <= 16)) #if ((STM32_PREDIV_VALUE >= 1) || (STM32_PREDIV_VALUE <= 16))
#define STM32_PREDIV ((STM32_PREDIV_VALUE - 1) << 0) #define STM32_PREDIV ((STM32_PREDIV_VALUE - 1) << 0)
#else #else
@ -821,14 +828,16 @@
*/ */
#if (STM32_MCOPRE == STM32_MCOPRE_DIV1) || defined(__DOXYGEN__) #if (STM32_MCOPRE == STM32_MCOPRE_DIV1) || defined(__DOXYGEN__)
#define STM32_MCOCLK STM32_MCODIVCLK #define STM32_MCOCLK STM32_MCODIVCLK
#elif STM32_MCOPRE == STM32_MCOPRE_DIV2 #elif (STM32_MCOPRE == STM32_MCOPRE_DIV2) && STM32_HAS_MCO_PREDIV
#define STM32_MCOCLK (STM32_MCODIVCLK / 2) #define STM32_MCOCLK (STM32_MCODIVCLK / 2)
#elif STM32_MCOPRE == STM32_MCOPRE_DIV4 #elif (STM32_MCOPRE == STM32_MCOPRE_DIV4) && STM32_HAS_MCO_PREDIV
#define STM32_MCOCLK (STM32_MCODIVCLK / 4) #define STM32_MCOCLK (STM32_MCODIVCLK / 4)
#elif STM32_MCOPRE == STM32_MCOPRE_DIV8 #elif (STM32_MCOPRE == STM32_MCOPRE_DIV8) && STM32_HAS_MCO_PREDIV
#define STM32_MCOCLK (STM32_MCODIVCLK / 8) #define STM32_MCOCLK (STM32_MCODIVCLK / 8)
#elif STM32_MCOPRE == STM32_MCOPRE_DIV16 #elif (STM32_MCOPRE == STM32_MCOPRE_DIV16) && STM32_HAS_MCO_PREDIV
#define STM32_MCOCLK (STM32_MCODIVCLK / 16) #define STM32_MCOCLK (STM32_MCODIVCLK / 16)
#elif !STM32_HAS_MCO_PREDIV
#error "MCO_PREDIV not available on this platform. Select STM32_MCODIVCLK."
#else #else
#error "invalid STM32_MCOPRE value specified" #error "invalid STM32_MCOPRE value specified"
#endif #endif

File diff suppressed because it is too large Load Diff

View File

@ -73,6 +73,8 @@
***************************************************************************** *****************************************************************************
*** 16.1.6 *** *** 16.1.6 ***
- HAL: Fixed wrong clock init in STM32F0 port ad added more error checks
(bug #806).
- HAL: Fixed misplaced else in STM32F0 port (bug #805). - HAL: Fixed misplaced else in STM32F0 port (bug #805).
- HAL: Fixed flash waiting state misconfiguration in STM32L4 port (bug #804). - HAL: Fixed flash waiting state misconfiguration in STM32L4 port (bug #804).
- HAL: Added CR field to DAC configuration in STM32 port (bug #803). - HAL: Added CR field to DAC configuration in STM32 port (bug #803).