aboutsummaryrefslogtreecommitdiff
path: root/apps/nshlib/nsh_usbdev.c
diff options
context:
space:
mode:
authorpatacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679>2012-03-06 20:21:57 +0000
committerpatacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679>2012-03-06 20:21:57 +0000
commit0a89a8ade31da10e9349ef6e4a536230069793a8 (patch)
tree0bfa100d6337879837dd6abf9612a0a7f889129b /apps/nshlib/nsh_usbdev.c
parent29772a34325f6fdea1a1cc9f6f2eeb691cc2084c (diff)
downloadpx4-firmware-0a89a8ade31da10e9349ef6e4a536230069793a8.tar.gz
px4-firmware-0a89a8ade31da10e9349ef6e4a536230069793a8.tar.bz2
px4-firmware-0a89a8ade31da10e9349ef6e4a536230069793a8.zip
Add support for use of a USB serial device to provide NSH console I/O. Verified on the Sure PIPIC32MX board
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@4458 7fd9a85b-ad96-42d3-883c-3090e2eb8679
Diffstat (limited to 'apps/nshlib/nsh_usbdev.c')
-rw-r--r--apps/nshlib/nsh_usbdev.c25
1 files changed, 23 insertions, 2 deletions
diff --git a/apps/nshlib/nsh_usbdev.c b/apps/nshlib/nsh_usbdev.c
index c8115bfc7..a784c6b77 100644
--- a/apps/nshlib/nsh_usbdev.c
+++ b/apps/nshlib/nsh_usbdev.c
@@ -39,7 +39,19 @@
#include <nuttx/config.h>
+#include <stdio.h>
#include <stdlib.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <assert.h>
+
+#ifdef CONFIG_CDCACM
+# include <nuttx/usb/cdcacm.h>
+#endif
+
+#ifdef CONFIG_CDCACM
+# include <nuttx/usb/pl2303.h>
+#endif
#include "nsh.h"
@@ -80,8 +92,8 @@
#ifdef HAVE_USB_CONSOLE
int nsh_usbconsole(void)
{
- int errval;
int fd;
+ int ret;
/* Don't start the NSH console until the console device is ready. Chances
* are, we get here with no functional console. The USB console will not
@@ -89,6 +101,15 @@ int nsh_usbconsole(void)
* host-side application opens the connection.
*/
+ /* Initialize the USB serial driver */
+
+#ifdef CONFIG_CDCACM
+ ret = cdcacm_initialize(0, NULL);
+#else
+ ret = usbdev_serialinitialize(0);
+#endif
+ DEBUGASSERT(ret == OK);
+
/* Make sure the stdin, stdout, and stderr are closed */
(void)fclose(stdin);
@@ -131,7 +152,7 @@ int nsh_usbconsole(void)
}
/* fdopen to get the stdin, stdout and stderr streams. The following logic depends
- * on the fact that the library* layer will allocate FILEs in order. And since
+ * on the fact that the library layer will allocate FILEs in order. And since
* we closed stdin, stdout, and stderr above, that is what we should get.
*
* fd = 0 is stdin (read-only)