From dd2092cec624604f4c019a621e11576054451e61 Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Sat, 19 Jan 2019 08:28:49 +0000 Subject: Fixed bug #1002. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@12547 110e8d01-0319-4d1e-a829-52ad28d1bb01 --- demos/STM32/RT-STM32F446ZE-NUCLEO144/cfg/mcuconf.h | 1 + ...446ZE-NUCLEO144 (OpenOCD, Flash and Run).launch | 104 ++++++++++----------- os/hal/ports/STM32/STM32F4xx/hal_lld.h | 20 ++++ readme.txt | 2 + 4 files changed, 75 insertions(+), 52 deletions(-) diff --git a/demos/STM32/RT-STM32F446ZE-NUCLEO144/cfg/mcuconf.h b/demos/STM32/RT-STM32F446ZE-NUCLEO144/cfg/mcuconf.h index 8172bd54a..d5b17b3aa 100644 --- a/demos/STM32/RT-STM32F446ZE-NUCLEO144/cfg/mcuconf.h +++ b/demos/STM32/RT-STM32F446ZE-NUCLEO144/cfg/mcuconf.h @@ -69,6 +69,7 @@ #define STM32_I2SSRC STM32_I2SSRC_PLLI2S #define STM32_SAI1SEL STM32_SAI2SEL_PLLR #define STM32_SAI2SEL STM32_SAI2SEL_PLLR +#define STM32_TIMPRE STM32_TIMPRE_PCLK #define STM32_CK48MSEL STM32_CK48MSEL_PLLALT #define STM32_PVD_ENABLE FALSE #define STM32_PLS STM32_PLS_LEV0 diff --git a/demos/STM32/RT-STM32F446ZE-NUCLEO144/debug/RT-STM32F446ZE-NUCLEO144 (OpenOCD, Flash and Run).launch b/demos/STM32/RT-STM32F446ZE-NUCLEO144/debug/RT-STM32F446ZE-NUCLEO144 (OpenOCD, Flash and Run).launch index 004be7955..9f9c83200 100644 --- a/demos/STM32/RT-STM32F446ZE-NUCLEO144/debug/RT-STM32F446ZE-NUCLEO144 (OpenOCD, Flash and Run).launch +++ b/demos/STM32/RT-STM32F446ZE-NUCLEO144/debug/RT-STM32F446ZE-NUCLEO144 (OpenOCD, Flash and Run).launch @@ -1,52 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/os/hal/ports/STM32/STM32F4xx/hal_lld.h b/os/hal/ports/STM32/STM32F4xx/hal_lld.h index 87061fe7d..cc5f1ee7b 100644 --- a/os/hal/ports/STM32/STM32F4xx/hal_lld.h +++ b/os/hal/ports/STM32/STM32F4xx/hal_lld.h @@ -204,20 +204,40 @@ * @brief Clock of timers connected to APB1 * (Timers 2, 3, 4, 5, 6, 7, 12, 13, 14). */ +#if !defined(STM32F446xx) || defined(__DOXYGEN__) #if (STM32_PPRE1 == STM32_PPRE1_DIV1) || defined(__DOXYGEN__) #define STM32_TIMCLK1 (STM32_PCLK1 * 1) #else #define STM32_TIMCLK1 (STM32_PCLK1 * 2) #endif +#else /* defined(STM32F446xx) */ +#if STM32_PPRE1 == STM32_PPRE1_DIV1 +#define STM32_TIMCLK1 (STM32_PCLK1 * 1) +#elif STM32_PPRE1 == STM32_PPRE1_DIV2 +#define STM32_TIMCLK1 (STM32_PCLK1 * 2) +#else +#define STM32_TIMCLK1 (STM32_PCLK1 * 4) +#endif +#endif /* defined(STM32F446xx) */ /** * @brief Clock of timers connected to APB2 (Timers 1, 8, 9, 10, 11). */ +#if !defined(STM32F446xx) || defined(__DOXYGEN__) #if (STM32_PPRE2 == STM32_PPRE2_DIV1) || defined(__DOXYGEN__) #define STM32_TIMCLK2 (STM32_PCLK2 * 1) #else #define STM32_TIMCLK2 (STM32_PCLK2 * 2) #endif +#else /* defined(STM32F446xx) */ +#if STM32_PPRE2 == STM32_PPRE2_DIV1 +#define STM32_TIMCLK2 (STM32_PCLK2 * 1) +#elif STM32_PPRE2 == STM32_PPRE2_DIV2 +#define STM32_TIMCLK2 (STM32_PCLK2 * 2) +#else +#define STM32_TIMCLK2 (STM32_PCLK2 * 4) +#endif +#endif /* defined(STM32F446xx) */ #else /* STM32_HAS_RCC_DCKCFGR && (STM32_TIMPRE == STM32_TIMPRE_HCLK) */ #if (STM32_PPRE1 == STM32_PPRE1_DIV1) || \ diff --git a/readme.txt b/readme.txt index 940e497a5..62af28253 100644 --- a/readme.txt +++ b/readme.txt @@ -196,6 +196,8 @@ - EX: Updated LIS302DL to 1.1.0 (backported to 18.2.1). - EX: Updated LPS25H to 1.1.0 (backported to 18.2.1). - EX: Updated LSM303DLHC to 1.1.0 (backported to 18.2.1). +- HAL: Fixed invalid timer frequency calculation for STM32F446 (bug #1002) + (backported to 18.2.2 and 17.6.5). - HAL: Fixed invalid checks in STM32H7 HAL (bug #1000) (backported to 18.2.2). - OTH: Fixed problem in STM32H743 GCC linker file (bug #998) -- cgit v1.2.3