diff options
-rw-r--r-- | os/hal/ports/STM32/LLD/ADCv3/hal_adc_lld.c | 2 | ||||
-rw-r--r-- | os/hal/ports/STM32/LLD/SDMMCv1/hal_sdc_lld.c | 2 | ||||
-rw-r--r-- | os/hal/ports/STM32/LLD/TIMv1/hal_st_lld.c | 18 | ||||
-rw-r--r-- | os/hal/ports/STM32/STM32H7xx/hal_lld.c | 2 | ||||
-rw-r--r-- | os/hal/ports/STM32/STM32H7xx/hal_lld.h | 6 | ||||
-rw-r--r-- | os/oslib/include/chmempools.h | 13 | ||||
-rw-r--r-- | readme.txt | 9 |
7 files changed, 46 insertions, 6 deletions
diff --git a/os/hal/ports/STM32/LLD/ADCv3/hal_adc_lld.c b/os/hal/ports/STM32/LLD/ADCv3/hal_adc_lld.c index 1991ccb5b..790af8a49 100644 --- a/os/hal/ports/STM32/LLD/ADCv3/hal_adc_lld.c +++ b/os/hal/ports/STM32/LLD/ADCv3/hal_adc_lld.c @@ -496,7 +496,7 @@ void adc_lld_init(void) { #if defined(ADC3_4_COMMON)
ADCD3.adcc = ADC3_4_COMMON;
#elif defined(ADC123_COMMON)
- ADCD1.adcc = ADC123_COMMON;
+ ADCD3.adcc = ADC123_COMMON;
#else
ADCD3.adcc = ADC3_COMMON;
#endif
diff --git a/os/hal/ports/STM32/LLD/SDMMCv1/hal_sdc_lld.c b/os/hal/ports/STM32/LLD/SDMMCv1/hal_sdc_lld.c index 0015258d9..a5d2a5cb7 100644 --- a/os/hal/ports/STM32/LLD/SDMMCv1/hal_sdc_lld.c +++ b/os/hal/ports/STM32/LLD/SDMMCv1/hal_sdc_lld.c @@ -503,7 +503,7 @@ void sdc_lld_stop(SDCDriver *sdcp) { sdcp->sdmmc->DTIMER = 0;
/* DMA stream released.*/
- dmaStreamRelease(sdcp->dma);
+ dmaStreamFreeI(sdcp->dma);
sdcp->dma = NULL;
/* Clock deactivation.*/
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 b99ebdde8..c00c973dd 100644 --- a/os/hal/ports/STM32/LLD/TIMv1/hal_st_lld.c +++ b/os/hal/ports/STM32/LLD/TIMv1/hal_st_lld.c @@ -42,6 +42,9 @@ #if !STM32_HAS_TIM2
#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"
+#endif
#if (OSAL_ST_RESOLUTION == 32) && !STM32_TIM2_IS_32BITS
#error "TIM2 is not a 32bits timer"
#endif
@@ -64,6 +67,9 @@ #if !STM32_HAS_TIM3
#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"
+#endif
#if (OSAL_ST_RESOLUTION == 32) && !STM32_TIM3_IS_32BITS
#error "TIM3 is not a 32bits timer"
#endif
@@ -86,6 +92,9 @@ #if !STM32_HAS_TIM4
#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"
+#endif
#if (OSAL_ST_RESOLUTION == 32) && !STM32_TIM4_IS_32BITS
#error "TIM4 is not a 32bits timer"
#endif
@@ -108,6 +117,9 @@ #if !STM32_HAS_TIM5
#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"
+#endif
#if (OSAL_ST_RESOLUTION == 32) && !STM32_TIM5_IS_32BITS
#error "TIM5 is not a 32bits timer"
#endif
@@ -130,6 +142,9 @@ #if !STM32_HAS_TIM21
#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"
+#endif
#if (OSAL_ST_RESOLUTION == 32) && !STM32_TIM21_IS_32BITS
#error "TIM21 is not a 32bits timer"
#endif
@@ -144,6 +159,9 @@ #if !STM32_HAS_TIM22
#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"
+#endif
#if (OSAL_ST_RESOLUTION == 32) && !STM32_TIM22_IS_32BITS
#error "TIM21 is not a 32bits timer"
#endif
diff --git a/os/hal/ports/STM32/STM32H7xx/hal_lld.c b/os/hal/ports/STM32/STM32H7xx/hal_lld.c index 60ce00310..df3e2f478 100644 --- a/os/hal/ports/STM32/STM32H7xx/hal_lld.c +++ b/os/hal/ports/STM32/STM32H7xx/hal_lld.c @@ -206,7 +206,7 @@ void stm32_clock_init(void) { /* Fix for errata 2.2.15: Reading from AXI SRAM might lead to data
read corruption.
AXI->TARG7_FN_MOD.*/
- *((volatile uint32_t *)0x51000000 + 0x1108 + 0x7000) = 0x00000001U;
+ *((volatile uint32_t *)(0x51000000 + 0x1108 + 0x7000)) = 0x00000001U;
#endif
/* PWR initialization.*/
diff --git a/os/hal/ports/STM32/STM32H7xx/hal_lld.h b/os/hal/ports/STM32/STM32H7xx/hal_lld.h index 926630588..2c6e75b6b 100644 --- a/os/hal/ports/STM32/STM32H7xx/hal_lld.h +++ b/os/hal/ports/STM32/STM32H7xx/hal_lld.h @@ -494,9 +494,9 @@ #define STM32_SAI4ASEL_PER_CK RCC_D3CCIPR_SAI4ASEL_VALUE(4U)
#define STM32_ADCSEL_PLL2_P_CK RCC_D3CCIPR_ADCSEL_VALUE(0U)
-#define STM32_ADCSEL_PLL3_R_CK RCC_D3CCIPR_ADCSEL_VALUE(0U)
-#define STM32_ADCSEL_PER_CK RCC_D3CCIPR_ADCSEL_VALUE(0U)
-#define STM32_ADCSEL_DISABLE RCC_D3CCIPR_ADCSEL_VALUE(0U)
+#define STM32_ADCSEL_PLL3_R_CK RCC_D3CCIPR_ADCSEL_VALUE(1U)
+#define STM32_ADCSEL_PER_CK RCC_D3CCIPR_ADCSEL_VALUE(2U)
+#define STM32_ADCSEL_DISABLE RCC_D3CCIPR_ADCSEL_VALUE(3U)
#define STM32_LPTIM345SEL_PCLK4 RCC_D3CCIPR_LPTIM345SEL_VALUE(0U)
#define STM32_LPTIM345SEL_PLL2_P_CK RCC_D3CCIPR_LPTIM345SEL_VALUE(1U)
diff --git a/os/oslib/include/chmempools.h b/os/oslib/include/chmempools.h index 6e5a45277..427ba9fb1 100644 --- a/os/oslib/include/chmempools.h +++ b/os/oslib/include/chmempools.h @@ -249,6 +249,19 @@ static inline void chGuardedPoolObjectInit(guarded_memory_pool_t *gmp, }
/**
+ * @brief Gets the count of objects in a guarded memory pool.
+ * @pre The guarded memory pool must be already been initialized.
+ *
+ * @param[in] gmp pointer to a @p guarded_memory_pool_t structure
+ *
+ * @iclass
+ */
+static inline cnt_t chGuardedPoolGetCounterI(guarded_memory_pool_t *gmp) {
+
+ return chSemGetCounterI(&gmp->sem);
+}
+
+/**
* @brief Allocates an object from a guarded memory pool.
* @pre The guarded memory pool must be already been initialized.
*
diff --git a/readme.txt b/readme.txt index 4d0d35e4b..286a581a4 100644 --- a/readme.txt +++ b/readme.txt @@ -74,6 +74,15 @@ *****************************************************************************
*** 19.1.1 ***
+- LIB: Re-introduced missing chGuardedPoolGetCounterI() function to guarded
+ pools allocator.
+- NEW: Extra timer checks in STM32 ST driver.
+- FIX: Fixed wrong ADCSEL definitions in STM32H7 HAL (bug #1016).
+- FIX: Fixed chTimeIsInRangeX() failing under some configurations (bug #1015).
+- FIX: Fixed invalid AXI errata fix for STM32H7xx (bug #1014).
+- FIX: Fixed invalid ADCD3 initialization in STM32 ADCv3 driver (bug #1013).
+- FIX: Fixed invalid call to dmaStreamRelease() in STM32 SDIOv1 driver
+ (bug #1012).
- FIX: Fixed wrong license restriction check in Nil (bug #1011).
- FIX: Fixed uninitialized variables in STM32 DMA drivers (bug #1010).
- FIX: Fixed wrong mcuconf.h in some testex demos related to STM32F407
|