diff options
-rw-r--r-- | os/hal/ports/STM32/LLD/DMAv1/stm32_dma.h | 4 | ||||
-rw-r--r-- | readme.txt | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/os/hal/ports/STM32/LLD/DMAv1/stm32_dma.h b/os/hal/ports/STM32/LLD/DMAv1/stm32_dma.h index da7d20d6e..6dfd6debf 100644 --- a/os/hal/ports/STM32/LLD/DMAv1/stm32_dma.h +++ b/os/hal/ports/STM32/LLD/DMAv1/stm32_dma.h @@ -48,7 +48,7 @@ /**
* @brief Mask of the ISR bits passed to the DMA callback functions.
*/
-#define STM32_DMA_ISR_MASK 0x0F
+#define STM32_DMA_ISR_MASK 0x0E
/**
* @brief From stream number to shift factor in @p ISR and @p IFCR registers.
@@ -444,7 +444,7 @@ typedef struct { uint32_t idx = (dmastp)->selfindex; \
\
flags = ((dmastp)->dma->ISR >> (dmastp)->shift) & STM32_DMA_ISR_MASK; \
- if (flags & STM32_DMA_ISR_MASK) { \
+ if (flags & (dmastp)->channel->CCR) { \
(dmastp)->dma->IFCR = flags << (dmastp)->shift; \
if (_stm32_dma_isr_redir[idx].dma_func) { \
_stm32_dma_isr_redir[idx].dma_func(_stm32_dma_isr_redir[idx].dma_param, flags); \
diff --git a/readme.txt b/readme.txt index a4a93a2cd..18488a711 100644 --- a/readme.txt +++ b/readme.txt @@ -153,6 +153,8 @@ - RT: Merged RT4.
- NIL: Merged NIL2.
- NIL: Added STM32F7 demo.
+- HAL: Fixed incorrect handling of shared ISRs in STM32 DMAv1 driver
+ (bug #812)(backported to 16.1.7).
- HAL: Fixed protocol violation in usbDisableEndpointsI() API (bug #811)
(backported to 16.1.7).
- HAL: Fixed incorrect constants STM32_DAC1_CHx_DMA_CHN for STM32F7 (bug #810)
|