summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nuttx/drivers/serialirq.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/nuttx/drivers/serialirq.c b/nuttx/drivers/serialirq.c
index ba859c2ef..f7503e4cc 100644
--- a/nuttx/drivers/serialirq.c
+++ b/nuttx/drivers/serialirq.c
@@ -84,13 +84,21 @@ void uart_xmitchars(FAR uart_dev_t *dev)
while (dev->xmit.head != dev->xmit.tail && uart_txready(dev))
{
+ /* Send the next byte */
+
uart_send(dev, dev->xmit.buffer[dev->xmit.tail]);
+ /* Increment the tail index */
+
if (++(dev->xmit.tail) >= dev->xmit.size)
{
dev->xmit.tail = 0;
}
+ /* A byte was removed from the buffer. Inform any waiters
+ * there there is space available.
+ */
+
if (dev->xmitwaiting)
{
dev->xmitwaiting = FALSE;
@@ -139,7 +147,7 @@ void uart_recvchars(FAR uart_dev_t *dev)
dev->recv.buffer[dev->recv.head] = uart_receive(dev, &status);
- /* Increment the index */
+ /* Increment the head index */
dev->recv.head = nexthead;
if (++nexthead >= dev->recv.size)