# HG changeset patch # User asl # Date 1180804802 0 # Node ID 5377ec428842958f7493ed72d815b0bf906c0c8b # Parent b9bdcb70cbdedc5877ea234cfbcabef21d892381 * src/at91_serial.c (at91_serial_DSR): Remove CYG_FAIL if receive buffer fills up; eliminate compiler warning when setting "end" pointer. diff --git a/packages/devs/serial/arm/at91/current/ChangeLog b/packages/devs/serial/arm/at91/current/ChangeLog --- 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 + + * 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 * src/at91_serial.c (at91_serial_ISR): Only call the DSR if there diff --git a/packages/devs/serial/arm/at91/current/src/at91_serial.c b/packages/devs/serial/arm/at91/current/src/at91_serial.c --- 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; }