From 704e3e7ba90d136a08eb9ed930bf3552b5540517 Mon Sep 17 00:00:00 2001 From: "R. Steve McKown" Date: Wed, 7 Apr 2010 18:46:48 -0600 Subject: [PATCH] Some comments about the UART ISRs. --- tos/chips/msp430/usci/Msp430UartP.nc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tos/chips/msp430/usci/Msp430UartP.nc b/tos/chips/msp430/usci/Msp430UartP.nc index 742c1674..6f6384db 100644 --- a/tos/chips/msp430/usci/Msp430UartP.nc +++ b/tos/chips/msp430/usci/Msp430UartP.nc @@ -163,6 +163,9 @@ implementation { async event void Interrupts.tx() { + /* FIXME: this can cause an arbitrarily long ISR, if m_slen is large. + * But depending on timing, we may always only write 1 byte. + */ while (m_slen && call Registers.getIfgTx()) { call Registers.setTxbuf(*m_sbuf); if (--m_slen) @@ -238,6 +241,9 @@ implementation { { if (m_robuf) { /* receive() takes precedence if active */ + /* FIXME: an arbitrarily long ISR may occur if m_rlen is large. + * But depending on timing, we may always only read 1 byte. + */ while (m_rlen && call Registers.getIfgRx()) { *m_rbuf = byte; if (--m_rlen) -- 2.39.2