forked from Archive/PX4-Autopilot
Tried to get the Composite driver working on the LPC2148 (and failed)
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@4362 7fd9a85b-ad96-42d3-883c-3090e2eb8679
This commit is contained in:
parent
7a586daed8
commit
05e846f340
|
@ -131,7 +131,7 @@ examples/composite
|
|||
CONFIG_CDCACM_EPBULKOUT=3
|
||||
|
||||
CONFIG_USBMSC - USB mass storage device support
|
||||
CONFIG_USBMSC_COMPOSITE - USB mass storage composite device support
|
||||
CONFIG_USBMSC_COMPOSITE=y - USB mass storage composite device support
|
||||
CONFIG_USBMSC_IFNOBASE=2 - USB mass storage interfaces start with number 2
|
||||
CONFIG_USBMSC_STRBASE=4 - Base of string numbers (needed)
|
||||
CONFIG_USBMSC_EPBULKOUT=4 - Endpoint numbers must be unique
|
||||
|
@ -170,7 +170,7 @@ examples/composite
|
|||
CCONFIG_EXAMPLES_COMPOSITE_SERDEV - The string corresponding to
|
||||
CONFIG_EXAMPLES_COMPOSITE_TTYUSB. The default is "/dev/ttyUSB0".
|
||||
CONFIG_EXAMPLES_COMPOSITE_BUFSIZE - The size of the serial I/O buffer in
|
||||
bytes. Default 256 byters.
|
||||
bytes. Default 256 bytes.
|
||||
|
||||
If CONFIG_USBDEV_TRACE is enabled (or CONFIG_DEBUG and CONFIG_DEBUG_USB), then
|
||||
the example code will also manage the USB trace output. The amount of trace output
|
||||
|
|
|
@ -0,0 +1,432 @@
|
|||
/****************************************************************************
|
||||
* apps/nshlib/nsh_serial.c
|
||||
*
|
||||
* Copyright (C) 2007-2009, 2011-2012 Gregory Nutt. All rights reserved.
|
||||
* 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
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* 3. Neither the name Gregory Nutt nor the names of its contributors may be
|
||||
* used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <string.h>
|
||||
#include <stdarg.h>
|
||||
#include <assert.h>
|
||||
#include <errno.h>
|
||||
#include <debug.h>
|
||||
|
||||
#include "nsh.h"
|
||||
#include "nsh_console.h"
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Private Types
|
||||
****************************************************************************/
|
||||
|
||||
struct serialsave_s
|
||||
{
|
||||
int cn_outfd; /* Re-directed output file descriptor */
|
||||
FILE *cn_outstream; /* Re-directed output stream */
|
||||
};
|
||||
|
||||
/****************************************************************************
|
||||
* Private Function Prototypes
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef CONFIG_NSH_DISABLEBG
|
||||
static FAR struct nsh_vtbl_s *nsh_consoleclone(FAR struct nsh_vtbl_s *vtbl);
|
||||
#endif
|
||||
static void nsh_consolerelease(FAR struct nsh_vtbl_s *vtbl);
|
||||
static ssize_t nsh_consolewrite(FAR struct nsh_vtbl_s *vtbl, FAR const void *buffer, size_t nbytes);
|
||||
static int nsh_consoleoutput(FAR struct nsh_vtbl_s *vtbl, const char *fmt, ...);
|
||||
static FAR char *nsh_consolelinebuffer(FAR struct nsh_vtbl_s *vtbl);
|
||||
static void nsh_consoleredirect(FAR struct nsh_vtbl_s *vtbl, int fd, FAR uint8_t *save);
|
||||
static void nsh_consoleundirect(FAR struct nsh_vtbl_s *vtbl, FAR uint8_t *save);
|
||||
static void nsh_consoleexit(FAR struct nsh_vtbl_s *vtbl, int exitstatus);
|
||||
|
||||
/****************************************************************************
|
||||
* Private Data
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Public Data
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Private Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: nsh_openifnotopen
|
||||
****************************************************************************/
|
||||
|
||||
static int nsh_openifnotopen(struct console_stdio_s *pstate)
|
||||
{
|
||||
/* The stream is open in a lazy fashion. This is done because the file
|
||||
* descriptor may be opened on a different task than the stream.
|
||||
*/
|
||||
|
||||
if (!pstate->cn_outstream)
|
||||
{
|
||||
pstate->cn_outstream = fdopen(pstate->cn_outfd, "w");
|
||||
if (!pstate->cn_outstream)
|
||||
{
|
||||
return ERROR;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: nsh_closeifnotclosed
|
||||
*
|
||||
* Description:
|
||||
* Close the output stream if it is not the standard output stream.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
static void nsh_closeifnotclosed(struct console_stdio_s *pstate)
|
||||
{
|
||||
if (pstate->cn_outstream == OUTSTREAM(pstate))
|
||||
{
|
||||
fflush(OUTSTREAM(pstate));
|
||||
pstate->cn_outfd = OUTFD(pstate);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (pstate->cn_outstream)
|
||||
{
|
||||
fflush(pstate->cn_outstream);
|
||||
fclose(pstate->cn_outstream);
|
||||
}
|
||||
else if (pstate->cn_outfd >= 0 && pstate->cn_outfd != OUTFD(pstate))
|
||||
{
|
||||
close(pstate->cn_outfd);
|
||||
}
|
||||
|
||||
pstate->cn_outfd = -1;
|
||||
pstate->cn_outstream = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: nsh_consolewrite
|
||||
*
|
||||
* Description:
|
||||
* write a buffer to the remote shell window.
|
||||
*
|
||||
* Currently only used by cat.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
static ssize_t nsh_consolewrite(FAR struct nsh_vtbl_s *vtbl, FAR const void *buffer, size_t nbytes)
|
||||
{
|
||||
FAR struct console_stdio_s *pstate = (FAR struct console_stdio_s *)vtbl;
|
||||
ssize_t ret;
|
||||
|
||||
/* The stream is open in a lazy fashion. This is done because the file
|
||||
* descriptor may be opened on a different task than the stream. The
|
||||
* actual open will then occur with the first output from the new task.
|
||||
*/
|
||||
|
||||
if (nsh_openifnotopen(pstate) != 0)
|
||||
{
|
||||
return (ssize_t)ERROR;
|
||||
}
|
||||
|
||||
/* Write the data to the output stream */
|
||||
|
||||
ret = fwrite(buffer, 1, nbytes, pstate->cn_outstream);
|
||||
if (ret < 0)
|
||||
{
|
||||
dbg("[%d] Failed to send buffer: %d\n", pstate->cn_outfd, errno);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: nsh_consoleoutput
|
||||
*
|
||||
* Description:
|
||||
* Print a string to the currently selected stream.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
static int nsh_consoleoutput(FAR struct nsh_vtbl_s *vtbl, const char *fmt, ...)
|
||||
{
|
||||
FAR struct console_stdio_s *pstate = (FAR struct console_stdio_s *)vtbl;
|
||||
va_list ap;
|
||||
int ret;
|
||||
|
||||
/* The stream is open in a lazy fashion. This is done because the file
|
||||
* descriptor may be opened on a different task than the stream. The
|
||||
* actual open will then occur with the first output from the new task.
|
||||
*/
|
||||
|
||||
if (nsh_openifnotopen(pstate) != 0)
|
||||
{
|
||||
return ERROR;
|
||||
}
|
||||
|
||||
va_start(ap, fmt);
|
||||
ret = vfprintf(pstate->cn_outstream, fmt, ap);
|
||||
va_end(ap);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: nsh_consolelinebuffer
|
||||
*
|
||||
* Description:
|
||||
* Return a reference to the current line buffer
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
static FAR char *nsh_consolelinebuffer(FAR struct nsh_vtbl_s *vtbl)
|
||||
{
|
||||
FAR struct console_stdio_s *pstate = (FAR struct console_stdio_s *)vtbl;
|
||||
return pstate->cn_line;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: nsh_consoleclone
|
||||
*
|
||||
* Description:
|
||||
* Make an independent copy of the vtbl
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef CONFIG_NSH_DISABLEBG
|
||||
static FAR struct nsh_vtbl_s *nsh_consoleclone(FAR struct nsh_vtbl_s *vtbl)
|
||||
{
|
||||
FAR struct console_stdio_s *pclone = nsh_newconsole();
|
||||
return &pclone->cn_vtbl;
|
||||
}
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Name: nsh_consolerelease
|
||||
*
|
||||
* Description:
|
||||
* Release the cloned instance
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
static void nsh_consolerelease(FAR struct nsh_vtbl_s *vtbl)
|
||||
{
|
||||
FAR struct console_stdio_s *pstate = (FAR struct console_stdio_s *)vtbl;
|
||||
|
||||
/* Close the output stream */
|
||||
|
||||
nsh_closeifnotclosed(pstate);
|
||||
|
||||
/* Close the console stream */
|
||||
|
||||
#ifdef CONFIG_NSH_CONDEV
|
||||
(void)fclose(pstate->cn_constream);
|
||||
#endif
|
||||
|
||||
/* Then release the vtable container */
|
||||
|
||||
free(pstate);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: nsh_consoleredirect
|
||||
*
|
||||
* Description:
|
||||
* Set up for redirected output. This function is called from nsh_parse()
|
||||
* in two different contexts:
|
||||
*
|
||||
* 1) Redirected background commands of the form: command > xyz.text &
|
||||
*
|
||||
* In this case:
|
||||
* - vtbl: A newly allocated and initialized instance created by
|
||||
* nsh_consoleclone,
|
||||
* - fd:- The file descriptor of the redirected output
|
||||
* - save: NULL
|
||||
*
|
||||
* nsh_consolerelease() will perform the clean-up when the clone is
|
||||
* destroyed.
|
||||
*
|
||||
* 2) Redirected foreground commands of the form: command > xyz.txt
|
||||
*
|
||||
* In this case:
|
||||
* - vtbl: The current state structure,
|
||||
* - fd: The file descriptor of the redirected output
|
||||
* - save: Where to save the re-directed registers.
|
||||
*
|
||||
* nsh_consoleundirect() will perform the clean-up after the redirected
|
||||
* command completes.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
static void nsh_consoleredirect(FAR struct nsh_vtbl_s *vtbl, int fd, FAR uint8_t *save)
|
||||
{
|
||||
FAR struct console_stdio_s *pstate = (FAR struct console_stdio_s *)vtbl;
|
||||
FAR struct serialsave_s *ssave = (FAR struct serialsave_s *)save;
|
||||
|
||||
/* Case 1: Redirected foreground commands */
|
||||
|
||||
if (ssave)
|
||||
{
|
||||
/* pstate->cn_outstream and cn_outfd refer refer to the
|
||||
* currently opened output stream. If the output stream is open, flush
|
||||
* any pending output.
|
||||
*/
|
||||
|
||||
if (pstate->cn_outstream)
|
||||
{
|
||||
fflush(pstate->cn_outstream);
|
||||
}
|
||||
|
||||
/* Save the current fd and stream values. These will be restored
|
||||
* when nsh_consoleundirect() is called.
|
||||
*/
|
||||
|
||||
ssave->cn_outfd = pstate->cn_outfd;
|
||||
ssave->cn_outstream = pstate->cn_outstream;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* nsh_consoleclone() set pstate->cn_outfd and cn_outstream to refer
|
||||
* to standard out. We just want to leave these alone and overwrite
|
||||
* them with the fd for the re-directed stream.
|
||||
*/
|
||||
}
|
||||
|
||||
/* In either case, set the fd of the new, re-directed output and nullify
|
||||
* the output stream (it will be fdopen'ed if it is used).
|
||||
*/
|
||||
|
||||
pstate->cn_outfd = fd;
|
||||
pstate->cn_outstream = NULL;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: nsh_consoleundirect
|
||||
*
|
||||
* Description:
|
||||
* Set up for redirected output
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
static void nsh_consoleundirect(FAR struct nsh_vtbl_s *vtbl, FAR uint8_t *save)
|
||||
{
|
||||
FAR struct console_stdio_s *pstate = (FAR struct console_stdio_s *)vtbl;
|
||||
FAR struct serialsave_s *ssave = (FAR struct serialsave_s *)save;
|
||||
|
||||
nsh_closeifnotclosed(pstate);
|
||||
pstate->cn_outfd = ssave->cn_outfd;
|
||||
pstate->cn_outstream = ssave->cn_outstream;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: nsh_consoleexit
|
||||
*
|
||||
* Description:
|
||||
* Exit the shell task
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
static void nsh_consoleexit(FAR struct nsh_vtbl_s *vtbl, int exitstatus)
|
||||
{
|
||||
/* Destroy ourself then exit with the provided status */
|
||||
|
||||
nsh_consolerelease(vtbl);
|
||||
exit(exitstatus);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: nsh_newconsole
|
||||
****************************************************************************/
|
||||
|
||||
FAR struct console_stdio_s *nsh_newconsole(void)
|
||||
{
|
||||
struct console_stdio_s *pstate = (struct console_stdio_s *)zalloc(sizeof(struct console_stdio_s));
|
||||
if (pstate)
|
||||
{
|
||||
/* Initialize the call table */
|
||||
|
||||
#ifndef CONFIG_NSH_DISABLEBG
|
||||
pstate->cn_vtbl.clone = nsh_consoleclone;
|
||||
pstate->cn_vtbl.release = nsh_consolerelease;
|
||||
#endif
|
||||
pstate->cn_vtbl.write = nsh_consolewrite;
|
||||
pstate->cn_vtbl.output = nsh_consoleoutput;
|
||||
pstate->cn_vtbl.linebuffer = nsh_consolelinebuffer;
|
||||
pstate->cn_vtbl.redirect = nsh_consoleredirect;
|
||||
pstate->cn_vtbl.undirect = nsh_consoleundirect;
|
||||
pstate->cn_vtbl.exit = nsh_consoleexit;
|
||||
|
||||
/* (Re-) open the console input device */
|
||||
|
||||
#ifdef CONFIG_NSH_CONDEV
|
||||
pstate->cn_confd = open(CONFIG_NSH_CONDEV, O_RDWR);
|
||||
if (pstate->cn_confd < 0)
|
||||
{
|
||||
free(pstate);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Create a standard C stream on the console device */
|
||||
|
||||
pstate->cn_constream = fdopen(pstate->cn_confd, "r+");
|
||||
if (!pstate->cn_constream)
|
||||
{
|
||||
close(pstate->cn_confd);
|
||||
free(pstate);
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Initialize the output stream */
|
||||
|
||||
pstate->cn_outfd = OUTFD(pstate);
|
||||
pstate->cn_outstream = OUTSTREAM(pstate);
|
||||
}
|
||||
return pstate;
|
||||
}
|
|
@ -0,0 +1,159 @@
|
|||
/****************************************************************************
|
||||
* apps/nshlib/nsh_console.h
|
||||
*
|
||||
* Copyright (C) 2007-2012 Gregory Nutt. All rights reserved.
|
||||
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||
* used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __APPS_NSHLIB_NSH_CONSOLE_H
|
||||
#define __APPS_NSHLIB_NSH_CONSOLE_H
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include <errno.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Definitions
|
||||
****************************************************************************/
|
||||
/* Method access macros */
|
||||
|
||||
#define nsh_clone(v) (v)->clone(v)
|
||||
#define nsh_release(v) (v)->release(v)
|
||||
#define nsh_write(v,b,n) (v)->write(v,b,n)
|
||||
#define nsh_linebuffer(v) (v)->linebuffer(v)
|
||||
#define nsh_redirect(v,f,s) (v)->redirect(v,f,s)
|
||||
#define nsh_undirect(v,s) (v)->undirect(v,s)
|
||||
#define nsh_exit(v,s) (v)->exit(v,s)
|
||||
|
||||
#ifdef CONFIG_CPP_HAVE_VARARGS
|
||||
# define nsh_output(v, fmt...) (v)->output(v, ##fmt)
|
||||
#else
|
||||
# define nsh_output vtbl->output
|
||||
#endif
|
||||
|
||||
/* Size of info to be saved in call to nsh_redirect */
|
||||
|
||||
#define SAVE_SIZE (sizeof(int) + sizeof(FILE*) + sizeof(bool))
|
||||
|
||||
/* Are we using the NuttX console for I/O? Or some other character device? */
|
||||
|
||||
#ifdef CONFIG_NSH_CONDEV
|
||||
# define INFD(p) ((p)->cn_confd)
|
||||
# define INSTREAM(p) ((p)->cn_constream)
|
||||
# define OUTFD(p) ((p)->cn_confd)
|
||||
# define OUTSTREAM(p) ((p)->cn_constream)
|
||||
#else
|
||||
# define INFD(p) 0
|
||||
# define INSTREAM(p) stdin
|
||||
# define OUTFD(p) 1
|
||||
# define OUTSTREAM(p) stdout
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Public Types
|
||||
****************************************************************************/
|
||||
/* This describes a generic console front-end */
|
||||
|
||||
struct nsh_vtbl_s
|
||||
{
|
||||
/* This function pointers are "hooks" into the front end logic to
|
||||
* handle things like output of command results, redirection, etc.
|
||||
* -- all of which must be done in a way that is unique to the nature
|
||||
* of the front end.
|
||||
*/
|
||||
|
||||
#ifndef CONFIG_NSH_DISABLEBG
|
||||
FAR struct nsh_vtbl_s *(*clone)(FAR struct nsh_vtbl_s *vtbl);
|
||||
void (*addref)(FAR struct nsh_vtbl_s *vtbl);
|
||||
void (*release)(FAR struct nsh_vtbl_s *vtbl);
|
||||
#endif
|
||||
ssize_t (*write)(FAR struct nsh_vtbl_s *vtbl, FAR const void *buffer, size_t nbytes);
|
||||
int (*output)(FAR struct nsh_vtbl_s *vtbl, const char *fmt, ...);
|
||||
FAR char *(*linebuffer)(FAR struct nsh_vtbl_s *vtbl);
|
||||
void (*redirect)(FAR struct nsh_vtbl_s *vtbl, int fd, FAR uint8_t *save);
|
||||
void (*undirect)(FAR struct nsh_vtbl_s *vtbl, FAR uint8_t *save);
|
||||
void (*exit)(FAR struct nsh_vtbl_s *vtbl, int exitstatus);
|
||||
|
||||
/* Parser state data */
|
||||
|
||||
struct nsh_parser_s np;
|
||||
};
|
||||
|
||||
/* This structure describes a console front-end that is based on stdin and
|
||||
* stdout (which is all of the supported console types at the time being).
|
||||
*/
|
||||
|
||||
struct console_stdio_s
|
||||
{
|
||||
/* NSH front-end call table */
|
||||
|
||||
struct nsh_vtbl_s cn_vtbl;
|
||||
|
||||
/* NSH input/output streams */
|
||||
|
||||
#ifdef CONFIG_NSH_CONDEV
|
||||
int cn_confd; /* Console I/O file descriptor */
|
||||
#endif
|
||||
int cn_outfd; /* Output file descriptor (possibly redirected) */
|
||||
#ifdef CONFIG_NSH_CONDEV
|
||||
FILE *cn_constream; /* Console I/O stream (possibly redirected) */
|
||||
#endif
|
||||
FILE *cn_outstream; /* Output stream */
|
||||
|
||||
/* Line input buffer */
|
||||
|
||||
char cn_line[CONFIG_NSH_LINELEN];
|
||||
};
|
||||
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
* Public Data
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Public Function Prototypes
|
||||
****************************************************************************/
|
||||
|
||||
/* Defined in nsh_console.c *************************************************/
|
||||
|
||||
FAR struct console_stdio_s *nsh_newconsole(void);
|
||||
|
||||
#endif /* __APPS_NSHLIB_NSH_CONSOLE_H */
|
15
nuttx/TODO
15
nuttx/TODO
|
@ -27,7 +27,7 @@ nuttx/
|
|||
(3) ARM/DM320 (arch/arm/src/dm320/)
|
||||
(2) ARM/i.MX (arch/arm/src/imx/)
|
||||
(3) ARM/LPC17xx (arch/arm/src/lpc17xx/)
|
||||
(6) ARM/LPC214x (arch/arm/src/lpc214x/)
|
||||
(7) ARM/LPC214x (arch/arm/src/lpc214x/)
|
||||
(2) ARM/LPC313x (arch/arm/src/lpc313x/)
|
||||
(3) ARM/STR71x (arch/arm/src/str71x/)
|
||||
(3) ARM/LM3S6918 (arch/arm/src/lm3s/)
|
||||
|
@ -1011,6 +1011,19 @@ o ARM/LPC214x (arch/arm/src/lpc214x/)
|
|||
Status: Open
|
||||
Priority: Uncertain
|
||||
|
||||
Title: USB BROKEN?
|
||||
Description: I tried to bring up the new configuration at configs/mcu123-214x/composite,
|
||||
and Linux failed to enumerate the device. I don't know if this is
|
||||
a problem with the lpc214x USB driver (bit rot), or due to recent
|
||||
changed (e.g., -r3170 is suspicious), or an incompatibility between the
|
||||
Composite driver and the LPC214x USB driver. It will take more work
|
||||
to find out which -- like checking if the other USB configurations are
|
||||
also broken.
|
||||
Status: Open
|
||||
Priority: It would be high if the LPC2148 were a current, main stream architecture.
|
||||
I am not aware of anyone using LPC2148 now so I think the priority has
|
||||
to be low.
|
||||
|
||||
o ARM/LPC313x (arch/arm/src/lpc313x/)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
|
|
|
@ -4,6 +4,20 @@ README
|
|||
This README discusses issues unique to NuttX configurations for the
|
||||
MCU-123 LPC2148 development board.
|
||||
|
||||
Contents
|
||||
--------
|
||||
|
||||
o Development Environment
|
||||
o GNU Toolchain Options
|
||||
o NuttX buildroot Toolchain
|
||||
o Flash Tools
|
||||
- In System Programming (ISP) Mode
|
||||
- LPC21ISP (Linux)
|
||||
- FlashMagic (Windows/MAC)
|
||||
- OpenOCD
|
||||
o ARM/LPC214X-specific Configuration Options
|
||||
o Configurations
|
||||
|
||||
Development Environment
|
||||
^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
|
@ -115,9 +129,29 @@ NuttX buildroot Toolchain
|
|||
Flash Tools
|
||||
^^^^^^^^^^^
|
||||
|
||||
In System Programming (ISP) Mode
|
||||
--------------------------------
|
||||
|
||||
1. Make sure you exit minicom (or whatever terminal emulator you are
|
||||
using). It will interfere with the download.
|
||||
|
||||
2. On the MCU123 board, I need to put a jumper on JP3-INT. On that board,
|
||||
JP3-INT is connected to P0.14 of LPC214x. When P0.14 is low and RTS is
|
||||
changed from high to low, the LPC214x will enter ISP (In System
|
||||
Programming) state.
|
||||
|
||||
Alternatively, you can just press the INT1 button while resetting.
|
||||
The LEDs will be off if the LPC2148 successfully enters ISP mode.
|
||||
|
||||
Resetting the board will enter ISP mode when the jumper is connected.
|
||||
|
||||
LPC21ISP (Linux)
|
||||
----------------
|
||||
|
||||
(ca. 2008)
|
||||
I use the lpc21isp tool to load NuttX into FLASH. That tool is available
|
||||
in the files section at http://tech.groups.yahoo.com/group/lpc21isp/. In
|
||||
order version 1.60 of lpc21isp for Linux, I had to make several changes.
|
||||
the older version 1.60 of lpc21isp for Linux, I had to make several changes.
|
||||
This changes are shown in lpc21ips-1.60.diff.
|
||||
|
||||
I use the script lpc21isp.sh to perform the actual download. You will
|
||||
|
@ -129,20 +163,60 @@ entering ISP mode).
|
|||
|
||||
Here are the detailed steps I use:
|
||||
|
||||
1. Make sure you exit minicom (or whatever terminal emulator you are
|
||||
using). It will interfere with the download.
|
||||
|
||||
2. On the MCU123 board, I need to put a jumper on JP3-INT. On that board,
|
||||
JP3-INT is connected to P0.14 of LPC214x. When P0.14 is low and RTS is
|
||||
changed from high to low, the LPC214x will enter ISP (In System Programming)
|
||||
state.
|
||||
1. Setup ISP (In System Programming) mode (see above).
|
||||
|
||||
3. Start lpc21isp.sh
|
||||
|
||||
4. Reset the board
|
||||
4. Reset the board to
|
||||
|
||||
FlashMagic (Windows/MAC)
|
||||
------------------------
|
||||
|
||||
(ca. 2012)
|
||||
You download FlashMagic for Windows or MAC here: http://www.flashmagictool.com
|
||||
|
||||
1. Setup ISP (In System Programming) mode (see above).
|
||||
|
||||
2. Start FlashMagic and setup communication parameters.
|
||||
|
||||
Device: LPC2148
|
||||
COM Port: (will vary with PC)
|
||||
Baud: 38400 (I am sure it can go faster).
|
||||
Interface: None (ISP)
|
||||
Oscillator (MHz): 12
|
||||
|
||||
Check "Erase all Flash+Code Rd Prot"
|
||||
|
||||
3. Select the nuttx.hex file (you will have to rename the nuttx.ihx
|
||||
file generated by the make to nuttx.hex in order for the tool to
|
||||
see it
|
||||
|
||||
4. Options: Verify after programming
|
||||
|
||||
5. Start and reset the board to entry ISP mode. Or hold the INT1
|
||||
button down after reset after you press start.
|
||||
|
||||
NOTE: FlashMagic will complain if the data section overlaps
|
||||
0x4000000-0x400001ff.
|
||||
|
||||
OpenOCD
|
||||
-------
|
||||
|
||||
I have the (really old) Olimex software installed at C:/gccfd. Under
|
||||
Cygwin, I can do the following:
|
||||
|
||||
1. Create a .cfg file:
|
||||
|
||||
$ cat /cygdrive/c/gccfd/openocd/lib/openocd/interface/arm-usb-ocd.cfg /cygdrive/c/gccfd/openocd/lib/openocd/target/lpc2148.cfg > lpc2148.cfg
|
||||
|
||||
2. Start OpenOCD:
|
||||
|
||||
/cygdrive/c/gccfd/openocd/bin/openocd-ftd2xx.exe -f lpc2148.cfg -s . &
|
||||
|
||||
3. Start arm-*-gdb (whichever GDB your toolchain uses).
|
||||
|
||||
ARM/LPC214X-specific Configuration Options
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
CONFIG_ARCH - Identifies the arch/ subdirectory. This should
|
||||
be set to:
|
||||
|
@ -264,20 +338,58 @@ can be selected as follow:
|
|||
|
||||
Where <subdir> is one of the following:
|
||||
|
||||
ostest:
|
||||
This configuration directory, performs a simple OS test using
|
||||
examples/ostest.
|
||||
composite:
|
||||
----------
|
||||
|
||||
A simple test of the USB Composite Device (see
|
||||
apps/examples/README.txt and apps/examples/composite)
|
||||
|
||||
Default toolchain: CodeSourcery for Windows
|
||||
Output format: ELF and Intel HEX
|
||||
|
||||
NOTE: I could not get this to work! Perhaps this is a
|
||||
consequence of the last USB driver checking (r3170)
|
||||
|
||||
nsh:
|
||||
----
|
||||
|
||||
Configures the NuttShell (nsh) located at examples/nsh. The
|
||||
Configuration enables only the serial NSH interfaces.
|
||||
|
||||
Default toolchain: Buildroot
|
||||
Output format: ELF and binary
|
||||
|
||||
ostest:
|
||||
-------
|
||||
|
||||
This configuration directory, performs a simple OS test using
|
||||
examples/ostest.
|
||||
|
||||
Default toolchain: Buildroot
|
||||
Output format: ELF and binary
|
||||
|
||||
usbserial:
|
||||
----------
|
||||
|
||||
This configuration directory exercises the USB serial class
|
||||
driver at examples/usbserial. See examples/README.txt for
|
||||
more information.
|
||||
|
||||
Default toolchain: Buildroot
|
||||
Output format: ELF and binary
|
||||
|
||||
NOTE: If you have problems with this configurationt, perhaps it is a
|
||||
consequence of the last USB driver checking (r3170)
|
||||
|
||||
usbstorage:
|
||||
-----------
|
||||
|
||||
This configuration directory exercises the USB mass storage
|
||||
class driver at examples/usbstorage. See examples/README.txt for
|
||||
more information.
|
||||
|
||||
Default toolchain: Buildroot
|
||||
Output format: ELF and binary
|
||||
|
||||
NOTE: If you have problems with this configurationt, perhaps it is a
|
||||
consequence of the last USB driver checking (r3170)
|
||||
|
|
|
@ -36,12 +36,13 @@
|
|||
include ${TOPDIR}/.config
|
||||
|
||||
# The default value for CROSSDEV can be overridden from the make command line:
|
||||
# make -- Will build for the NuttX buildroot toolchain
|
||||
# make -- Will build for the CodeSourcery toolchain
|
||||
# make CROSSDEV=arm-elf- -- Will build for the NuttX buildroot toolchain
|
||||
# make CROSSDEV=arm-eabi- -- Will build for the devkitARM toolchain
|
||||
# make CROSSDEV=arm-none-eabi- -- Will build for the CodeSourcery toolchain
|
||||
# make CROSSDEV=arm-elf- -- Will build for the NuttX buildroot toolchain
|
||||
|
||||
CROSSDEV = arm-elf-
|
||||
CROSSDEV = arm-none-eabi-
|
||||
CC = $(CROSSDEV)gcc
|
||||
CXX = $(CROSSDEV)g++
|
||||
CPP = $(CROSSDEV)gcc -E
|
||||
|
|
|
@ -126,14 +126,18 @@ CONFIG_UART1_2STOP=0
|
|||
# CONFIG_INTELHEX_BINARY - make the Intel HEX binary format
|
||||
# used with many different loaders using the GNU objcopy program
|
||||
# Should not be selected if you are not using the GNU toolchain.
|
||||
# CONFIG_MOTOROLA_SREC - make the Motorola S-Record binary format
|
||||
# used with many different loaders using the GNU objcopy program
|
||||
# Should not be selected if you are not using the GNU toolchain.
|
||||
# CONFIG_RAW_BINARY - make a raw binary format file used with many
|
||||
# different loaders using the GNU objcopy program. This option
|
||||
# should not be selected if you are not using the GNU toolchain.
|
||||
# CONFIG_HAVE_LIBM - toolchain supports libm.a
|
||||
#
|
||||
CONFIG_RRLOAD_BINARY=n
|
||||
CONFIG_INTELHEX_BINARY=n
|
||||
CONFIG_RAW_BINARY=y
|
||||
CONFIG_INTELHEX_BINARY=y
|
||||
CONFIG_MOTOROLA_SREC=n
|
||||
CONFIG_RAW_BINARY=n
|
||||
CONFIG_HAVE_LIBM=n
|
||||
|
||||
#
|
||||
|
@ -332,8 +336,49 @@ CONFIG_PREALLOC_TIMERS=4
|
|||
#
|
||||
# CONFIG_FS_FAT - Enable FAT filesystem support
|
||||
# CONFIG_FAT_SECTORSIZE - Max supported sector size
|
||||
# CONFIG_FAT_LCNAMES - Enable use of the NT-style upper/lower case 8.3
|
||||
# file name support.
|
||||
# CONFIG_FAT_LFN - Enable FAT long file names. NOTE: Microsoft claims
|
||||
# patents on FAT long file name technology. Please read the
|
||||
# disclaimer in the top-level COPYING file and only enable this
|
||||
# feature if you understand these issues.
|
||||
# CONFIG_FAT_MAXFNAME - If CONFIG_FAT_LFN is defined, then the
|
||||
# default, maximum long file name is 255 bytes. This can eat up
|
||||
# a lot of memory (especially stack space). If you are willing
|
||||
# to live with some non-standard, short long file names, then
|
||||
# define this value. A good choice would be the same value as
|
||||
# selected for CONFIG_NAME_MAX which will limit the visibility
|
||||
# of longer file names anyway.
|
||||
# CONFIG_FS_NXFFS: Enable NuttX FLASH file system (NXFF) support.
|
||||
# CONFIG_NXFFS_ERASEDSTATE: The erased state of FLASH.
|
||||
# This must have one of the values of 0xff or 0x00.
|
||||
# Default: 0xff.
|
||||
# CONFIG_NXFFS_PACKTHRESHOLD: When packing flash file data,
|
||||
# don't both with file chunks smaller than this number of data bytes.
|
||||
# CONFIG_NXFFS_MAXNAMLEN: The maximum size of an NXFFS file name.
|
||||
# Default: 255.
|
||||
# CONFIG_NXFFS_PACKTHRESHOLD: When packing flash file data,
|
||||
# don't both with file chunks smaller than this number of data bytes.
|
||||
# Default: 32.
|
||||
# CONFIG_NXFFS_TAILTHRESHOLD: clean-up can either mean
|
||||
# packing files together toward the end of the file or, if file are
|
||||
# deleted at the end of the file, clean up can simply mean erasing
|
||||
# the end of FLASH memory so that it can be re-used again. However,
|
||||
# doing this can also harm the life of the FLASH part because it can
|
||||
# mean that the tail end of the FLASH is re-used too often. This
|
||||
# threshold determines if/when it is worth erased the tail end of FLASH
|
||||
# and making it available for re-use (and possible over-wear).
|
||||
# Default: 8192.
|
||||
# CONFIG_FS_ROMFS - Enable ROMFS filesystem support
|
||||
# CONFIG_FS_RAMMAP - For file systems that do not support XIP, this
|
||||
# option will enable a limited form of memory mapping that is
|
||||
# implemented by copying whole files into memory.
|
||||
#
|
||||
CONFIG_FS_FAT=n
|
||||
CONFIG_FAT_LCNAMES=y
|
||||
CONFIG_FAT_LFN=y
|
||||
CONFIG_FAT_MAXFNAME=32
|
||||
CONFIG_FS_NXFFS=n
|
||||
CONFIG_FS_ROMFS=n
|
||||
|
||||
#
|
||||
|
|
|
@ -40,14 +40,15 @@
|
|||
*
|
||||
* SRAM:
|
||||
* The lpc2148 has 32Kb of on-chip static RAM beginning at address
|
||||
* 0x40000000. The .data section will be relocated from _eronly
|
||||
* 0x40000000. The first 512 bytes of RAM are reserved for used by
|
||||
* the bootloader. The .data section will be relocated from _eronly
|
||||
* to _sdata at boot time.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
flash (rx) : ORIGIN = 0x00000000, LENGTH = 500K
|
||||
sram (rw) : ORIGIN = 0x40000000, LENGTH = 32K - 32
|
||||
sram (rw) : ORIGIN = 0x40000200, LENGTH = 32K - 512 - 32
|
||||
}
|
||||
|
||||
OUTPUT_ARCH(arm)
|
||||
|
|
|
@ -50,11 +50,11 @@ fi
|
|||
# This the Cygwin path to the location where I installed the CodeSourcery
|
||||
# toolchain under windows. You will also have to edit this if you install
|
||||
# the CodeSourcery toolchain in any other location
|
||||
#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery G++ Lite/bin"
|
||||
export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery G++ Lite/bin"
|
||||
|
||||
# This the Cygwin path to the location where I build the buildroot
|
||||
# toolchain.
|
||||
export TOOLCHAIN_BIN="${WD}/../misc/buildroot/build_arm_nofpu/staging_dir/bin"
|
||||
#export TOOLCHAIN_BIN="${WD}/../misc/buildroot/build_arm_nofpu/staging_dir/bin"
|
||||
|
||||
# This is the Cygwin path to the configuration scripts directory
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
############################################################################
|
||||
# configs/mcu123-lpc214x/nsh/defconfig
|
||||
#
|
||||
# Copyright (C) 2008-2010 Gregory Nutt. All rights reserved.
|
||||
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||
# Copyright (C) 2008-2010, 2012 Gregory Nutt. All rights reserved.
|
||||
# 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
|
||||
|
@ -126,6 +126,9 @@ CONFIG_UART1_2STOP=0
|
|||
# CONFIG_INTELHEX_BINARY - make the Intel HEX binary format
|
||||
# used with many different loaders using the GNU objcopy program
|
||||
# Should not be selected if you are not using the GNU toolchain.
|
||||
# CONFIG_MOTOROLA_SREC - make the Motorola S-Record binary format
|
||||
# used with many different loaders using the GNU objcopy program
|
||||
# Should not be selected if you are not using the GNU toolchain.
|
||||
# CONFIG_RAW_BINARY - make a raw binary format file used with many
|
||||
# different loaders using the GNU objcopy program. This option
|
||||
# should not be selected if you are not using the GNU toolchain.
|
||||
|
@ -133,6 +136,7 @@ CONFIG_UART1_2STOP=0
|
|||
#
|
||||
CONFIG_RRLOAD_BINARY=n
|
||||
CONFIG_INTELHEX_BINARY=n
|
||||
CONFIG_MOTOROLA_SREC=n
|
||||
CONFIG_RAW_BINARY=y
|
||||
CONFIG_HAVE_LIBM=n
|
||||
|
||||
|
@ -331,8 +335,49 @@ CONFIG_PREALLOC_TIMERS=4
|
|||
#
|
||||
# CONFIG_FS_FAT - Enable FAT filesystem support
|
||||
# CONFIG_FAT_SECTORSIZE - Max supported sector size
|
||||
# CONFIG_FAT_LCNAMES - Enable use of the NT-style upper/lower case 8.3
|
||||
# file name support.
|
||||
# CONFIG_FAT_LFN - Enable FAT long file names. NOTE: Microsoft claims
|
||||
# patents on FAT long file name technology. Please read the
|
||||
# disclaimer in the top-level COPYING file and only enable this
|
||||
# feature if you understand these issues.
|
||||
# CONFIG_FAT_MAXFNAME - If CONFIG_FAT_LFN is defined, then the
|
||||
# default, maximum long file name is 255 bytes. This can eat up
|
||||
# a lot of memory (especially stack space). If you are willing
|
||||
# to live with some non-standard, short long file names, then
|
||||
# define this value. A good choice would be the same value as
|
||||
# selected for CONFIG_NAME_MAX which will limit the visibility
|
||||
# of longer file names anyway.
|
||||
# CONFIG_FS_NXFFS: Enable NuttX FLASH file system (NXFF) support.
|
||||
# CONFIG_NXFFS_ERASEDSTATE: The erased state of FLASH.
|
||||
# This must have one of the values of 0xff or 0x00.
|
||||
# Default: 0xff.
|
||||
# CONFIG_NXFFS_PACKTHRESHOLD: When packing flash file data,
|
||||
# don't both with file chunks smaller than this number of data bytes.
|
||||
# CONFIG_NXFFS_MAXNAMLEN: The maximum size of an NXFFS file name.
|
||||
# Default: 255.
|
||||
# CONFIG_NXFFS_PACKTHRESHOLD: When packing flash file data,
|
||||
# don't both with file chunks smaller than this number of data bytes.
|
||||
# Default: 32.
|
||||
# CONFIG_NXFFS_TAILTHRESHOLD: clean-up can either mean
|
||||
# packing files together toward the end of the file or, if file are
|
||||
# deleted at the end of the file, clean up can simply mean erasing
|
||||
# the end of FLASH memory so that it can be re-used again. However,
|
||||
# doing this can also harm the life of the FLASH part because it can
|
||||
# mean that the tail end of the FLASH is re-used too often. This
|
||||
# threshold determines if/when it is worth erased the tail end of FLASH
|
||||
# and making it available for re-use (and possible over-wear).
|
||||
# Default: 8192.
|
||||
# CONFIG_FS_ROMFS - Enable ROMFS filesystem support
|
||||
# CONFIG_FS_RAMMAP - For file systems that do not support XIP, this
|
||||
# option will enable a limited form of memory mapping that is
|
||||
# implemented by copying whole files into memory.
|
||||
#
|
||||
CONFIG_FS_FAT=y
|
||||
CONFIG_FAT_LCNAMES=y
|
||||
CONFIG_FAT_LFN=y
|
||||
CONFIG_FAT_MAXFNAME=32
|
||||
CONFIG_FS_NXFFS=n
|
||||
CONFIG_FS_ROMFS=n
|
||||
|
||||
#
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
############################################################################
|
||||
# configs/mcu123-lpc214x/ostest/defconfig
|
||||
#
|
||||
# Copyright (C) 2007-2010 Gregory Nutt. All rights reserved.
|
||||
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||
# Copyright (C) 2007-2010, 2012 Gregory Nutt. All rights reserved.
|
||||
# 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
|
||||
|
@ -126,6 +126,9 @@ CONFIG_UART1_2STOP=0
|
|||
# CONFIG_INTELHEX_BINARY - make the Intel HEX binary format
|
||||
# used with many different loaders using the GNU objcopy program
|
||||
# Should not be selected if you are not using the GNU toolchain.
|
||||
# CONFIG_MOTOROLA_SREC - make the Motorola S-Record binary format
|
||||
# used with many different loaders using the GNU objcopy program
|
||||
# Should not be selected if you are not using the GNU toolchain.
|
||||
# CONFIG_RAW_BINARY - make a raw binary format file used with many
|
||||
# different loaders using the GNU objcopy program. This option
|
||||
# should not be selected if you are not using the GNU toolchain.
|
||||
|
@ -133,6 +136,7 @@ CONFIG_UART1_2STOP=0
|
|||
#
|
||||
CONFIG_RRLOAD_BINARY=n
|
||||
CONFIG_INTELHEX_BINARY=n
|
||||
CONFIG_MOTOROLA_SREC=n
|
||||
CONFIG_RAW_BINARY=y
|
||||
CONFIG_HAVE_LIBM=n
|
||||
|
||||
|
@ -331,8 +335,49 @@ CONFIG_PREALLOC_TIMERS=4
|
|||
#
|
||||
# CONFIG_FS_FAT - Enable FAT filesystem support
|
||||
# CONFIG_FAT_SECTORSIZE - Max supported sector size
|
||||
# CONFIG_FAT_LCNAMES - Enable use of the NT-style upper/lower case 8.3
|
||||
# file name support.
|
||||
# CONFIG_FAT_LFN - Enable FAT long file names. NOTE: Microsoft claims
|
||||
# patents on FAT long file name technology. Please read the
|
||||
# disclaimer in the top-level COPYING file and only enable this
|
||||
# feature if you understand these issues.
|
||||
# CONFIG_FAT_MAXFNAME - If CONFIG_FAT_LFN is defined, then the
|
||||
# default, maximum long file name is 255 bytes. This can eat up
|
||||
# a lot of memory (especially stack space). If you are willing
|
||||
# to live with some non-standard, short long file names, then
|
||||
# define this value. A good choice would be the same value as
|
||||
# selected for CONFIG_NAME_MAX which will limit the visibility
|
||||
# of longer file names anyway.
|
||||
# CONFIG_FS_NXFFS: Enable NuttX FLASH file system (NXFF) support.
|
||||
# CONFIG_NXFFS_ERASEDSTATE: The erased state of FLASH.
|
||||
# This must have one of the values of 0xff or 0x00.
|
||||
# Default: 0xff.
|
||||
# CONFIG_NXFFS_PACKTHRESHOLD: When packing flash file data,
|
||||
# don't both with file chunks smaller than this number of data bytes.
|
||||
# CONFIG_NXFFS_MAXNAMLEN: The maximum size of an NXFFS file name.
|
||||
# Default: 255.
|
||||
# CONFIG_NXFFS_PACKTHRESHOLD: When packing flash file data,
|
||||
# don't both with file chunks smaller than this number of data bytes.
|
||||
# Default: 32.
|
||||
# CONFIG_NXFFS_TAILTHRESHOLD: clean-up can either mean
|
||||
# packing files together toward the end of the file or, if file are
|
||||
# deleted at the end of the file, clean up can simply mean erasing
|
||||
# the end of FLASH memory so that it can be re-used again. However,
|
||||
# doing this can also harm the life of the FLASH part because it can
|
||||
# mean that the tail end of the FLASH is re-used too often. This
|
||||
# threshold determines if/when it is worth erased the tail end of FLASH
|
||||
# and making it available for re-use (and possible over-wear).
|
||||
# Default: 8192.
|
||||
# CONFIG_FS_ROMFS - Enable ROMFS filesystem support
|
||||
# CONFIG_FS_RAMMAP - For file systems that do not support XIP, this
|
||||
# option will enable a limited form of memory mapping that is
|
||||
# implemented by copying whole files into memory.
|
||||
#
|
||||
CONFIG_FS_FAT=n
|
||||
CONFIG_FAT_LCNAMES=y
|
||||
CONFIG_FAT_LFN=y
|
||||
CONFIG_FAT_MAXFNAME=32
|
||||
CONFIG_FS_NXFFS=n
|
||||
CONFIG_FS_ROMFS=n
|
||||
|
||||
#
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
############################################################################
|
||||
# configs/mcu123-lpc214x/usbserial/defconfig
|
||||
#
|
||||
# Copyright (C) 2008-2010 Gregory Nutt. All rights reserved.
|
||||
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||
# Copyright (C) 2008-2010, 2012 Gregory Nutt. All rights reserved.
|
||||
# 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
|
||||
|
@ -126,6 +126,9 @@ CONFIG_UART1_2STOP=0
|
|||
# CONFIG_INTELHEX_BINARY - make the Intel HEX binary format
|
||||
# used with many different loaders using the GNU objcopy program
|
||||
# Should not be selected if you are not using the GNU toolchain.
|
||||
# CONFIG_MOTOROLA_SREC - make the Motorola S-Record binary format
|
||||
# used with many different loaders using the GNU objcopy program
|
||||
# Should not be selected if you are not using the GNU toolchain.
|
||||
# CONFIG_RAW_BINARY - make a raw binary format file used with many
|
||||
# different loaders using the GNU objcopy program. This option
|
||||
# should not be selected if you are not using the GNU toolchain.
|
||||
|
@ -133,6 +136,7 @@ CONFIG_UART1_2STOP=0
|
|||
#
|
||||
CONFIG_RRLOAD_BINARY=n
|
||||
CONFIG_INTELHEX_BINARY=n
|
||||
CONFIG_MOTOROLA_SREC=n
|
||||
CONFIG_RAW_BINARY=y
|
||||
CONFIG_HAVE_LIBM=n
|
||||
|
||||
|
@ -331,8 +335,49 @@ CONFIG_PREALLOC_TIMERS=4
|
|||
#
|
||||
# CONFIG_FS_FAT - Enable FAT filesystem support
|
||||
# CONFIG_FAT_SECTORSIZE - Max supported sector size
|
||||
# CONFIG_FAT_LCNAMES - Enable use of the NT-style upper/lower case 8.3
|
||||
# file name support.
|
||||
# CONFIG_FAT_LFN - Enable FAT long file names. NOTE: Microsoft claims
|
||||
# patents on FAT long file name technology. Please read the
|
||||
# disclaimer in the top-level COPYING file and only enable this
|
||||
# feature if you understand these issues.
|
||||
# CONFIG_FAT_MAXFNAME - If CONFIG_FAT_LFN is defined, then the
|
||||
# default, maximum long file name is 255 bytes. This can eat up
|
||||
# a lot of memory (especially stack space). If you are willing
|
||||
# to live with some non-standard, short long file names, then
|
||||
# define this value. A good choice would be the same value as
|
||||
# selected for CONFIG_NAME_MAX which will limit the visibility
|
||||
# of longer file names anyway.
|
||||
# CONFIG_FS_NXFFS: Enable NuttX FLASH file system (NXFF) support.
|
||||
# CONFIG_NXFFS_ERASEDSTATE: The erased state of FLASH.
|
||||
# This must have one of the values of 0xff or 0x00.
|
||||
# Default: 0xff.
|
||||
# CONFIG_NXFFS_PACKTHRESHOLD: When packing flash file data,
|
||||
# don't both with file chunks smaller than this number of data bytes.
|
||||
# CONFIG_NXFFS_MAXNAMLEN: The maximum size of an NXFFS file name.
|
||||
# Default: 255.
|
||||
# CONFIG_NXFFS_PACKTHRESHOLD: When packing flash file data,
|
||||
# don't both with file chunks smaller than this number of data bytes.
|
||||
# Default: 32.
|
||||
# CONFIG_NXFFS_TAILTHRESHOLD: clean-up can either mean
|
||||
# packing files together toward the end of the file or, if file are
|
||||
# deleted at the end of the file, clean up can simply mean erasing
|
||||
# the end of FLASH memory so that it can be re-used again. However,
|
||||
# doing this can also harm the life of the FLASH part because it can
|
||||
# mean that the tail end of the FLASH is re-used too often. This
|
||||
# threshold determines if/when it is worth erased the tail end of FLASH
|
||||
# and making it available for re-use (and possible over-wear).
|
||||
# Default: 8192.
|
||||
# CONFIG_FS_ROMFS - Enable ROMFS filesystem support
|
||||
# CONFIG_FS_RAMMAP - For file systems that do not support XIP, this
|
||||
# option will enable a limited form of memory mapping that is
|
||||
# implemented by copying whole files into memory.
|
||||
#
|
||||
CONFIG_FS_FAT=n
|
||||
CONFIG_FAT_LCNAMES=y
|
||||
CONFIG_FAT_LFN=y
|
||||
CONFIG_FAT_MAXFNAME=32
|
||||
CONFIG_FS_NXFFS=n
|
||||
CONFIG_FS_ROMFS=n
|
||||
|
||||
#
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
############################################################################
|
||||
# configs/mcu123-lpc214x/usbstorage/defconfig
|
||||
#
|
||||
# Copyright (C) 2008-2010 Gregory Nutt. All rights reserved.
|
||||
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||
# Copyright (C) 2008-2010, 2012 Gregory Nutt. All rights reserved.
|
||||
# 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
|
||||
|
@ -126,6 +126,9 @@ CONFIG_UART1_2STOP=0
|
|||
# CONFIG_INTELHEX_BINARY - make the Intel HEX binary format
|
||||
# used with many different loaders using the GNU objcopy program
|
||||
# Should not be selected if you are not using the GNU toolchain.
|
||||
# CONFIG_MOTOROLA_SREC - make the Motorola S-Record binary format
|
||||
# used with many different loaders using the GNU objcopy program
|
||||
# Should not be selected if you are not using the GNU toolchain.
|
||||
# CONFIG_RAW_BINARY - make a raw binary format file used with many
|
||||
# different loaders using the GNU objcopy program. This option
|
||||
# should not be selected if you are not using the GNU toolchain.
|
||||
|
@ -133,6 +136,7 @@ CONFIG_UART1_2STOP=0
|
|||
#
|
||||
CONFIG_RRLOAD_BINARY=n
|
||||
CONFIG_INTELHEX_BINARY=n
|
||||
CONFIG_MOTOROLA_SREC=n
|
||||
CONFIG_RAW_BINARY=y
|
||||
CONFIG_HAVE_LIBM=n
|
||||
|
||||
|
@ -332,8 +336,49 @@ CONFIG_PREALLOC_TIMERS=4
|
|||
#
|
||||
# CONFIG_FS_FAT - Enable FAT filesystem support
|
||||
# CONFIG_FAT_SECTORSIZE - Max supported sector size
|
||||
# CONFIG_FAT_LCNAMES - Enable use of the NT-style upper/lower case 8.3
|
||||
# file name support.
|
||||
# CONFIG_FAT_LFN - Enable FAT long file names. NOTE: Microsoft claims
|
||||
# patents on FAT long file name technology. Please read the
|
||||
# disclaimer in the top-level COPYING file and only enable this
|
||||
# feature if you understand these issues.
|
||||
# CONFIG_FAT_MAXFNAME - If CONFIG_FAT_LFN is defined, then the
|
||||
# default, maximum long file name is 255 bytes. This can eat up
|
||||
# a lot of memory (especially stack space). If you are willing
|
||||
# to live with some non-standard, short long file names, then
|
||||
# define this value. A good choice would be the same value as
|
||||
# selected for CONFIG_NAME_MAX which will limit the visibility
|
||||
# of longer file names anyway.
|
||||
# CONFIG_FS_NXFFS: Enable NuttX FLASH file system (NXFF) support.
|
||||
# CONFIG_NXFFS_ERASEDSTATE: The erased state of FLASH.
|
||||
# This must have one of the values of 0xff or 0x00.
|
||||
# Default: 0xff.
|
||||
# CONFIG_NXFFS_PACKTHRESHOLD: When packing flash file data,
|
||||
# don't both with file chunks smaller than this number of data bytes.
|
||||
# CONFIG_NXFFS_MAXNAMLEN: The maximum size of an NXFFS file name.
|
||||
# Default: 255.
|
||||
# CONFIG_NXFFS_PACKTHRESHOLD: When packing flash file data,
|
||||
# don't both with file chunks smaller than this number of data bytes.
|
||||
# Default: 32.
|
||||
# CONFIG_NXFFS_TAILTHRESHOLD: clean-up can either mean
|
||||
# packing files together toward the end of the file or, if file are
|
||||
# deleted at the end of the file, clean up can simply mean erasing
|
||||
# the end of FLASH memory so that it can be re-used again. However,
|
||||
# doing this can also harm the life of the FLASH part because it can
|
||||
# mean that the tail end of the FLASH is re-used too often. This
|
||||
# threshold determines if/when it is worth erased the tail end of FLASH
|
||||
# and making it available for re-use (and possible over-wear).
|
||||
# Default: 8192.
|
||||
# CONFIG_FS_ROMFS - Enable ROMFS filesystem support
|
||||
# CONFIG_FS_RAMMAP - For file systems that do not support XIP, this
|
||||
# option will enable a limited form of memory mapping that is
|
||||
# implemented by copying whole files into memory.
|
||||
#
|
||||
CONFIG_FS_FAT=n
|
||||
CONFIG_FAT_LCNAMES=y
|
||||
CONFIG_FAT_LFN=y
|
||||
CONFIG_FAT_MAXFNAME=32
|
||||
CONFIG_FS_NXFFS=n
|
||||
CONFIG_FS_ROMFS=n
|
||||
|
||||
#
|
||||
|
|
|
@ -583,14 +583,6 @@ Where <subdir> is one of the following:
|
|||
CONFIG_EXAMPLE_NETTEST_DRIPADDR=(10<<24|0<<16|0<<8|1) : Host side is IP: 10.0.0.1
|
||||
CONFIG_EXAMPLE_NETTEST_CLIENTIP=(10<<24|0<<16|0<<8|1) : Server address used by which ever is client.
|
||||
|
||||
ostest:
|
||||
------
|
||||
This configuration directory, performs a simple OS test using
|
||||
examples/ostest. By default, this project assumes that you are
|
||||
using the DFU bootloader.
|
||||
|
||||
CONFIG_STM32_CODESOURCERYW=y : CodeSourcery under Windows
|
||||
|
||||
nsh:
|
||||
---
|
||||
Configures the NuttShell (nsh) located at apps/examples/nsh. The
|
||||
|
@ -668,3 +660,21 @@ Where <subdir> is one of the following:
|
|||
|
||||
CONFIG_DEBUG_CAN
|
||||
CONFIG_CAN_REGDEBUG
|
||||
|
||||
ostest:
|
||||
------
|
||||
This configuration directory, performs a simple OS test using
|
||||
examples/ostest. By default, this project assumes that you are
|
||||
using the DFU bootloader.
|
||||
|
||||
CONFIG_STM32_CODESOURCERYW=y : CodeSourcery under Windows
|
||||
|
||||
telnetd:
|
||||
--------
|
||||
|
||||
A simple test of the Telnet daemon(see apps/netutils/README.txt,
|
||||
apps/examples/README.txt, and apps/examples/telnetd). This is
|
||||
the same daemon that is used in the nsh configuration so if you
|
||||
use NSH, then you don't care about this. This test is good for
|
||||
testing the Telnet daemon only because it works in a simpler
|
||||
environment than does the nsh configuration.
|
||||
|
|
Loading…
Reference in New Issue