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:
patacongo 2012-02-02 19:42:55 +00:00
parent 7a586daed8
commit 05e846f340
14 changed files with 993 additions and 40 deletions

View File

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

432
apps/nshlib/nsh_console.c Normal file
View File

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

159
apps/nshlib/nsh_console.h Normal file
View File

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

View File

@ -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/)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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