Fixed bug 3607518.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@5401 35acf78f-673a-0410-8e92-d51de3d6d3f4master
parent
cd4329c9d1
commit
4e3ffc5134
|
@ -309,7 +309,8 @@ typedef void (*stm32_dmaisr_t)(void *p, uint32_t flags);
|
||||||
* @special
|
* @special
|
||||||
*/
|
*/
|
||||||
#define dmaStreamDisable(dmastp) { \
|
#define dmaStreamDisable(dmastp) { \
|
||||||
(dmastp)->channel->CCR &= ~STM32_DMA_CR_EN; \
|
(dmastp)->channel->CCR &= ~(STM32_DMA_CR_TCIE | STM32_DMA_CR_HTIE | \
|
||||||
|
STM32_DMA_CR_TEIE | STM32_DMA_CR_EN); \
|
||||||
dmaStreamClearInterrupt(dmastp); \
|
dmaStreamClearInterrupt(dmastp); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -320,7 +320,8 @@ typedef void (*stm32_dmaisr_t)(void *p, uint32_t flags);
|
||||||
* @special
|
* @special
|
||||||
*/
|
*/
|
||||||
#define dmaStreamDisable(dmastp) { \
|
#define dmaStreamDisable(dmastp) { \
|
||||||
(dmastp)->channel->CCR &= ~STM32_DMA_CR_EN; \
|
(dmastp)->channel->CCR &= ~(STM32_DMA_CR_TCIE | STM32_DMA_CR_HTIE | \
|
||||||
|
STM32_DMA_CR_TEIE | STM32_DMA_CR_EN); \
|
||||||
dmaStreamClearInterrupt(dmastp); \
|
dmaStreamClearInterrupt(dmastp); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -320,7 +320,8 @@ typedef void (*stm32_dmaisr_t)(void *p, uint32_t flags);
|
||||||
* @special
|
* @special
|
||||||
*/
|
*/
|
||||||
#define dmaStreamDisable(dmastp) { \
|
#define dmaStreamDisable(dmastp) { \
|
||||||
(dmastp)->channel->CCR &= ~STM32_DMA_CR_EN; \
|
(dmastp)->channel->CCR &= ~(STM32_DMA_CR_TCIE | STM32_DMA_CR_HTIE | \
|
||||||
|
STM32_DMA_CR_TEIE | STM32_DMA_CR_EN); \
|
||||||
dmaStreamClearInterrupt(dmastp); \
|
dmaStreamClearInterrupt(dmastp); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -320,7 +320,8 @@ typedef void (*stm32_dmaisr_t)(void *p, uint32_t flags);
|
||||||
* @special
|
* @special
|
||||||
*/
|
*/
|
||||||
#define dmaStreamDisable(dmastp) { \
|
#define dmaStreamDisable(dmastp) { \
|
||||||
(dmastp)->channel->CCR &= ~STM32_DMA_CR_EN; \
|
(dmastp)->channel->CCR &= ~(STM32_DMA_CR_TCIE | STM32_DMA_CR_HTIE | \
|
||||||
|
STM32_DMA_CR_TEIE | STM32_DMA_CR_EN); \
|
||||||
dmaStreamClearInterrupt(dmastp); \
|
dmaStreamClearInterrupt(dmastp); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -373,7 +373,9 @@ typedef void (*stm32_dmaisr_t)(void *p, uint32_t flags);
|
||||||
* @special
|
* @special
|
||||||
*/
|
*/
|
||||||
#define dmaStreamDisable(dmastp) { \
|
#define dmaStreamDisable(dmastp) { \
|
||||||
(dmastp)->stream->CR &= ~STM32_DMA_CR_EN; \
|
(dmastp)->stream->CR &= ~(STM32_DMA_CR_TCIE | STM32_DMA_CR_HTIE | \
|
||||||
|
STM32_DMA_CR_TEIE | STM32_DMA_CR_DMEIE | \
|
||||||
|
STM32_DMA_CR_EN); \
|
||||||
while (((dmastp)->stream->CR & STM32_DMA_CR_EN) != 0) \
|
while (((dmastp)->stream->CR & STM32_DMA_CR_EN) != 0) \
|
||||||
; \
|
; \
|
||||||
dmaStreamClearInterrupt(dmastp); \
|
dmaStreamClearInterrupt(dmastp); \
|
||||||
|
|
|
@ -311,7 +311,8 @@ typedef void (*stm32_dmaisr_t)(void *p, uint32_t flags);
|
||||||
* @special
|
* @special
|
||||||
*/
|
*/
|
||||||
#define dmaStreamDisable(dmastp) { \
|
#define dmaStreamDisable(dmastp) { \
|
||||||
(dmastp)->channel->CCR &= ~STM32_DMA_CR_EN; \
|
(dmastp)->channel->CCR &= ~(STM32_DMA_CR_TCIE | STM32_DMA_CR_HTIE | \
|
||||||
|
STM32_DMA_CR_TEIE | STM32_DMA_CR_EN); \
|
||||||
dmaStreamClearInterrupt(dmastp); \
|
dmaStreamClearInterrupt(dmastp); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -86,6 +86,8 @@
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
|
|
||||||
*** 2.5.2 ***
|
*** 2.5.2 ***
|
||||||
|
- FIX: Fixed spurious interrupt disabling an STM32 DMA stream (bug 3607518)
|
||||||
|
(backported to 2.4.4).
|
||||||
- FIX: Fixed surprising non-CRLF lines in source (bug 3607380).
|
- FIX: Fixed surprising non-CRLF lines in source (bug 3607380).
|
||||||
- FIX: Fixed no entry point defined at link time (bug 3607319).
|
- FIX: Fixed no entry point defined at link time (bug 3607319).
|
||||||
- FIX: Fixed sdc_lld_collect_errors does not collect errors (bug 3606743).
|
- FIX: Fixed sdc_lld_collect_errors does not collect errors (bug 3606743).
|
||||||
|
|
|
@ -158,9 +158,9 @@ int main(void) {
|
||||||
* handled entirely in background.
|
* handled entirely in background.
|
||||||
*/
|
*/
|
||||||
uartStopReceive(&UARTD2);
|
uartStopReceive(&UARTD2);
|
||||||
// uartStopSend(&UARTD2);
|
uartStopSend(&UARTD2);
|
||||||
uartStartReceive(&UARTD2, 16, buffer);
|
uartStartReceive(&UARTD2, 16, buffer);
|
||||||
// uartStartSend(&UARTD2, 16, message);
|
uartStartSend(&UARTD2, 16, message);
|
||||||
}
|
}
|
||||||
chThdSleepMilliseconds(500);
|
chThdSleepMilliseconds(500);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue