summaryrefslogtreecommitdiff
path: root/nuttx/arch/arm/src/stm32
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-09-07 13:35:58 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-09-07 13:35:58 +0000
commit68b943e51104e77e7fa8bfeb4411f8cbd2a0473e (patch)
tree2082e4bc48823fe6deb77634f77bd53a67c4b9d1 /nuttx/arch/arm/src/stm32
parent81ddf0a8db0be4f28d0df909e17dccd36a5bc687 (diff)
downloadpx4-nuttx-68b943e51104e77e7fa8bfeb4411f8cbd2a0473e.tar.gz
px4-nuttx-68b943e51104e77e7fa8bfeb4411f8cbd2a0473e.tar.bz2
px4-nuttx-68b943e51104e77e7fa8bfeb4411f8cbd2a0473e.zip
If serial DMA enabled, re-initialize serial console
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5106 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/arch/arm/src/stm32')
-rw-r--r--nuttx/arch/arm/src/stm32/stm32_serial.c9
-rw-r--r--nuttx/arch/arm/src/stm32/stm32_uart.h17
2 files changed, 25 insertions, 1 deletions
diff --git a/nuttx/arch/arm/src/stm32/stm32_serial.c b/nuttx/arch/arm/src/stm32/stm32_serial.c
index b90e4ee97..45d685823 100644
--- a/nuttx/arch/arm/src/stm32/stm32_serial.c
+++ b/nuttx/arch/arm/src/stm32/stm32_serial.c
@@ -1835,7 +1835,14 @@ void up_serialinit(void)
#if CONSOLE_UART > 0
(void)uart_register("/dev/console", &uart_devs[CONSOLE_UART - 1]->dev);
(void)uart_register("/dev/ttyS0", &uart_devs[CONSOLE_UART - 1]->dev);
-#endif
+
+ /* If we need to re-initialise the console to enable DMA do that here. */
+
+# ifdef SERIAL_HAVE_CONSOLE_DMA
+ up_dma_setup(&uart_devs[CONSOLE_UART - 1]->dev);
+# endif
+
+#endif /* CONSOLE_UART > 0 */
/* Register all remaining USARTs */
diff --git a/nuttx/arch/arm/src/stm32/stm32_uart.h b/nuttx/arch/arm/src/stm32/stm32_uart.h
index f51265b18..7888d6316 100644
--- a/nuttx/arch/arm/src/stm32/stm32_uart.h
+++ b/nuttx/arch/arm/src/stm32/stm32_uart.h
@@ -189,6 +189,23 @@
# define SERIAL_HAVE_DMA 1
#endif
+/* Is DMA used on the console UART? */
+
+#undef SERIAL_HAVE_CONSOLE_DMA
+#if defined(CONFIG_USART1_SERIAL_CONSOLE) && defined(CONFIG_USART1_RXDMA)
+# define SERIAL_HAVE_CONSOLE_DMA 1
+#elif defined(CONFIG_USART2_SERIAL_CONSOLE) && defined(CONFIG_USART2_RXDMA)
+# define SERIAL_HAVE_CONSOLE_DMA 1
+#elif defined(CONFIG_USART3_SERIAL_CONSOLE) && defined(CONFIG_USART3_RXDMA)
+# define SERIAL_HAVE_CONSOLE_DMA 1
+#elif defined(CONFIG_UART4_SERIAL_CONSOLE) && !efined(CONFIG_UART4_RXDMA)
+# define SERIAL_HAVE_CONSOLE_DMA 1
+#elif defined(CONFIG_UART5_SERIAL_CONSOLE) && defined(CONFIG_UART5_RXDMA)
+# define SERIAL_HAVE_CONSOLE_DMA 1
+#elif defined(CONFIG_USART6_SERIAL_CONSOLE) && !efined(CONFIG_USART6_RXDMA)
+# define SERIAL_HAVE_CONSOLE_DMA 1
+#endif
+
/* Is DMA used on all (enabled) USARTs */
#define SERIAL_HAVE_ONLY_DMA 1