summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2013-10-26 16:02:07 -0600
committerGregory Nutt <gnutt@nuttx.org>2013-10-26 16:02:07 -0600
commite1c89ab2e8d9b42d3e14a4a890e41dc90b607d27 (patch)
tree958915544405695d694695943cfeca41248ffaa7
parentec95525fdb2074f7fe1de7e8d2d76f2153b0b687 (diff)
downloadpx4-nuttx-e1c89ab2e8d9b42d3e14a4a890e41dc90b607d27.tar.gz
px4-nuttx-e1c89ab2e8d9b42d3e14a4a890e41dc90b607d27.tar.bz2
px4-nuttx-e1c89ab2e8d9b42d3e14a4a890e41dc90b607d27.zip
SAMA5 serial: Restore logic to minimize TX interrupts. Oddly, seems to improve ADC stability
-rw-r--r--nuttx/arch/arm/src/sama5/Make.defs2
-rw-r--r--nuttx/arch/arm/src/sama5/sam_serial.c3
-rw-r--r--nuttx/drivers/serial/serialirq.c2
3 files changed, 3 insertions, 4 deletions
diff --git a/nuttx/arch/arm/src/sama5/Make.defs b/nuttx/arch/arm/src/sama5/Make.defs
index 727661ffd..2ca702c0c 100644
--- a/nuttx/arch/arm/src/sama5/Make.defs
+++ b/nuttx/arch/arm/src/sama5/Make.defs
@@ -58,7 +58,7 @@ CMN_ASRCS += cp15_clean_dcache.S cp15_flush_dcache.S cp15_invalidate_dcache_all.
CMN_CSRCS = up_initialize.c up_idle.c up_interruptcontext.c up_exit.c
CMN_CSRCS += up_createstack.c up_releasestack.c up_usestack.c up_vfork.c
-CMN_CSRCS += up_mdelay.c up_udelay.c
+CMN_CSRCS += up_puts.c up_mdelay.c up_udelay.c
CMN_CSRCS += up_modifyreg8.c up_modifyreg16.c up_modifyreg32.c
CMN_CSRCS += arm_assert.c arm_blocktask.c arm_copyfullstate.c arm_dataabort.c
diff --git a/nuttx/arch/arm/src/sama5/sam_serial.c b/nuttx/arch/arm/src/sama5/sam_serial.c
index f910f0a26..541dc01d3 100644
--- a/nuttx/arch/arm/src/sama5/sam_serial.c
+++ b/nuttx/arch/arm/src/sama5/sam_serial.c
@@ -1059,13 +1059,12 @@ static void up_txint(struct uart_dev_s *dev, bool enable)
#ifndef CONFIG_SUPPRESS_SERIAL_INTS
up_serialout(priv, SAM_UART_IER_OFFSET, UART_INT_TXRDY);
-# if 0 /* Seems to be unnecessary */
/* Fake a TX interrupt here by just calling uart_xmitchars() with
* interrupts disabled (note this may recurse).
*/
uart_xmitchars(dev);
-# endif
+
#endif
}
else
diff --git a/nuttx/drivers/serial/serialirq.c b/nuttx/drivers/serial/serialirq.c
index 8e3f80ead..f18116b1f 100644
--- a/nuttx/drivers/serial/serialirq.c
+++ b/nuttx/drivers/serial/serialirq.c
@@ -153,7 +153,7 @@ void uart_recvchars(FAR uart_dev_t *dev)
while (uart_rxavailable(dev))
{
- char ch = uart_receive(dev, &status);
+ char ch = uart_receive(dev, &status);
/* If the RX buffer becomes full, then the serial data is discarded. This is
* necessary because on most serial hardware, you must read the data in order