signed-off-by: Massimiliano Cialdi <massimiliano.cialdi@powersoft.it>
authorasterix <asterix@38d2e660-2303-0410-9eaa-f027e97ec537>
Wed, 14 May 2008 09:46:22 +0000 (09:46 +0000)
committerasterix <asterix@38d2e660-2303-0410-9eaa-f027e97ec537>
Wed, 14 May 2008 09:46:22 +0000 (09:46 +0000)
approved-by: Daniele Basile <asterix@develer.com>

Reset error flag in serial status register every time we read it.

git-svn-id: https://src.develer.com/svnoss/bertos/trunk@1250 38d2e660-2303-0410-9eaa-f027e97ec537

bertos/cpu/arm/drv/ser_at91.c

index f42af89de65cc185e05ce26321402607a5a27cf1..19f36df859cc2e6f7e38070f2af318888004a713 100644 (file)
@@ -792,6 +792,7 @@ static void uart0_irq_rx(void)
 
        /* Should be read before US_CRS */
        ser_uart0->status |= US0_CSR & (SERRF_RXSROVERRUN | SERRF_FRAMEERROR);
+       US0_CR = BV(US_RSTSTA);
 
        char c = US0_RHR;
        struct FIFOBuffer * const rxfifo = &ser_uart0->rxfifo;
@@ -856,6 +857,7 @@ static void uart1_irq_rx(void)
 
        /* Should be read before US_CRS */
        ser_uart1->status |= US1_CSR & (SERRF_RXSROVERRUN | SERRF_FRAMEERROR);
+       US1_CR = BV(US_RSTSTA);
 
        char c = US1_RHR;
        struct FIFOBuffer * const rxfifo = &ser_uart1->rxfifo;