summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/Makefile2
-rw-r--r--nuttx/ChangeLog3
-rw-r--r--nuttx/arch/sim/src/up_idle.c23
-rw-r--r--nuttx/arch/sim/src/up_internal.h5
-rw-r--r--nuttx/arch/sim/src/up_x11framebuffer.c105
-rw-r--r--nuttx/configs/sim/README.txt25
-rw-r--r--nuttx/configs/sim/nsh2/Make.defs121
-rw-r--r--nuttx/configs/sim/nsh2/appconfig49
-rw-r--r--nuttx/configs/sim/nsh2/defconfig799
-rwxr-xr-xnuttx/configs/sim/nsh2/setenv.sh45
-rw-r--r--nuttx/graphics/nxbe/nxbe_colormap.c12
11 files changed, 1128 insertions, 61 deletions
diff --git a/apps/Makefile b/apps/Makefile
index db75855ca..869c2b7b2 100644
--- a/apps/Makefile
+++ b/apps/Makefile
@@ -122,4 +122,6 @@ distclean: clean
$(MAKE) -C $$dir distclean TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)"; \
done
@rm -f .config .context .depend
+ #@rm -f external -- User make remove the external directory manually
+
diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog
index d5980f37f..7e26b4c2a 100644
--- a/nuttx/ChangeLog
+++ b/nuttx/ChangeLog
@@ -2142,4 +2142,7 @@
errors than you would think.
* arch/arm/src/stm32/stm32_i2c.c: Fixed an error where I2C timeouts appeared
to be successful transfers.
+ * configs/sim/nsh2: Add another simulated NSH configuration. This one
+ supports X11 graphics, C++, and exercises graphic functions as built-in
+ commands.
diff --git a/nuttx/arch/sim/src/up_idle.c b/nuttx/arch/sim/src/up_idle.c
index 70d25f1d6..d7397ba22 100644
--- a/nuttx/arch/sim/src/up_idle.c
+++ b/nuttx/arch/sim/src/up_idle.c
@@ -134,19 +134,24 @@ void up_idle(void)
/* Handle X11-related events */
#ifdef CONFIG_SIM_X11FB
-#ifdef CONFIG_SIM_TOUCHSCREEN
- if (g_eventloop)
+ if (g_x11initialized)
{
- up_x11events();
- }
+ /* Driver the X11 event loop */
+
+#ifdef CONFIG_SIM_TOUCHSCREEN
+ if (g_eventloop)
+ {
+ up_x11events();
+ }
#endif
- /* Update the display periodically */
+ /* Update the display periodically */
- g_x11refresh += 1000000 / CLK_TCK;
- if (g_x11refresh > 500000)
- {
- up_x11update();
+ g_x11refresh += 1000000 / CLK_TCK;
+ if (g_x11refresh > 500000)
+ {
+ up_x11update();
+ }
}
#endif
#endif
diff --git a/nuttx/arch/sim/src/up_internal.h b/nuttx/arch/sim/src/up_internal.h
index b0a365b4b..194191de0 100644
--- a/nuttx/arch/sim/src/up_internal.h
+++ b/nuttx/arch/sim/src/up_internal.h
@@ -116,9 +116,12 @@
#ifndef __ASSEMBLY__
-#if defined(CONFIG_SIM_X11FB) && defined(CONFIG_SIM_TOUCHSCREEN)
+#ifdef CONFIG_SIM_X11FB
+extern int g_x11initialized;
+#ifdef CONFIG_SIM_TOUCHSCREEN
extern volatile int g_eventloop;
#endif
+#endif
/**************************************************************************
* Public Function Prototypes
diff --git a/nuttx/arch/sim/src/up_x11framebuffer.c b/nuttx/arch/sim/src/up_x11framebuffer.c
index 4d8c9b9a5..248156100 100644
--- a/nuttx/arch/sim/src/up_x11framebuffer.c
+++ b/nuttx/arch/sim/src/up_x11framebuffer.c
@@ -70,6 +70,7 @@
/* Also used in up_x11eventloop */
Display *g_display;
+int g_x11initialized;
/****************************************************************************
* Private Variables
@@ -112,9 +113,9 @@ static inline int up_x11createframe(void)
g_screen = DefaultScreen(g_display);
g_window = XCreateSimpleWindow(g_display, DefaultRootWindow(g_display),
- 0, 0, g_fbpixelwidth, g_fbpixelheight, 2,
- BlackPixel(g_display, g_screen),
- BlackPixel(g_display, g_screen));
+ 0, 0, g_fbpixelwidth, g_fbpixelheight, 2,
+ BlackPixel(g_display, g_screen),
+ BlackPixel(g_display, g_screen));
XStringListToTextProperty(&winName, 1, &winprop);
XStringListToTextProperty(&iconName, 1, &iconprop);
@@ -147,6 +148,7 @@ static inline int up_x11createframe(void)
gcval.graphics_exposures = 0;
g_gc = XCreateGC(g_display, g_window, GCGraphicsExposures, &gcval);
+
return 0;
}
@@ -194,33 +196,38 @@ static int up_x11untraperrors(void)
static void up_x11uninitX(void)
{
fprintf(stderr, "Uninitalizing X\n");
-#ifndef CONFIG_SIM_X11NOSHM
- if (g_shmcheckpoint > 4)
+ if (g_x11initialized)
{
- XShmDetach(g_display, &g_xshminfo);
- }
+#ifndef CONFIG_SIM_X11NOSHM
+ if (g_shmcheckpoint > 4)
+ {
+ XShmDetach(g_display, &g_xshminfo);
+ }
- if (g_shmcheckpoint > 3)
- {
- shmdt(g_xshminfo.shmaddr);
- }
+ if (g_shmcheckpoint > 3)
+ {
+ shmdt(g_xshminfo.shmaddr);
+ }
- if (g_shmcheckpoint > 2)
- {
- shmctl(g_xshminfo.shmid, IPC_RMID, 0);
- }
+ if (g_shmcheckpoint > 2)
+ {
+ shmctl(g_xshminfo.shmid, IPC_RMID, 0);
+ }
#endif
- if (g_shmcheckpoint > 1)
- {
- XDestroyImage(g_image);
- }
+ if (g_shmcheckpoint > 1)
+ {
+ XDestroyImage(g_image);
+ }
- /* Un-grab the mouse buttons */
+ /* Un-grab the mouse buttons */
#ifdef CONFIG_SIM_TOUCHSCREEN
- XUngrabButton(g_display, Button1, AnyModifier, g_window);
+ XUngrabButton(g_display, Button1, AnyModifier, g_window);
#endif
+ g_x11initialized = 0;
+ }
+
XCloseDisplay(g_display);
}
@@ -362,41 +369,47 @@ int up_x11initialize(unsigned short width, unsigned short height,
int depth;
int ret;
- /* Save inputs */
+ /* Check if we are already initialized */
- g_fbpixelwidth = width;
- g_fbpixelheight = height;
+ if (!g_x11initialized)
+ {
+ /* Save inputs */
- /* Create the X11 window */
+ g_fbpixelwidth = width;
+ g_fbpixelheight = height;
- ret = up_x11createframe();
- if (ret < 0)
- {
- return ret;
- }
+ /* Create the X11 window */
- /* Determine the supported pixel bpp of the current window */
+ ret = up_x11createframe();
+ if (ret < 0)
+ {
+ return ret;
+ }
- XGetWindowAttributes(g_display, DefaultRootWindow(g_display), &windowAttributes);
+ /* Determine the supported pixel bpp of the current window */
- /* Get the pixel depth. If the depth is 24-bits, use 32 because X expects
- * 32-bit aligment anyway.
- */
+ XGetWindowAttributes(g_display, DefaultRootWindow(g_display), &windowAttributes);
- depth = windowAttributes.depth;
- if (depth == 24)
- {
- depth = 32;
- }
- printf("Pixel bpp is %d bits (using %d)\n", windowAttributes.depth, depth);
+ /* Get the pixel depth. If the depth is 24-bits, use 32 because X expects
+ * 32-bit aligment anyway.
+ */
- *bpp = depth;
- *stride = (depth * width / 8);
- *fblen = (*stride * height);
+ depth = windowAttributes.depth;
+ if (depth == 24)
+ {
+ depth = 32;
+ }
+ printf("Pixel bpp is %d bits (using %d)\n", windowAttributes.depth, depth);
- /* Map the window to shared memory */
+ *bpp = depth;
+ *stride = (depth * width / 8);
+ *fblen = (*stride * height);
- up_x11mapsharedmem(windowAttributes.depth, *fblen);
+ /* Map the window to shared memory */
+
+ up_x11mapsharedmem(windowAttributes.depth, *fblen);
+ g_x11initialized = 1;
+ }
*fbmem = (void*)g_framebuffer;
return 0;
diff --git a/nuttx/configs/sim/README.txt b/nuttx/configs/sim/README.txt
index ef67e1775..cac493ee0 100644
--- a/nuttx/configs/sim/README.txt
+++ b/nuttx/configs/sim/README.txt
@@ -181,6 +181,28 @@ nsh
cd <nuttx-directory>/tools
./configure.sh sim/nsh
+nsh2
+
+ Description
+ -----------
+ This is another example that configures to use the NuttShell at examples/nsh.
+ Unlike nsh, this version uses NSH built-in functions. The nx, nxhello, and
+ nxlines examples are included as built-in functions.
+
+ X11 Configuration
+ -----------------
+ This configuration uses an X11-based framebuffer driver. Of course, this
+ configuration can only be used in environments that support X11! (And it
+ may not even be usable in all of those environments without some "tweaking"
+ See discussion below under the nx11 configuration).
+
+ Configuring
+ -----------
+ This configuration may be selected as follows:
+
+ cd <nuttx-directory>/tools
+ ./configure.sh sim/nsh2
+
nx
Description
@@ -223,7 +245,7 @@ nx11
Description
-----------
Configures to use examples/nx. This configuration is similar
- to the nx configuration except that it addes support for an X11-
+ to the nx configuration except that it adds support for an X11-
based framebuffer driver. Of course, this configuration can only
be used in environments that support X11! (And it may not even
be usable in all of those environments without some "tweaking").
@@ -343,4 +365,3 @@ touchscreen
See apps/examples/README.txt for further information about build
requirements and configuration settings.
-
diff --git a/nuttx/configs/sim/nsh2/Make.defs b/nuttx/configs/sim/nsh2/Make.defs
new file mode 100644
index 000000000..d36c3438f
--- /dev/null
+++ b/nuttx/configs/sim/nsh2/Make.defs
@@ -0,0 +1,121 @@
+############################################################################
+# configs/sim/nsh2/Make.defs
+#
+# Copyright (C) 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 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.
+#
+############################################################################
+
+include ${TOPDIR}/.config
+
+HOSTOS = ${shell uname -o 2>/dev/null || echo "Other"}
+
+ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
+ ARCHOPTIMIZATION = -g
+else
+ ARCHOPTIMIZATION = -O2
+endif
+
+ARCHCPUFLAGS = -fno-builtin
+ARCHCPUFLAGSXX = -fno-builtin -fno-exceptions
+ARCHPICFLAGS = -fpic
+ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow
+ARCHWARNINGSXX = -Wall -Wshadow
+ARCHDEFINES =
+ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
+ARCHINCLUDESXX = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
+ARCHSCRIPT =
+
+CROSSDEV =
+CC = $(CROSSDEV)gcc
+CXX = $(CROSSDEV)g++
+CPP = $(CROSSDEV)gcc -E
+LD = $(CROSSDEV)ld
+AR = $(CROSSDEV)ar rcs
+NM = $(CROSSDEV)nm
+OBJCOPY = $(CROSSDEV)objcopy
+OBJDUMP = $(CROSSDEV)objdump
+
+CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) \
+ $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
+CXXFLAGS = $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) \
+ $(ARCHCPUFLAGSXX) $(ARCHINCLUDESXX) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
+CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES)
+AFLAGS = $(CFLAGS) -D__ASSEMBLY__
+
+OBJEXT = .o
+LIBEXT = .a
+
+ifeq ($(HOSTOS),Cygwin)
+ EXEEXT = .exe
+else
+ EXEEXT =
+endif
+
+ifeq ("${CONFIG_DEBUG_SYMBOLS}","y")
+ LDFLAGS += -g
+endif
+
+define PREPROCESS
+ @echo "CPP: $1->$2"
+ @$(CPP) $(CPPFLAGS) $1 -o $2
+endef
+
+define COMPILE
+ @echo "CC: $1"
+ @$(CC) -c $(CFLAGS) $1 -o $2
+endef
+
+define COMPILEXX
+ @echo "CXX: $1"
+ @$(CXX) -c $(CXXFLAGS) $1 -o $2
+endef
+
+define ASSEMBLE
+ @echo "AS: $1"
+ @$(CC) -c $(AFLAGS) $1 -o $2
+endef
+
+define ARCHIVE
+ echo "AR: $2"; \
+ $(AR) $1 $2 || { echo "$(AR) $1 $2 FAILED!" ; exit 1 ; }
+endef
+
+define CLEAN
+ @rm -f *.o *.a
+endef
+
+MKDEP = $(TOPDIR)/tools/mkdeps.sh
+
+HOSTCC = gcc
+HOSTINCLUDES = -I.
+HOSTCFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) \
+ $(ARCHCPUFLAGS) $(HOSTINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
+HOSTLDFLAGS =
diff --git a/nuttx/configs/sim/nsh2/appconfig b/nuttx/configs/sim/nsh2/appconfig
new file mode 100644
index 000000000..b77c1a198
--- /dev/null
+++ b/nuttx/configs/sim/nsh2/appconfig
@@ -0,0 +1,49 @@
+############################################################################
+# configs/sim/nsh2/appconfig
+#
+# Copyright (C) 2011 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 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nsh
+
+# The NSH Library
+
+CONFIGURED_APPS += nshlib
+
+# NSH Built-In Functions
+
+CONFIGURED_APPS += examples/nx
+CONFIGURED_APPS += examples/nxhello
+CONFIGURED_APPS += examples/nxlines
+CONFIGURED_APPS += examples/touchscreen
diff --git a/nuttx/configs/sim/nsh2/defconfig b/nuttx/configs/sim/nsh2/defconfig
new file mode 100644
index 000000000..60689afc1
--- /dev/null
+++ b/nuttx/configs/sim/nsh2/defconfig
@@ -0,0 +1,799 @@
+############################################################################
+# sim/nsh2/defconfig
+#
+# Copyright (C) 2011 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 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.
+#
+############################################################################
+#
+# Architecture selection
+#
+# CONFIG_ARCH - identifies the arch subdirectory and, hence, the
+# processor architecture.
+# CONFIG_ARCH_name - for use in C code. This identifies the particular
+# processor architecture (CONFIG_ARCH_SIM).
+# CONFIG_ARCH_BOARD - identifies the configs subdirectory and, hence,
+# the board that supports the particular chip or SoC.
+# CONFIG_ARCH_BOARD_name - for use in C code
+# CONFIG_ENDIAN_BIG - define if big endian (default is little endian)
+#
+CONFIG_ARCH=sim
+CONFIG_ARCH_SIM=y
+CONFIG_ARCH_BOARD=sim
+CONFIG_ARCH_BOARD_SIM=y
+
+#
+# Framebuffer driver options
+#
+CONFIG_FB_CMAP=y
+CONFIG_FB_HWCURSOR=n
+CONFIG_FB_HWCURSORIMAGE=n
+#CONFIG_FB_HWCURSORSIZE
+#CONFIG_FB_TRANSPARENCY
+
+#
+# Simulated framebuffer configuration
+#
+CONFIG_SIM_X11FB=y
+CONFIG_SIM_FBWIDTH=480
+CONFIG_SIM_FBHEIGHT=240
+CONFIG_SIM_FBBPP=32
+
+#
+# Simulated touchscreen configuration
+# (Set both of the following to 'y' to enable)
+#
+CONFIG_INPUT=y
+CONFIG_SIM_TOUCHSCREEN=y
+
+#
+# General OS setup
+#
+# CONFIG_APPS_DIR - Identifies the relative path to the directory
+# that builds the application to link with NuttX. Default: ../apps
+# CONFIG_DEBUG - enables built-in debug options
+# CONFIG_DEBUG_VERBOSE - enables verbose debug output
+# CONFIG_DEBUG_SYMBOLS - build without optimization and with
+# debug symbols (needed for use with a debugger).
+# CONFIG_HAVE_CXX - Enable support for C++S
+# CONFIG_MM_REGIONS - If the architecture includes multiple
+# regions of memory to allocate from, this specifies the
+# number of memory regions that the memory manager must
+# handle and enables the API mm_addregion(start, end);
+# CONFIG_ARCH_LOWPUTC - architecture supports low-level, boot
+# time console output
+# CONFIG_MSEC_PER_TICK - The default system timer is 100Hz
+# or MSEC_PER_TICK=10. This setting may be defined to
+# inform NuttX that the processor hardware is providing
+# system timer interrupts at some interrupt interval other
+# than 10 msec.
+# CONFIG_RR_INTERVAL - The round robin timeslice will be set
+# this number of milliseconds; Round robin scheduling can
+# be disabled by setting this value to zero.
+# CONFIG_SCHED_INSTRUMENTATION - enables instrumentation in
+# scheduler to monitor system performance
+# CONFIG_TASK_NAME_SIZE - Spcifies that maximum size of a
+# task name to save in the TCB. Useful if scheduler
+# instrumentation is selected. Set to zero to disable.
+# CONFIG_JULIAN_TIME - Enables Julian time conversions
+# CONFIG_START_YEAR, CONFIG_START_MONTH, CONFIG_START_DAY -
+# Used to initialize the internal time logic.
+# CONFIG_DEV_CONSOLE - Set if architecture-specific logic
+# provides /dev/console. Enables stdout, stderr, stdin.
+# CONFIG_DEV_LOWCONSOLE - Use the simple, low-level serial console
+# driver (minimul support)
+# CONFIG_MUTEX_TYPES: Set to enable support for recursive and
+# errorcheck mutexes. Enables pthread_mutexattr_settype().
+# CONFIG_PRIORITY_INHERITANCE : Set to enable support for priority
+# inheritance on mutexes and semaphores.
+# CONFIG_SEM_PREALLOCHOLDERS: This setting is only used if priority
+# inheritance is enabled. It defines the maximum number of
+# different threads (minus one) that can take counts on a
+# semaphore with priority inheritance support. This may be
+# set to zero if priority inheritance is disabled OR if you
+# are only using semaphores as mutexes (only one holder) OR
+# if no more than two threads participate using a counting
+# semaphore.
+# CONFIG_SEM_NNESTPRIO. If priority inheritance is enabled,
+# then this setting is the maximum number of higher priority
+# threads (minus 1) than can be waiting for another thread
+# to release a count on a semaphore. This value may be set
+# to zero if no more than one thread is expected to wait for
+# a semaphore.
+# CONFIG_FDCLONE_DISABLE. Disable cloning of all file descriptors
+# by task_create() when a new task is started. If set, all
+# files/drivers will appear to be closed in the new task.
+# CONFIG_FDCLONE_STDIO. Disable cloning of all but the first
+# three file descriptors (stdin, stdout, stderr) by task_create()
+# when a new task is started. If set, all files/drivers will
+# appear to be closed in the new task except for stdin, stdout,
+# and stderr.
+# CONFIG_SDCLONE_DISABLE. Disable cloning of all socket
+# desciptors by task_create() when a new task is started. If
+# set, all sockets will appear to be closed in the new task.
+# CONFIG_SCHED_WORKQUEUE. Create a dedicated "worker" thread to
+# handle delayed processing from interrupt handlers. This feature
+# is required for some drivers but, if there are not complaints,
+# can be safely disabled. The worker thread also performs
+# garbage collection -- completing any delayed memory deallocations
+# from interrupt handlers. If the worker thread is disabled,
+# then that clean will be performed by the IDLE thread instead
+# (which runs at the lowest of priority and may not be appropriate
+# if memory reclamation is of high priority). If CONFIG_SCHED_WORKQUEUE
+# is enabled, then the following options can also be used:
+# CONFIG_SCHED_WORKPRIORITY - The execution priority of the worker
+# thread. Default: 50
+# CONFIG_SCHED_WORKPERIOD - How often the worker thread checks for
+# work in units of microseconds. Default: 50*1000 (50 MS).
+# CONFIG_SCHED_WORKSTACKSIZE - The stack size allocated for the worker
+# thread. Default: CONFIG_IDLETHREAD_STACKSIZE.
+# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
+# the worker thread. Default: 4
+# CONFIG_SCHED_WAITPID - Enable the waitpid() API
+# CONFIG_SCHED_ATEXIT - Enabled the atexit() API
+#
+#CONFIG_APPS_DIR=
+CONFIG_DEBUG=n
+CONFIG_DEBUG_VERBOSE=n
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_DEBUG_GRAPHICS=n
+CONFIG_DEBUG_INPUT=n
+CONFIG_HAVE_CXX=y
+CONFIG_MM_REGIONS=1
+CONFIG_ARCH_LOWPUTC=y
+CONFIG_RR_INTERVAL=0
+CONFIG_SCHED_INSTRUMENTATION=n
+CONFIG_TASK_NAME_SIZE=32
+CONFIG_START_YEAR=2011
+CONFIG_START_MONTH=10
+CONFIG_START_DAY=6
+CONFIG_JULIAN_TIME=n
+CONFIG_DEV_CONSOLE=y
+CONFIG_DEV_LOWCONSOLE=n
+CONFIG_MUTEX_TYPES=n
+CONFIG_PRIORITY_INHERITANCE=n
+CONFIG_SEM_PREALLOCHOLDERS=0
+CONFIG_SEM_NNESTPRIO=0
+CONFIG_FDCLONE_DISABLE=n
+CONFIG_SCHED_WORKQUEUE=n
+CONFIG_SCHED_WORKPRIORITY=50
+CONFIG_SCHED_WORKPERIOD=(50*1000)
+CONFIG_SCHED_WORKSTACKSIZE=1024
+CONFIG_SIG_SIGWORK=4
+CONFIG_FDCLONE_STDIO=n
+CONFIG_SDCLONE_DISABLE=y
+
+#
+# The following can be used to disable categories of
+# APIs supported by the OS. If the compiler supports
+# weak functions, then it should not be necessary to
+# disable functions unless you want to restrict usage
+# of those APIs.
+#
+# There are certain dependency relationships in these
+# features.
+#
+# o mq_notify logic depends on signals to awaken tasks
+# waiting for queues to become full or empty.
+# o pthread_condtimedwait() depends on signals to wake
+# up waiting tasks.
+#
+CONFIG_DISABLE_CLOCK=n
+CONFIG_DISABLE_POSIX_TIMERS=y
+CONFIG_DISABLE_PTHREAD=n
+CONFIG_DISABLE_SIGNALS=n
+CONFIG_DISABLE_MQUEUE=y
+CONFIG_DISABLE_MOUNTPOINT=n
+CONFIG_DISABLE_ENVIRON=n
+CONFIG_DISABLE_POLL=y
+
+#
+# Misc libc settings
+#
+# CONFIG_NOPRINTF_FIELDWIDTH - sprintf-related logic is a
+# little smaller if we do not support fieldwidthes
+#
+CONFIG_NOPRINTF_FIELDWIDTH=n
+
+#
+# Allow for architecture optimized implementations
+#
+# The architecture can provide optimized versions of the
+# following to improve sysem performance
+#
+CONFIG_ARCH_MEMCPY=n
+CONFIG_ARCH_MEMCMP=n
+CONFIG_ARCH_MEMMOVE=n
+CONFIG_ARCH_MEMSET=n
+CONFIG_ARCH_STRCMP=n
+CONFIG_ARCH_STRCPY=n
+CONFIG_ARCH_STRNCPY=n
+CONFIG_ARCH_STRLEN=n
+CONFIG_ARCH_STRNLEN=n
+CONFIG_ARCH_BZERO=n
+
+#
+# General build options
+#
+# CONFIG_RRLOAD_BINARY - make the rrload binary format used with
+# BSPs from www.ridgerun.com using the tools/mkimage.sh script
+# 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_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=n
+CONFIG_HAVE_LIBM=y
+
+#
+# Sizes of configurable things (0 disables)
+#
+# CONFIG_MAX_TASKS - The maximum number of simultaneously
+# active tasks. This value must be a power of two.
+# CONFIG_MAX_TASK_ARGS - This controls the maximum number of
+# of parameters that a task may receive (i.e., maxmum value
+# of 'argc')
+# CONFIG_NPTHREAD_KEYS - The number of items of thread-
+# specific data that can be retained
+# CONFIG_NFILE_DESCRIPTORS - The maximum number of file
+# descriptors (one for each open)
+# CONFIG_NFILE_STREAMS - The maximum number of streams that
+# can be fopen'ed
+# CONFIG_NAME_MAX - The maximum size of a file name.
+# CONFIG_STDIO_BUFFER_SIZE - Size of the buffer to allocate
+# on fopen. (Only if CONFIG_NFILE_STREAMS > 0)
+# CONFIG_NUNGET_CHARS - Number of characters that can be
+# buffered by ungetc() (Only if CONFIG_NFILE_STREAMS > 0)
+# CONFIG_PREALLOC_MQ_MSGS - The number of pre-allocated message
+# structures. The system manages a pool of preallocated
+# message structures to minimize dynamic allocations
+# CONFIG_MQ_MAXMSGSIZE - Message structures are allocated with
+# a fixed payload size given by this settin (does not include
+# other message structure overhead.
+# CONFIG_MAX_WDOGPARMS - Maximum number of parameters that
+# can be passed to a watchdog handler
+# CONFIG_PREALLOC_WDOGS - The number of pre-allocated watchdog
+# structures. The system manages a pool of preallocated
+# watchdog structures to minimize dynamic allocations
+# CONFIG_PREALLOC_TIMERS - The number of pre-allocated POSIX
+# timer structures. The system manages a pool of preallocated
+# timer structures to minimize dynamic allocations. Set to
+# zero for all dynamic allocations.
+#
+CONFIG_MAX_TASKS=64
+CONFIG_MAX_TASK_ARGS=4
+CONFIG_NPTHREAD_KEYS=4
+CONFIG_NFILE_DESCRIPTORS=32
+CONFIG_NFILE_STREAMS=16
+CONFIG_NAME_MAX=32
+CONFIG_STDIO_BUFFER_SIZE=1024
+CONFIG_NUNGET_CHARS=2
+CONFIG_PREALLOC_MQ_MSGS=32
+CONFIG_MQ_MAXMSGSIZE=32
+CONFIG_MAX_WDOGPARMS=4
+CONFIG_PREALLOC_WDOGS=32
+CONFIG_PREALLOC_TIMERS=8
+
+#
+# Filesystem configuration
+#
+# 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=y
+
+#
+# TCP/IP and UDP support via uIP
+# CONFIG_NET - Enable or disable all network features
+# CONFIG_NET_IPv6 - Build in support for IPv6
+# CONFIG_NSOCKET_DESCRIPTORS - Maximum number of socket descriptors per task/thread.
+# CONFIG_NET_SOCKOPTS - Enable or disable support for socket options
+# CONFIG_NET_BUFSIZE - uIP buffer size
+# CONFIG_NET_TCP - TCP support on or off
+# CONFIG_NET_TCP_CONNS - Maximum number of TCP connections (all tasks)
+# CONFIG_NET_TCP_READAHEAD_BUFSIZE - Size of TCP read-ahead buffers
+# CONFIG_NET_NTCP_READAHEAD_BUFFERS - Number of TCP read-ahead buffers (may be zero)
+# CONFIG_NET_TCPBACKLOG - Incoming connections pend in a backlog until
+# accept() is called. The size of the backlog is selected when listen() is called.
+# CONFIG_NET_MAX_LISTENPORTS - Maximum number of listening TCP ports (all tasks)
+# CONFIG_NET_UDP - UDP support on or off
+# CONFIG_NET_UDP_CHECKSUMS - UDP checksums on or off
+# CONFIG_NET_UDP_CONNS - The maximum amount of concurrent UDP connections
+# CONFIG_NET_ICMP - ICMP ping response support on or off
+# CONFIG_NET_ICMP_PING - ICMP ping request support on or off
+# CONFIG_NET_PINGADDRCONF - Use "ping" packet for setting IP address
+# CONFIG_NET_STATISTICS - uIP statistics on or off
+# CONFIG_NET_RECEIVE_WINDOW - The size of the advertised receiver's window
+# CONFIG_NET_ARPTAB_SIZE - The size of the ARP table
+# CONFIG_NET_BROADCAST - Broadcast support
+# CONFIG_NET_FWCACHE_SIZE - number of packets to remember when looking for duplicates
+#
+CONFIG_NET=n
+CONFIG_NET_IPv6=n
+CONFIG_NSOCKET_DESCRIPTORS=0
+CONFIG_NET_SOCKOPTS=y
+CONFIG_NET_BUFSIZE=420
+CONFIG_NET_TCP=n
+CONFIG_NET_TCP_CONNS=40
+CONFIG_NET_MAX_LISTENPORTS=40
+CONFIG_NET_UDP=n
+CONFIG_NET_UDP_CHECKSUMS=y
+#CONFIG_NET_UDP_CONNS=10
+CONFIG_NET_ICMP=n
+CONFIG_NET_ICMP_PING=n
+#CONFIG_NET_PINGADDRCONF=0
+CONFIG_NET_STATISTICS=y
+#CONFIG_NET_RECEIVE_WINDOW=
+#CONFIG_NET_ARPTAB_SIZE=8
+CONFIG_NET_BROADCAST=n
+#CONFIG_NET_FWCACHE_SIZE=2
+
+#
+# UIP Network Utilities
+# CONFIG_NET_DHCP_LIGHT - Reduces size of DHCP
+# CONFIG_NET_RESOLV_ENTRIES - Number of resolver entries
+#
+CONFIG_NET_DHCP_LIGHT=n
+CONFIG_NET_RESOLV_ENTRIES=4
+
+#
+# Graphics related configuration settings
+#
+# CONFIG_NX
+# Enables overall support for graphics library and NX
+# CONFIG_NX_MULTIUSER
+# Configures NX in multi-user mode
+# CONFIG_NX_NPLANES
+# Some YUV color formats requires support for multiple planes,
+# one for each color component. Unless you have such special
+# hardware, this value should be undefined or set to 1
+# CONFIG_NX_DISABLE_1BPP, CONFIG_NX_DISABLE_2BPP,
+# CONFIG_NX_DISABLE_4BPP, CONFIG_NX_DISABLE_8BPP,
+# CONFIG_NX_DISABLE_16BPP, CONFIG_NX_DISABLE_24BPP, and
+# CONFIG_NX_DISABLE_32BPP
+# NX supports a variety of pixel depths. You can save some
+# memory by disabling support for unused color depths.
+# CONFIG_NX_PACKEDMSFIRST
+# If a pixel depth of less than 8-bits is used, then NX needs
+# to know if the pixels pack from the MS to LS or from LS to MS
+# CONFIG_NX_MOUSE
+# Build in support for mouse input
+# CONFIG_NX_KBD
+# Build in support of keypad/keyboard input
+# CONFIG_NXTK_BORDERWIDTH
+# Specifies with with of the border (in pixels) used with
+# framed windows. The default is 4.
+# CONFIG_NXTK_BORDERCOLOR1 and CONFIG_NXTK_BORDERCOLOR2
+# Specify the colors of the border used with framed windows.
+# CONFIG_NXTK_BORDERCOLOR2 is the shadow side color and so
+# is normally darker. The default is medium and dark grey,
+# respectively
+# CONFIG_NXTK_AUTORAISE
+# If set, a window will be raised to the top if the mouse position
+# is over a visible portion of the window. Default: A mouse
+# button must be clicked over a visible portion of the window.
+# CONFIG_NXFONTS_CHARBITS
+# The number of bits in the character set. Current options are
+# only 7 and 8. The default is 7.
+# CONFIG_NXFONT_SANS23X27
+# This option enables support for a tiny, 23x27 san serif font
+# (font ID FONTID_SANS23X27 == 1).
+# CONFIG_NXFONT_SANS22X29
+# This option enables support for a small, 22x29 san serif font
+# (font ID FONTID_SANS22X29 == 2).
+# CONFIG_NXFONT_SANS28X37
+# This option enables support for a medium, 28x37 san serif font
+# (font ID FONTID_SANS28X37 == 3).
+# CONFIG_NXFONT_SANS39X48
+# This option enables support for a large, 39x48 san serif font
+# (font ID FONTID_SANS39X48 == 4).
+# CONFIG_NXFONT_SANS22X29B
+# This option enables support for a small, 22x29 san serif bold font
+# (font ID FONTID_SANS22X29B == 5).
+# CONFIG_NXFONT_SANS28X37B
+# This option enables support for a medium, 28x37 san serif bold font
+# (font ID FONTID_SANS28X37B == 6).
+# CONFIG_NXFONT_SANS40X49B
+# This option enables support for a large, 40x49 san serif bold font
+# (font ID FONTID_SANS40X49B == 7).
+# CONFIG_NXFONT_SERIF22X29
+# This option enables support for a small, 22x29 font (with serifs)
+# (font ID FONTID_SERIF22X29 == 8).
+# CONFIG_NXFONT_SERIF29X37
+# This option enables support for a medium, 29x37 font (with serifs)
+# (font ID FONTID_SERIF29X37 == 9).
+# CONFIG_NXFONT_SERIF38X48
+# This option enables support for a large, 38x48 font (with serifs)
+# (font ID FONTID_SERIF38X48 == 10).
+# CONFIG_NXFONT_SERIF22X28B
+# This option enables support for a small, 27x38 bold font (with serifs)
+# (font ID FONTID_SERIF22X28B == 11).
+# CONFIG_NXFONT_SERIF27X38B
+# This option enables support for a medium, 27x38 bold font (with serifs)
+# (font ID FONTID_SERIF27X38B == 12).
+# CONFIG_NXFONT_SERIF38X49B
+# This option enables support for a large, 38x49 bold font (with serifs)
+# (font ID FONTID_SERIF38X49B == 13).
+#
+# NX Multi-user only options:
+#
+# CONFIG_NX_BLOCKING
+# Open the client message queues in blocking mode. In this case,
+# nx_eventhandler() will not return until a message is received and processed.
+# CONFIG_NX_MXSERVERMSGS and CONFIG_NX_MXCLIENTMSGS
+# Specifies the maximum number of messages that can fit in
+# the message queues. No additional resources are allocated, but
+# this can be set to prevent flooding of the client or server with
+# too many messages (CONFIG_PREALLOC_MQ_MSGS controls how many
+# messages are pre-allocated).
+#
+CONFIG_NX=y
+CONFIG_NX_MULTIUSER=n
+CONFIG_NX_NPLANES=1
+CONFIG_NX_DISABLE_1BPP=y
+CONFIG_NX_DISABLE_2BPP=y
+CONFIG_NX_DISABLE_4BPP=y
+CONFIG_NX_DISABLE_8BPP=y
+CONFIG_NX_DISABLE_16BPP=y
+CONFIG_NX_DISABLE_24BPP=y
+CONFIG_NX_DISABLE_32BPP=n
+CONFIG_NX_PACKEDMSFIRST=n
+CONFIG_NX_MOUSE=y
+CONFIG_NX_KBD=y
+#CONFIG_NXTK_BORDERWIDTH=4
+#CONFIG_NXTK_BORDERCOLOR1
+#CONFIG_NXTK_BORDERCOLOR2
+CONFIG_NXTK_AUTORAISE=n
+CONFIG_NXFONT_SANS22X29=n
+CONFIG_NXFONT_SANS23X27=y
+CONFIG_NXFONT_SANS28X37=n
+CONFIG_NXFONT_SANS22X29B=n
+CONFIG_NXFONT_SANS28X37B=y
+CONFIG_NXFONT_SANS40X49B=n
+CONFIG_NXFONT_SERIF22X29=n
+CONFIG_NXFONT_SERIF29X37=n
+CONFIG_NXFONT_SERIF38X48=n
+CONFIG_NXFONT_SERIF22X28B=n
+CONFIG_NXFONT_SERIF27X38B=n
+CONFIG_NXFONT_SERIF38X49B=n
+CONFIG_NXFONTS_CHARBITS=7
+CONFIG_NX_BLOCKING=y
+CONFIG_NX_MXSERVERMSGS=32
+CONFIG_NX_MXCLIENTMSGS=16
+
+#
+# Settings for examples/uip
+#
+CONFIG_EXAMPLE_UIP_IPADDR=(192<<24|168<<16|0<<8|128)
+CONFIG_EXAMPLE_UIP_DRIPADDR=(192<<24|168<<16|0<<8|1)
+CONFIG_EXAMPLE_UIP_NETMASK=(255<<24|255<<16|255<<8|0)
+CONFIG_EXAMPLE_UIP_DHCPC=n
+
+#
+# Settings for examples/nettest
+#
+CONFIG_EXAMPLE_NETTEST_SERVER=n
+CONFIG_EXAMPLE_NETTEST_PERFORMANCE=n
+CONFIG_EXAMPLE_NETTEST_NOMAC=n
+CONFIG_EXAMPLE_NETTEST_IPADDR=(192<<24|168<<16|0<<8|128)
+CONFIG_EXAMPLE_NETTEST_DRIPADDR=(192<<24|168<<16|0<<8|1)
+CONFIG_EXAMPLE_NETTEST_NETMASK=(255<<24|255<<16|255<<8|0)
+CONFIG_EXAMPLE_NETTEST_CLIENTIP=(192<<24|168<<16|0<<8|106)
+
+#
+# Settings for examples/ostest
+#
+CONFIG_EXAMPLES_OSTEST_LOOPS=100
+CONFIG_EXAMPLES_OSTEST_STACKSIZE=8192
+
+#
+# Settings for apps/nshlib
+#
+# CONFIG_NSH_BUILTIN_APPS - Support external registered,
+# "named" applications that can be executed from the NSH
+# command line (see apps/README.txt for more information).
+# CONFIG_NSH_FILEIOSIZE - Size of a static I/O buffer
+# CONFIG_NSH_STRERROR - Use strerror(errno)
+# CONFIG_NSH_LINELEN - Maximum length of one command line
+# CONFIG_NSH_STACKSIZE - Stack size to use for new threads.
+# CONFIG_NSH_NESTDEPTH - Max number of nested if-then[-else]-fi
+# CONFIG_NSH_DISABLESCRIPT - Disable scripting support
+# CONFIG_NSH_DISABLEBG - Disable background commands
+# CONFIG_NSH_ROMFSETC - Use startup script in /etc
+# CONFIG_NSH_CONSOLE - Use serial console front end
+# CONFIG_NSH_CONDEV - Select the serial device used to support
+# the NSH console. Default: stdin and stdout
+# CONFIG_NSH_TELNET - Use telnetd console front end
+#
+# If CONFIG_NSH_TELNET is selected:
+# CONFIG_NSH_IOBUFFER_SIZE -- Telnetd I/O buffer size
+# CONFIG_NSH_DHCPC - Obtain address using DHCP
+# CONFIG_NSH_IPADDR - Provides static IP address
+# CONFIG_NSH_DRIPADDR - Provides static router IP address
+# CONFIG_NSH_NETMASK - Provides static network mask
+# CONFIG_NSH_NOMAC - Use a bogus MAC address
+#
+# If CONFIG_NSH_ROMFSETC is selected:
+# CONFIG_NSH_ROMFSMOUNTPT - ROMFS mountpoint
+# CONFIG_NSH_INITSCRIPT - Relative path to init script
+# CONFIG_NSH_ROMFSDEVNO - ROMFS RAM device minor
+# CONFIG_NSH_ROMFSSECTSIZE - ROMF sector size
+# CONFIG_NSH_FATDEVNO - FAT FS RAM device minor
+# CONFIG_NSH_FATSECTSIZE - FAT FS sector size
+# CONFIG_NSH_FATNSECTORS - FAT FS number of sectors
+# CONFIG_NSH_FATMOUNTPT - FAT FS mountpoint
+#
+CONFIG_NSH_BUILTIN_APPS=y
+CONFIG_NSH_FILEIOSIZE=1024
+CONFIG_NSH_STRERROR=n
+CONFIG_NSH_LINELEN=80
+CONFIG_NSH_STACKSIZE=4096
+CONFIG_NSH_NESTDEPTH=3
+CONFIG_NSH_DISABLESCRIPT=n
+CONFIG_NSH_DISABLEBG=n
+CONFIG_NSH_ROMFSETC=y
+CONFIG_NSH_CONSOLE=y
+#CONFIG_NSH_CONDEV="/dev/ttyS1"
+CONFIG_NSH_TELNET=n
+CONFIG_NSH_IOBUFFER_SIZE=512
+CONFIG_NSH_DHCPC=n
+CONFIG_NSH_NOMAC=n
+CONFIG_NSH_IPADDR=(10<<24|0<<16|0<<8|2)
+CONFIG_NSH_DRIPADDR=(10<<24|0<<16|0<<8|1)
+CONFIG_NSH_NETMASK=(255<<24|255<<16|255<<8|0)
+CONFIG_NSH_ROMFSMOUNTPT="/etc"
+CONFIG_NSH_INITSCRIPT="init.d/rcS"
+CONFIG_NSH_ROMFSDEVNO=1
+CONFIG_NSH_ROMFSSECTSIZE=64
+CONFIG_NSH_FATDEVNO=2
+CONFIG_NSH_FATSECTSIZE=512
+CONFIG_NSH_FATNSECTORS=1024
+CONFIG_NSH_FATMOUNTPT=/tmp
+
+#
+# Settings for examples/nx
+#
+# CONFIG_EXAMPLES_NX_BUILTIN -- Build the NX example as a "built-in"
+# that can be executed from the NSH command line
+# CONFIG_EXAMPLES_NX_VPLANE -- The plane to select from the frame-
+# buffer driver for use in the test. Default: 0
+# CONFIG_EXAMPLES_NX_BGCOLOR -- The color of the background. Default depends on
+# CONFIG_EXAMPLES_NX_BPP.
+# CONFIG_EXAMPLES_NX_COLOR1 -- The color of window 1. Default depends on
+# CONFIG_EXAMPLES_NX_BPP.
+# CONFIG_EXAMPLES_NX_COLOR2 -- The color of window 2. Default depends on
+# CONFIG_EXAMPLES_NX_BPP.
+# CONFIG_EXAMPLES_NX_TBCOLOR -- The color of the toolbar. Default depends on
+# CONFIG_EXAMPLES_NX_BPP.
+# CONFIG_EXAMPLES_NX_FONTCOLOR -- The color of the toolbar. Default depends on
+# CONFIG_EXAMPLES_NX_BPP.
+# CONFIG_EXAMPLES_NX_BPP -- Pixels per pixel to use. Valid options
+# include 2, 4, 8, 16, 24, and 32. Default is 32.
+# CONFIG_EXAMPLES_NX_RAWWINDOWS -- Use raw windows; Default is to
+# use pretty, framed NXTK windows with toolbars.
+# CONFIG_EXAMPLES_NX_STACKSIZE -- The stacksize to use when creating
+# the NX server. Default 2048
+# CONFIG_EXAMPLES_NX_CLIENTPRIO -- The client priority. Default: 80
+# CONFIG_EXAMPLES_NX_SERVERPRIO -- The server priority. Default: 120
+# CONFIG_EXAMPLES_NX_NOTIFYSIGNO -- The signal number to use with
+# nx_eventnotify(). Default: 4
+#
+CONFIG_EXAMPLES_NX_BUILTIN=y
+CONFIG_EXAMPLES_NX_VPLANE=0
+#CONFIG_EXAMPLES_NX_BGCOLOR
+#CONFIG_EXAMPLES_NX_COLOR1
+#CONFIG_EXAMPLES_NX_COLOR2
+#CONFIG_EXAMPLES_NX_TBCOLOR
+#CONFIG_EXAMPLES_NX_FONTCOLOR
+CONFIG_EXAMPLES_NX_BPP=CONFIG_SIM_FBBPP
+CONFIG_EXAMPLES_NX_RAWWINDOWS=n
+CONFIG_EXAMPLES_NX_STACKSIZE=8192
+CONFIG_EXAMPLES_NX_CLIENTPRIO=80
+CONFIG_EXAMPLES_NX_SERVERPRIO=120
+CONFIG_EXAMPLES_NX_NOTIFYSIGNO=4
+
+#
+# Settings for examples/nxhello
+#
+# CONFIG_EXAMPLES_NXHELLO_BUILTIN -- Build the NXHELLO example as a "built-in"
+# that can be executed from the NSH command line
+# CONFIG_EXAMPLES_NXHELLO_VPLANE -- The plane to select from the frame-
+# buffer driver for use in the test. Default: 0
+# CONFIG_EXAMPLES_NXHELLO_BGCOLOR -- The color of the background. Default
+# depends on CONFIG_EXAMPLES_NXHELLO_BPP.
+# CONFIG_EXAMPLES_NXHELLO_FONTID - Selects the font (see font ID numbers in
+# include/nuttx/nx/nxfonts.h)
+# CONFIG_EXAMPLES_NXHELLO_FONTCOLOR -- The color of the fonts used in the
+# background window. Default depends on CONFIG_EXAMPLES_NXHELLO_BPP.
+# CONFIG_EXAMPLES_NXHELLO_BPP -- Pixels per pixel to use. Valid options
+# include 2, 4, 8, 16, 24, and 32. Default is 32.
+# CONFIG_EXAMPLES_NXHELLO_EXTERNINIT - The driver for the graphics device on
+# this platform requires some unusual initialization. This is the
+# for, for example, SPI LCD/OLED devices. If this configuration is
+# selected, then the platform code must provide an LCD initialization
+# function.
+#
+CONFIG_EXAMPLES_NXHELLO_BUILTIN=y
+CONFIG_EXAMPLES_NXHELLO_VPLANE=0
+#CONFIG_EXAMPLES_NXHELLO_BGCOLOR
+CONFIG_EXAMPLES_NXHELLO_FONTID=6
+#CONFIG_EXAMPLES_NXHELLO_FONTCOLOR
+CONFIG_EXAMPLES_NXHELLO_BPP=CONFIG_SIM_FBBPP
+CONFIG_EXAMPLES_NXHELLO_EXTERNINIT=n
+
+#
+# Settings for examples/nxlines
+#
+# CONFIG_EXAMPLES_NXLINES_BUILTIN -- Build the NXLINES example as a "built-in"
+# that can be executed from the NSH command line
+# CONFIG_EXAMPLES_NXLINES_VPLANE -- The plane to select from the frame-
+# buffer driver for use in the test. Default: 0
+# CONFIG_EXAMPLES_NXLINES_BGCOLOR -- The color of the background. Default
+# depends on CONFIG_EXAMPLES_NXLINES_BPP.
+# CONFIG_EXAMPLES_NXLINES_LINEWIDTH - Selects the width of the lines in
+# pixels (default: 16)
+# CONFIG_EXAMPLES_NXLINES_LINECOLOR -- The color of the central lines drawn
+# in the background window. Default depends on CONFIG_EXAMPLES_NXLINES_BPP
+# (there really is no meaningful default).
+# CONFIG_EXAMPLES_NXLINES_BORDERWIDTH -- The width of the circular border
+# drawn in the background window. (default: 4).
+# CONFIG_EXAMPLES_NXLINES_BORDERCOLOR -- The color of the circular border
+# drawn in the background window. Default depends on CONFIG_EXAMPLES_NXLINES_BPP
+# (there really is no meaningful default).
+# CONFIG_EXAMPLES_NXLINES_CIRCLECOLOR -- The color of the circular region
+# filled in the background window. Default depends on CONFIG_EXAMPLES_NXLINES_BPP
+# (there really is no meaningful default).
+# CONFIG_EXAMPLES_NXLINES_BPP -- Pixels per pixel to use. Valid options
+# include 2, 4, 8, 16, 24, and 32. Default is 16.
+# CONFIG_EXAMPLES_NXLINES_EXTERNINIT - The driver for the graphics device on
+# this platform requires some unusual initialization. This is the
+# for, for example, SPI LCD/OLED devices. If this configuration is
+# selected, then the platform code must provide an LCD initialization
+# function.
+#
+CONFIG_EXAMPLES_NXLINES_BUILTIN=n
+CONFIG_EXAMPLES_NXLINES_VPLANE=0
+#CONFIG_EXAMPLES_NXLINES_BGCOLOR
+CONFIG_EXAMPLES_NXLINES_LINEWIDTH=16
+#CONFIG_EXAMPLES_NXLINES_LINECOLOR
+CONFIG_EXAMPLES_NXLINES_BORDERWIDTH=4
+#CONFIG_EXAMPLES_NXLINES_BORDERCOLOR
+#CONFIG_EXAMPLES_NXLINES_CIRCLECOLOR
+CONFIG_EXAMPLES_NXLINES_BPP=CONFIG_SIM_FBBPP
+CONFIG_EXAMPLES_NXLINES_EXTERNINIT=n
+
+#
+# Settings for examples/touchscreen
+#
+# CONFIG_EXAMPLES_TOUCHSCREEN_BUILTIN - Build the touchscreen test as
+# an NSH built-in function. Default: Built as a standalone problem
+# CONFIG_EXAMPLES_TOUCHSCREEN_MINOR - The minor device number. Minor=N
+# correspnds to touchscreen device /dev/input0. Note this value must
+# with CONFIG_EXAMPLES_TOUCHSCREEN_DEVPATH. Default 0.
+# CONFIG_EXAMPLES_TOUCHSCREEN_DEVPATH - The path to the touchscreen
+# device. This must be consistent with CONFIG_EXAMPLES_TOUCHSCREEN_MINOR.
+# Default: "/dev/input0"
+# CONFIG_EXAMPLES_TOUCHSCREEN_NSAMPLES - If CONFIG_EXAMPLES_TOUCHSCREEN_BUILTIN
+# is defined, then the number of samples is provided on the command line
+# and this value is ignored. Otherwise, this number of samples is
+# collected and the program terminates. Default: Samples are collected
+# indefinitely.
+#
+CONFIG_EXAMPLES_TOUCHSCREEN_BUILTIN=y
+CONFIG_EXAMPLES_TOUCHSCREEN_MINOR=0
+CONFIG_EXAMPLES_TOUCHSCREEN_DEVPATH="/dev/input0"
+CONFIG_EXAMPLES_TOUCHSCREEN_NSAMPLES=25
+
+#
+# Settings for examples/mount
+#
+CONFIG_EXAMPLES_MOUNT_DEVNAME="/dev/ram0"
+#CONFIG_EXAMPLES_MOUNT_NSECTORS=2048
+#CONFIG_EXAMPLES_MOUNT_SECTORSIZE=512
+#CONFIG_EXAMPLES_MOUNT_RAMDEVNO=1
+
+#
+# Stack and heap information
+#
+# CONFIG_BOOT_RUNFROMFLASH - Some configurations support XIP
+# operation from FLASH but must copy initialized .data sections to RAM.
+# CONFIG_BOOT_COPYTORAM - Some configurations boot in FLASH
+# but copy themselves entirely into RAM for better performance.
+# CONFIG_CUSTOM_STACK - The up_ implementation will handle
+# all stack operations outside of the nuttx model.
+# CONFIG_STACK_POINTER - The initial stack pointer
+# CONFIG_IDLETHREAD_STACKSIZE - The size of the initial stack.
+# This is the thread that (1) performs the inital boot of the system up
+# to the point where user_start() is spawned, and (2) there after is the
+# IDLE thread that executes only when there is no other thread ready to
+# run.
+# CONFIG_USERMAIN_STACKSIZE - The size of the stack to allocate
+# for the main user thread that begins at the user_start() entry point.
+# CONFIG_PTHREAD_STACK_MIN - Minimum pthread stack size
+# CONFIG_PTHREAD_STACK_DEFAULT - Default pthread stack size
+# CONFIG_HEAP_BASE - The beginning of the heap
+# CONFIG_HEAP_SIZE - The size of the heap
+#
+CONFIG_BOOT_RUNFROMFLASH=n
+CONFIG_BOOT_COPYTORAM=n
+CONFIG_CUSTOM_STACK=n
+CONFIG_IDLETHREAD_STACKSIZE=4096
+CONFIG_USERMAIN_STACKSIZE=4096
+CONFIG_PTHREAD_STACK_MIN=256
+CONFIG_PTHREAD_STACK_DEFAULT=8192
+CONFIG_HEAP_BASE=
+CONFIG_HEAP_SIZE=
diff --git a/nuttx/configs/sim/nsh2/setenv.sh b/nuttx/configs/sim/nsh2/setenv.sh
new file mode 100755
index 000000000..78204f6eb
--- /dev/null
+++ b/nuttx/configs/sim/nsh2/setenv.sh
@@ -0,0 +1,45 @@
+#!/bin/bash
+# sim/nsh2/setenv.sh
+#
+# Copyright (C) 2011 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 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.
+#
+
+if [ "$(basename $0)" = "setenv.sh" ] ; then
+ echo "You must source this script, not run it!" 1>&2
+ exit 1
+fi
+
+if [ -z ${PATH_ORIG} ]; then export PATH_ORIG=${PATH}; fi
+
+#export NUTTX_BIN=
+#export PATH=${NUTTX_BIN}:/sbin:/usr/sbin:${PATH_ORIG}
+
+echo "PATH : ${PATH}"
diff --git a/nuttx/graphics/nxbe/nxbe_colormap.c b/nuttx/graphics/nxbe/nxbe_colormap.c
index f38c0d6ca..144317519 100644
--- a/nuttx/graphics/nxbe/nxbe_colormap.c
+++ b/nuttx/graphics/nxbe/nxbe_colormap.c
@@ -94,9 +94,12 @@ int nxbe_colormap(FAR NX_DRIVERTYPE *dev)
int ret;
int i, j, k;
- /* Allocate the color map tables */
+ /* Allocate the color map tables in one allocation:
+ *
+ * size = 3 colors x CONFIG_NX_COLORS each x 8-bits per color
+ */
- size = 3 * CONFIG_NX_NCOLORS * sizeof(uint16_t);
+ size = 3 * CONFIG_NX_NCOLORS * sizeof(uint8_t);
alloc = (uint8_t*)malloc(size);
if (alloc == NULL)
{
@@ -104,12 +107,14 @@ int nxbe_colormap(FAR NX_DRIVERTYPE *dev)
}
memset(alloc, 0xff, size);
+ /* Then get pointers to each color table */
+
red = alloc;
green = &alloc[CONFIG_NX_NCOLORS];
blue = &alloc[2*CONFIG_NX_NCOLORS];
/* Initialize the color map tables. 6*6*6 = 216, the rest
- * are (0xffff, 0xffff, 0xffff)
+ * are (0xff, 0xfff 0xff)
*/
ndx = 0;
@@ -131,6 +136,7 @@ int nxbe_colormap(FAR NX_DRIVERTYPE *dev)
/* Now configure the cmap structure */
+ cmap.first = 0;
cmap.len = CONFIG_NX_NCOLORS;
cmap.red = red;
cmap.green = green;