From cab5dcae560231dab06bf93d46e119ae31c6aed5 Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Mon, 31 Dec 2018 08:27:39 +0000 Subject: Fixed bug bug #994. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@12500 110e8d01-0319-4d1e-a829-52ad28d1bb01 --- os/hal/ports/STM32/LLD/TIMv1/hal_st_lld.c | 36 ------------------- os/hal/ports/STM32/LLD/TIMv1/hal_st_lld.h | 42 ++++++++++++++++++---- readme.txt | 2 ++ ...ADC (Select ELF file)(OpenOCD, Just Run).launch | 2 +- 4 files changed, 39 insertions(+), 43 deletions(-) diff --git a/os/hal/ports/STM32/LLD/TIMv1/hal_st_lld.c b/os/hal/ports/STM32/LLD/TIMv1/hal_st_lld.c index 2cf7d7ed2..71b2251ec 100644 --- a/os/hal/ports/STM32/LLD/TIMv1/hal_st_lld.c +++ b/os/hal/ports/STM32/LLD/TIMv1/hal_st_lld.c @@ -43,12 +43,6 @@ #error "TIM2 is not a 32bits timer" #endif -#if defined(STM32_TIM2_IS_USED) -#error "ST requires TIM2 but the timer is already used" -#else -#define STM32_TIM2_IS_USED -#endif - #define ST_HANDLER STM32_TIM2_HANDLER #define ST_NUMBER STM32_TIM2_NUMBER #define ST_CLOCK_SRC STM32_TIMCLK1 @@ -68,12 +62,6 @@ #error "TIM3 is not a 32bits timer" #endif -#if defined(STM32_TIM3_IS_USED) -#error "ST requires TIM3 but the timer is already used" -#else -#define STM32_TIM3_IS_USED -#endif - #define ST_HANDLER STM32_TIM3_HANDLER #define ST_NUMBER STM32_TIM3_NUMBER #define ST_CLOCK_SRC STM32_TIMCLK1 @@ -93,12 +81,6 @@ #error "TIM4 is not a 32bits timer" #endif -#if defined(STM32_TIM4_IS_USED) -#error "ST requires TIM4 but the timer is already used" -#else -#define STM32_TIM4_IS_USED -#endif - #define ST_HANDLER STM32_TIM4_HANDLER #define ST_NUMBER STM32_TIM4_NUMBER #define ST_CLOCK_SRC STM32_TIMCLK1 @@ -118,12 +100,6 @@ #error "TIM5 is not a 32bits timer" #endif -#if defined(STM32_TIM5_IS_USED) -#error "ST requires TIM5 but the timer is already used" -#else -#define STM32_TIM5_IS_USED -#endif - #define ST_HANDLER STM32_TIM5_HANDLER #define ST_NUMBER STM32_TIM5_NUMBER #define ST_CLOCK_SRC STM32_TIMCLK1 @@ -143,12 +119,6 @@ #error "TIM21 is not a 32bits timer" #endif -#if defined(STM32_TIM21_IS_USED) -#error "ST requires TIM21 but the timer is already used" -#else -#define STM32_TIM21_IS_USED -#endif - #define ST_HANDLER STM32_TIM21_HANDLER #define ST_NUMBER STM32_TIM21_NUMBER #define ST_CLOCK_SRC STM32_TIMCLK2 @@ -160,12 +130,6 @@ #error "TIM21 is not a 32bits timer" #endif -#if defined(STM32_TIM22_IS_USED) -#error "ST requires TIM22 but the timer is already used" -#else -#define STM32_TIM22_IS_USED -#endif - #define ST_HANDLER STM32_TIM22_HANDLER #define ST_NUMBER STM32_TIM22_NUMBER #define ST_CLOCK_SRC STM32_TIMCLK2 diff --git a/os/hal/ports/STM32/LLD/TIMv1/hal_st_lld.h b/os/hal/ports/STM32/LLD/TIMv1/hal_st_lld.h index e9e1a83c8..f1564c47d 100644 --- a/os/hal/ports/STM32/LLD/TIMv1/hal_st_lld.h +++ b/os/hal/ports/STM32/LLD/TIMv1/hal_st_lld.h @@ -91,37 +91,67 @@ #if STM32_ST_USE_TIMER == 2 #if !STM32_HAS_TIM2 -#error "TIM2 not present" +#error "TIM2 not present in the selected device" +#endif +#if defined(STM32_TIM2_IS_USED) +#error "ST requires TIM2 but the timer is already used" +#else +#define STM32_TIM2_IS_USED #endif #define STM32_ST_TIM STM32_TIM2 #elif STM32_ST_USE_TIMER == 3 #if !STM32_HAS_TIM3 -#error "TIM3 not present" +#error "TIM3 not present in the selected device" +#endif +#if defined(STM32_TIM3_IS_USED) +#error "ST requires TIM3 but the timer is already used" +#else +#define STM32_TIM3_IS_USED #endif #define STM32_ST_TIM STM32_TIM3 #elif STM32_ST_USE_TIMER == 4 #if !STM32_HAS_TIM4 -#error "TIM4 not present" +#error "TIM4 not present in the selected device" +#endif +#if defined(STM32_TIM4_IS_USED) +#error "ST requires TIM4 but the timer is already used" +#else +#define STM32_TIM4_IS_USED #endif #define STM32_ST_TIM STM32_TIM4 #elif STM32_ST_USE_TIMER == 5 #if !STM32_HAS_TIM5 -#error "TIM5 not present" +#error "TIM5 not present in the selected device" +#endif +#if defined(STM32_TIM5_IS_USED) +#error "ST requires TIM5 but the timer is already used" +#else +#define STM32_TIM5_IS_USED #endif #define STM32_ST_TIM STM32_TIM5 #elif STM32_ST_USE_TIMER == 21 #if !STM32_HAS_TIM21 -#error "TIM21 not present" +#error "TIM21 not present in the selected device" +#endif +#if defined(STM32_TIM21_IS_USED) +#error "ST requires TIM21 but the timer is already used" +#else +#define STM32_TIM21_IS_USED #endif #define STM32_ST_TIM STM32_TIM21 #elif STM32_ST_USE_TIMER == 22 #if !STM32_HAS_TIM22 -#error "TIM22 not present" +#error "TIM22 not present in the selected device" +#endif +#if defined(STM32_TIM22_IS_USED) +#error "ST requires TIM22 but the timer is already used" +#else +#define STM32_TIM22_IS_USED #endif #define STM32_ST_TIM STM32_TIM22 diff --git a/readme.txt b/readme.txt index 362089019..278c35072 100644 --- a/readme.txt +++ b/readme.txt @@ -184,6 +184,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 misplaced check in STM32 ST driver (bug #994) + (backported to 18.2.2 and 17.6.5). - OTH: Fixed ARM CMx vectors table without thumb bit set for unused vectors (bug #993)(backported to 18.2.2). - HAL: Fixed STM32F7xx I2SPLL not fully initialized (bug #992) diff --git a/testhal/STM32/multi/ADC/debug/STM32-ADC (Select ELF file)(OpenOCD, Just Run).launch b/testhal/STM32/multi/ADC/debug/STM32-ADC (Select ELF file)(OpenOCD, Just Run).launch index d2789a8e9..1a9bdb0f6 100644 --- a/testhal/STM32/multi/ADC/debug/STM32-ADC (Select ELF file)(OpenOCD, Just Run).launch +++ b/testhal/STM32/multi/ADC/debug/STM32-ADC (Select ELF file)(OpenOCD, Just Run).launch @@ -33,7 +33,7 @@ - + -- cgit v1.2.3