changeset 2393:5377ec428842

* src/at91_serial.c (at91_serial_DSR): Remove CYG_FAIL if receive buffer fills up; eliminate compiler warning when setting "end" pointer.
author asl
date Sat, 02 Jun 2007 17:20:02 +0000
parents b9bdcb70cbde
children a21e68455afd
files packages/devs/serial/arm/at91/current/ChangeLog packages/devs/serial/arm/at91/current/src/at91_serial.c
diffstat 2 files changed, 9 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/packages/devs/serial/arm/at91/current/ChangeLog
+++ b/packages/devs/serial/arm/at91/current/ChangeLog
@@ -1,3 +1,9 @@
+2007-06-01  Jim Seymour <jim@cipher.com>
+
+	* src/at91_serial.c (at91_serial_DSR): Remove CYG_FAIL if receive
+	buffer fills up; eliminate compiler warning when setting "end"
+	pointer.
+
 2006-03-05  Oliver Munz  <munz@speag.ch>
 
 	* src/at91_serial.c (at91_serial_ISR): Only call the DSR if there
--- a/packages/devs/serial/arm/at91/current/src/at91_serial.c
+++ b/packages/devs/serial/arm/at91/current/src/at91_serial.c
@@ -571,10 +571,12 @@ at91_serial_DSR(cyg_vector_t vector, cyg
     if (stat & (AT91_US_IER_ENDRX | AT91_US_IER_TIMEOUT)) {
         const cyg_uint8 cb = at91_chan->curbuf, nb = cb ^ 0x01;
         const cyg_uint8 * p = at91_chan->rcv_buffer[cb], * end;
+        cyg_uint32 temp_word;
 
         at91_chan->curbuf = nb;
         HAL_WRITE_UINT32(base + AT91_US_RCR, 0);
-        HAL_READ_UINT32(base + AT91_US_RPR, (CYG_ADDRESS) end);
+        HAL_READ_UINT32(base + AT91_US_RPR, temp_word);
+        end = (const cyg_uint8 *)temp_word;
         HAL_WRITE_UINT32(base + AT91_US_RTO, RCV_TIMEOUT);
 	HAL_WRITE_UINT32(base + AT91_US_CR, AT91_US_CR_RSTATUS | AT91_US_CR_STTTO);
         HAL_WRITE_UINT32(base + AT91_US_RPR, (CYG_ADDRESS) at91_chan->rcv_buffer[nb]);
@@ -609,7 +611,6 @@ at91_serial_DSR(cyg_vector_t vector, cyg
                 default:
                     // Buffer full or unknown error, can't do anything about it
                     // Discard data
-                    CYG_FAIL("Serial receiver buffer overflow");
                     p = end;
                     break;
             }