Skip to content
Snippets Groups Projects
Commit e34381fa authored by patacongo's avatar patacongo
Browse files

STM32 GPIO fix; Fixes for PIC32 USB term example

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4241 42af7a65-404d-4744-a932-0658087f49c3
parent 0e25792d
No related branches found
No related tags found
No related merge requests found
......@@ -1116,6 +1116,11 @@ examples/usbterm
built-in command. NOTE: This is not fully functional as of this
writing.. It should work, but there is no mechanism in place yet
to exit the USB terminal program and return to NSH.
CONFIG_EXAMPLES_USBTERM_DEVINIT - If defined, then the example will
call a user provided function as part of its initialization:
int usbterm_devinit(void);
And another user provided function at termination:
void usbterm_devuninit(void);
CONFIG_EXAMPLES_USBTERM_BUFLEN - The size of the input and output
buffers used for receiving data. Default 256 bytes.
......
......@@ -144,5 +144,30 @@ extern struct usbterm_globals_s g_usbterm;
/****************************************************************************
* Public Function Prototypes
****************************************************************************/
/****************************************************************************
* Name:
*
* Description:
* If CONFIG_EXAMPLES_USBTERM_DEVINIT is defined, then the example will
* call this user provided function as part of its initialization.
*
****************************************************************************/
#ifdef CONFIG_EXAMPLES_USBTERM_DEVINIT
int usbterm_devinit(void);
#endif
/****************************************************************************
* Name:
*
* Description:
* If CONFIG_EXAMPLES_USBTERM_DEVINIT is defined, then the example will
* call this user provided function as part of its termination sequeunce.
*
****************************************************************************/
#ifdef CONFIG_EXAMPLES_USBTERM_DEVINIT
void usbterm_devuninit(void);
#endif
#endif /* __APPS_EXAMPLES_USBTERM_USBTERM_H */
......@@ -2,7 +2,7 @@
* examples/usbterm/usbterm_main.c
*
* Copyright (C) 2011 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
......@@ -167,7 +167,7 @@ FAR void *usbterm_listener(FAR void *parameter)
****************************************************************************/
#ifdef CONFIG_EXAMPLES_USBTERM_BUILTIN
# define MAIN_NAME term_main
# define MAIN_NAME usbterm_main
# define MAIN_STRING "usbterm_main: "
#else
# define MAIN_NAME user_start
......@@ -179,6 +179,20 @@ int MAIN_NAME(int argc, char *argv[])
pthread_attr_t attr;
int ret;
/* Initialization of the USB hardware may be performed by logic external to
* this test.
*/
#ifdef CONFIG_EXAMPLES_USBTERM_DEVINIT
message(MAIN_STRING "Performing external device initialization\n");
ret = usbterm_devinit();
if (ret != OK)
{
message(MAIN_STRING "usbterm_devinit failed: %d\n", ret);
goto errout;
}
#endif
/* Initialize the USB serial driver */
message(MAIN_STRING "Registering USB serial driver\n");
......@@ -190,7 +204,7 @@ int MAIN_NAME(int argc, char *argv[])
if (ret < 0)
{
message(MAIN_STRING "ERROR: Failed to create the USB serial device: %d\n", -ret);
goto errout;
goto errout_with_devinit;
}
message(MAIN_STRING "Successfully registered the serial driver\n");
......@@ -231,7 +245,7 @@ int MAIN_NAME(int argc, char *argv[])
{
/* Give up on other errors */
goto errout;
goto errout_with_devinit;
}
}
......@@ -308,7 +322,11 @@ errout_with_streams:
fclose(g_usbterm.instream);
errout_with_outstream:
fclose(g_usbterm.outstream);
errout_with_devinit:
#ifdef CONFIG_EXAMPLES_USBTERM_DEVINIT
usbterm_devuninit();
errout:
#endif
message(MAIN_STRING " Aborting\n");
return 1;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment