properly drop characters when buffer is full
fix by David Kopf
This commit is contained in:
parent
3fc00a8bed
commit
5b44d6a29a
1 changed files with 4 additions and 3 deletions
|
@ -30,7 +30,7 @@
|
||||||
* This file is part of libmc1322x: see http://mc1322x.devl.org
|
* This file is part of libmc1322x: see http://mc1322x.devl.org
|
||||||
* for details.
|
* for details.
|
||||||
*
|
*
|
||||||
* $Id: uart1.c,v 1.1 2010/06/10 14:55:39 maralvira Exp $
|
* $Id: uart1.c,v 1.2 2010/07/06 13:39:34 maralvira Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <mc1322x.h>
|
#include <mc1322x.h>
|
||||||
|
@ -65,8 +65,9 @@ void uart1_putc(char c) {
|
||||||
u1_head += 1;
|
u1_head += 1;
|
||||||
if (u1_head >= sizeof(u1_tx_buf))
|
if (u1_head >= sizeof(u1_tx_buf))
|
||||||
u1_head = 0;
|
u1_head = 0;
|
||||||
if (u1_head == u1_tail) /* drop chars when no room */
|
if (u1_head == u1_tail) { /* drop chars when no room */
|
||||||
return;
|
if (u1_head) { u1_head -=1; } else { u1_head = sizeof(u1_tx_buf); }
|
||||||
|
}
|
||||||
enable_irq(UART1);
|
enable_irq(UART1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue