diff options
-rw-r--r-- | apps/examples/README.txt | 4 | ||||
-rw-r--r-- | apps/nshlib/nsh_console.c | 432 | ||||
-rw-r--r-- | apps/nshlib/nsh_console.h | 159 | ||||
-rw-r--r-- | nuttx/TODO | 15 | ||||
-rw-r--r-- | nuttx/configs/mcu123-lpc214x/README.txt | 138 | ||||
-rw-r--r-- | nuttx/configs/mcu123-lpc214x/composite/Make.defs | 5 | ||||
-rw-r--r-- | nuttx/configs/mcu123-lpc214x/composite/defconfig | 49 | ||||
-rw-r--r-- | nuttx/configs/mcu123-lpc214x/composite/ld.script | 5 | ||||
-rwxr-xr-x | nuttx/configs/mcu123-lpc214x/composite/setenv.sh | 4 | ||||
-rw-r--r-- | nuttx/configs/mcu123-lpc214x/nsh/defconfig | 49 | ||||
-rw-r--r-- | nuttx/configs/mcu123-lpc214x/ostest/defconfig | 49 | ||||
-rw-r--r-- | nuttx/configs/mcu123-lpc214x/usbserial/defconfig | 49 | ||||
-rw-r--r-- | nuttx/configs/mcu123-lpc214x/usbstorage/defconfig | 49 | ||||
-rwxr-xr-x | nuttx/configs/stm3240g-eval/README.txt | 26 |
14 files changed, 993 insertions, 40 deletions
diff --git a/apps/examples/README.txt b/apps/examples/README.txt index fa14d57dc..b35232039 100644 --- a/apps/examples/README.txt +++ b/apps/examples/README.txt @@ -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 diff --git a/apps/nshlib/nsh_console.c b/apps/nshlib/nsh_console.c new file mode 100644 index 000000000..b066e71f5 --- /dev/null +++ b/apps/nshlib/nsh_console.c @@ -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; +} diff --git a/apps/nshlib/nsh_console.h b/apps/nshlib/nsh_console.h new file mode 100644 index 000000000..8abf9154b --- /dev/null +++ b/apps/nshlib/nsh_console.h @@ -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 */ diff --git a/nuttx/TODO b/nuttx/TODO index 7fdaf377a..056548d4b 100644 --- a/nuttx/TODO +++ b/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/) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/nuttx/configs/mcu123-lpc214x/README.txt b/nuttx/configs/mcu123-lpc214x/README.txt index b2f8dd2f9..c11a156b7 100644 --- a/nuttx/configs/mcu123-lpc214x/README.txt +++ b/nuttx/configs/mcu123-lpc214x/README.txt @@ -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) diff --git a/nuttx/configs/mcu123-lpc214x/composite/Make.defs b/nuttx/configs/mcu123-lpc214x/composite/Make.defs index d6dfa3807..c6aa4cd6b 100644 --- a/nuttx/configs/mcu123-lpc214x/composite/Make.defs +++ b/nuttx/configs/mcu123-lpc214x/composite/Make.defs @@ -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 diff --git a/nuttx/configs/mcu123-lpc214x/composite/defconfig b/nuttx/configs/mcu123-lpc214x/composite/defconfig index 9ad8a8e2b..f8efcb263 100644 --- a/nuttx/configs/mcu123-lpc214x/composite/defconfig +++ b/nuttx/configs/mcu123-lpc214x/composite/defconfig @@ -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 # diff --git a/nuttx/configs/mcu123-lpc214x/composite/ld.script b/nuttx/configs/mcu123-lpc214x/composite/ld.script index c97a2222f..4065f2991 100644 --- a/nuttx/configs/mcu123-lpc214x/composite/ld.script +++ b/nuttx/configs/mcu123-lpc214x/composite/ld.script @@ -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) diff --git a/nuttx/configs/mcu123-lpc214x/composite/setenv.sh b/nuttx/configs/mcu123-lpc214x/composite/setenv.sh index 58e78a92d..f2fb6cb4c 100755 --- a/nuttx/configs/mcu123-lpc214x/composite/setenv.sh +++ b/nuttx/configs/mcu123-lpc214x/composite/setenv.sh @@ -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 diff --git a/nuttx/configs/mcu123-lpc214x/nsh/defconfig b/nuttx/configs/mcu123-lpc214x/nsh/defconfig index 5c4b847b1..650621985 100644 --- a/nuttx/configs/mcu123-lpc214x/nsh/defconfig +++ b/nuttx/configs/mcu123-lpc214x/nsh/defconfig @@ -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 # diff --git a/nuttx/configs/mcu123-lpc214x/ostest/defconfig b/nuttx/configs/mcu123-lpc214x/ostest/defconfig index 923d1b39c..48ce72937 100644 --- a/nuttx/configs/mcu123-lpc214x/ostest/defconfig +++ b/nuttx/configs/mcu123-lpc214x/ostest/defconfig @@ -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 # diff --git a/nuttx/configs/mcu123-lpc214x/usbserial/defconfig b/nuttx/configs/mcu123-lpc214x/usbserial/defconfig index 109712125..32e1b5f85 100644 --- a/nuttx/configs/mcu123-lpc214x/usbserial/defconfig +++ b/nuttx/configs/mcu123-lpc214x/usbserial/defconfig @@ -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 # diff --git a/nuttx/configs/mcu123-lpc214x/usbstorage/defconfig b/nuttx/configs/mcu123-lpc214x/usbstorage/defconfig index e7ebfb70b..9f525b7f1 100644 --- a/nuttx/configs/mcu123-lpc214x/usbstorage/defconfig +++ b/nuttx/configs/mcu123-lpc214x/usbstorage/defconfig @@ -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 # diff --git a/nuttx/configs/stm3240g-eval/README.txt b/nuttx/configs/stm3240g-eval/README.txt index 5421e8593..119c5b0cd 100755 --- a/nuttx/configs/stm3240g-eval/README.txt +++ b/nuttx/configs/stm3240g-eval/README.txt @@ -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. |