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
This commit is contained in:
patacongo 2011-12-30 14:54:43 +00:00
parent 0e25792d16
commit e34381fa4a
3 changed files with 52 additions and 4 deletions

View File

@ -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.

View File

@ -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 */

View File

@ -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;
}