From 3d1f29217e386e2ec1edc0004b634a613ef0d94f Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 25 Jun 2013 09:13:30 -0600 Subject: [PATCH] Add support for a separate CCM memory allocator for members of the STM32 family that support CCM memory --- ChangeLog | 5 +- arch/arm/src/sam34/Kconfig | 2 +- arch/arm/src/stm32/Make.defs | 1 + arch/arm/src/stm32/stm32_ccm.c | 65 ++++++++++++ arch/arm/src/stm32/stm32_ccm.h | 136 +++++++++++++++++++++++++ configs/sam4l-xplained/README.txt | 15 ++- configs/sam4l-xplained/src/sam_spi.c | 6 ++ configs/stm32f4discovery/nsh/defconfig | 73 +++++++++++-- 8 files changed, 292 insertions(+), 11 deletions(-) create mode 100755 arch/arm/src/stm32/stm32_ccm.c create mode 100755 arch/arm/src/stm32/stm32_ccm.h diff --git a/ChangeLog b/ChangeLog index 185f9d8967..8346123778 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5046,4 +5046,7 @@ * drivers/lcd/ug-2864ambag01.c and ug-9664hswag01.c: Add/updated support for reverse portrait mode from lessons learned with the UG-2832HSWEG04. Untested changes! (2013-6-24). - + * arch/arm/src/stm32/stm32_ccm.c and .h: Add support for a seperate CCM + heap. This may be useful for segregating allocations for CCM (which + cannot be used for DMA) for other allocations (that may be used used + for DMA) (2013-6-25). diff --git a/arch/arm/src/sam34/Kconfig b/arch/arm/src/sam34/Kconfig index 79288bfcb0..8bb2e6279c 100644 --- a/arch/arm/src/sam34/Kconfig +++ b/arch/arm/src/sam34/Kconfig @@ -486,7 +486,7 @@ config SAM34_RCFAST8M bool "8MHz" config SAM34_RCFAST4M - bool "4MHz + bool "4MHz" endchoice endif diff --git a/arch/arm/src/stm32/Make.defs b/arch/arm/src/stm32/Make.defs index 15b87ca9e8..e4ff9e0fc6 100644 --- a/arch/arm/src/stm32/Make.defs +++ b/arch/arm/src/stm32/Make.defs @@ -93,6 +93,7 @@ CHIP_CSRCS = stm32_allocateheap.c stm32_start.c stm32_rcc.c stm32_lse.c CHIP_CSRCS += stm32_lsi.c stm32_gpio.c stm32_exti_gpio.c stm32_flash.c stm32_irq.c CHIP_CSRCS += stm32_timerisr.c stm32_dma.c stm32_lowputc.c stm32_serial.c CHIP_CSRCS += stm32_spi.c stm32_sdio.c stm32_tim.c stm32_i2c.c stm32_waste.c +CHIP_CSRCS += stm32_ccm.c ifeq ($(CONFIG_ARMV7M_CMNVECTOR),y) CHIP_ASRCS += stm32_vectors.S diff --git a/arch/arm/src/stm32/stm32_ccm.c b/arch/arm/src/stm32/stm32_ccm.c new file mode 100755 index 0000000000..fbb97c0e92 --- /dev/null +++ b/arch/arm/src/stm32/stm32_ccm.c @@ -0,0 +1,65 @@ +/**************************************************************************** + * arch/arm/src/common/stm32_ccm.c + * + * Copyright (C) 2013 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * Based on a prototype by Petteri Amimonen + * + * 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. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include "stm32_ccm.h" + +#ifdef HAVE_CCM_HEAP + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +/**************************************************************************** + * Private Types + ****************************************************************************/ + +/**************************************************************************** + * Public Data + ****************************************************************************/ + +struct mm_heap_s g_ccm_heap; + +/**************************************************************************** + * Public Function Prototypes + ****************************************************************************/ + +#endif /* HAVE_CCM_HEAP */ \ No newline at end of file diff --git a/arch/arm/src/stm32/stm32_ccm.h b/arch/arm/src/stm32/stm32_ccm.h new file mode 100755 index 0000000000..5960acd73d --- /dev/null +++ b/arch/arm/src/stm32/stm32_ccm.h @@ -0,0 +1,136 @@ +/**************************************************************************** + * arch/arm/src/common/stm32_ccm.h + * + * Copyright (C) 2013 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * Based on a prototype by Petteri Amimonen + * + * 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 __ARCH_ARM_SRC_STM32_STM32_CCM_H +#define __ARCH_ARM_SRC_STM32_STM32_CCM_H + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ +/* Configuration ************************************************************/ +/* Assume that we can support the CCM heap */ + +#define HAVE_CCM_HEAP 1 + +/* Only the STM32 F2, F3, and F4 have CCM memory */ + +#if defined(CONFIG_STM32_STM32F30XX) +# define CCM_START 0x10000000 +# define CCM_END 0x10002000 +#elif defined(CONFIG_STM32_STM32F20XX) || defined(CONFIG_STM32_STM32F40XX) +# define CCM_START 0x10000000 +# define CCM_END 0x10010000 +#else +# undef HAVE_CCM_HEAP +#endif + +/* In order to use the CCM heap, it had to have been excluded from the main + * heap and support for multiple heaps must have been enabled. + */ + +#if !defined(CONFIG_STM32_CCMEXCLUDE) || !defined(CONFIG_MM_MULTIHEAP) +# undef HAVE_CCM_HEAP +#endif + +/* Can we support the CCM heap? */ + +#ifdef HAVE_CCM_HEAP + +/* ccm_initialize must be called early in initialization in order to + * initialize the CCM heap. + */ + +#define ccm_initialize() \ + mm_initialize(&g_ccm_heap, (uintptr_t)CCM_START, CCM_END-CCM_START) + +/* The ccm_addregion interface could be used if, for example, you want to + * add some other memory region to the CCM heap. I don't really know why + * you might want to do that, but the functionality is essentially free. + */ + +#define ccm_addregion(b,s) mm_addregion(&g_ccm_heap, b, s); + +/* Then, once g_ccm_heap has been setup by ccm_initialize(), these memory + * allocators can be used just like the standard memory allocators. + */ + +#define ccm_malloc(s) mm_malloc(&g_ccm_heap, s) +#define ccm_zalloc(s) mm_zalloc(&g_ccm_heap, s) +#define ccm_calloc(n,s) mm_calloc(&g_ccm_heap, n,s) +#define ccm_free(p) mm_free(&g_ccm_heap, p) +#define ccm_realloc(p,s) mm_realloc(&g_ccm_heap, p, s) +#define ccm_memalign(a,s) mm_memalign(&g_ccm_heap, a, s) + +/**************************************************************************** + * Public Types + ****************************************************************************/ + +#ifndef __ASSEMBLY__ + +/**************************************************************************** + * Public Data + ****************************************************************************/ + +#ifdef __cplusplus +#define EXTERN extern "C" +extern "C" +{ +#else +#define EXTERN extern +#endif + +EXTERN struct mm_heap_s g_ccm_heap; + +/**************************************************************************** + * Public Function Prototypes + ****************************************************************************/ + +#undef EXTERN +#ifdef __cplusplus +} +#endif + +#endif /* __ASSEMBLY__ */ +#endif /* HAVE_CCM_HEAP */ +#endif /* __ARCH_ARM_SRC_STM32_STM32_CCM_H */ diff --git a/configs/sam4l-xplained/README.txt b/configs/sam4l-xplained/README.txt index 01ee7d9963..644c4b4016 100644 --- a/configs/sam4l-xplained/README.txt +++ b/configs/sam4l-xplained/README.txt @@ -833,12 +833,12 @@ Configuration sub-directories CONFIG_NXFONT_SANS17X23B=y : Pick a font (any that will fit) * This orientation will put the buttons "above" the LCD. The - reverse landscape configuration (CONFIG_LCD_RLANDSCAPE) should - "flip" the display so that the buttons are "below" the LCD. That - configuration, however, is untested. + reverse landscape configuration (CONFIG_LCD_RLANDSCAPE) will + "flip" the display so that the buttons are "below" the LCD. ** The hardware is write only, but the driver maintains a frame buffer to support read and read-write-modiry operations on the LCD. + Reading from the frame buffer is, however, untested. Then, in order to use the OLED, you will need to build some kind of graphics application or use one of the NuttX graphics examples. @@ -855,6 +855,15 @@ Configuration sub-directories The default "colors" will give you while text on a black background. You can override the faults it you want black text on a while background. + NOTE: One issue that I have seen with the NXHello example when + running as an NSH command is that it only works the first time. + So, after you run the 'nxhello' command one time, you will have to + reset the board before you run it again. + + This is clearly some issue with initializing, un-initializing, and + then re-initializing. If you want to fix this, patches are quite + welcome. + 4. If the LCD1 module is connected to the SAM4L Xplained Pro, then support for the SLCDt can be enabled by making the following changes to the configuration: diff --git a/configs/sam4l-xplained/src/sam_spi.c b/configs/sam4l-xplained/src/sam_spi.c index f317c45ebe..e1bc73b9c3 100644 --- a/configs/sam4l-xplained/src/sam_spi.c +++ b/configs/sam4l-xplained/src/sam_spi.c @@ -54,6 +54,12 @@ /************************************************************************************ * Definitions ************************************************************************************/ +/* Configuration ********************************************************************/ + +#if defined(CONFIG_SAM4L_XPLAINED_IOMODULE) && \ + defined(CONFIG_SAM4L_XPLAINED_OLED1MODULE) && defined(CONFIG_SPI_OWNBUS) +# error CONFIG_SPI_OWNBUS must not defined if using both I/O1 and OLED1 modules +#endif /* Enables debug output from this file (needs CONFIG_DEBUG too) */ diff --git a/configs/stm32f4discovery/nsh/defconfig b/configs/stm32f4discovery/nsh/defconfig index fa380f206d..af2d1bf397 100644 --- a/configs/stm32f4discovery/nsh/defconfig +++ b/configs/stm32f4discovery/nsh/defconfig @@ -69,6 +69,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_IMX is not set # CONFIG_ARCH_CHIP_KINETIS is not set +# CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set # CONFIG_ARCH_CHIP_LPC17XX is not set # CONFIG_ARCH_CHIP_LPC214X is not set @@ -76,7 +77,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_LPC31XX is not set # CONFIG_ARCH_CHIP_LPC43XX is not set # CONFIG_ARCH_CHIP_NUC1XX is not set -# CONFIG_ARCH_CHIP_SAM3U is not set +# CONFIG_ARCH_CHIP_SAM34 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STR71X is not set CONFIG_ARCH_CORTEXM4=y @@ -85,6 +86,7 @@ CONFIG_ARCH_CHIP="stm32" # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_CMNVECTOR is not set +CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_FPU is not set CONFIG_ARCH_HAVE_MPU=y # CONFIG_ARMV7M_MPU is not set @@ -98,12 +100,31 @@ CONFIG_ARCH_HAVE_MPU=y CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y # CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM is not set # CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL is not set +# CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIW is not set # CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE is not set # CONFIG_SERIAL_TERMIOS is not set # # STM32 Configuration Options # +# CONFIG_ARCH_CHIP_STM32L151C6 is not set +# CONFIG_ARCH_CHIP_STM32L151C8 is not set +# CONFIG_ARCH_CHIP_STM32L151CB is not set +# CONFIG_ARCH_CHIP_STM32L151R6 is not set +# CONFIG_ARCH_CHIP_STM32L151R8 is not set +# CONFIG_ARCH_CHIP_STM32L151RB is not set +# CONFIG_ARCH_CHIP_STM32L151V6 is not set +# CONFIG_ARCH_CHIP_STM32L151V8 is not set +# CONFIG_ARCH_CHIP_STM32L151VB is not set +# CONFIG_ARCH_CHIP_STM32L152C6 is not set +# CONFIG_ARCH_CHIP_STM32L152C8 is not set +# CONFIG_ARCH_CHIP_STM32L152CB is not set +# CONFIG_ARCH_CHIP_STM32L152R6 is not set +# CONFIG_ARCH_CHIP_STM32L152R8 is not set +# CONFIG_ARCH_CHIP_STM32L152RB is not set +# CONFIG_ARCH_CHIP_STM32L152V6 is not set +# CONFIG_ARCH_CHIP_STM32L152V8 is not set +# CONFIG_ARCH_CHIP_STM32L152VB is not set # CONFIG_ARCH_CHIP_STM32F100C8 is not set # CONFIG_ARCH_CHIP_STM32F100CB is not set # CONFIG_ARCH_CHIP_STM32F100R8 is not set @@ -116,6 +137,8 @@ CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y # CONFIG_ARCH_CHIP_STM32F100VC is not set # CONFIG_ARCH_CHIP_STM32F100VD is not set # CONFIG_ARCH_CHIP_STM32F100VE is not set +# CONFIG_ARCH_CHIP_STM32F103C4 is not set +# CONFIG_ARCH_CHIP_STM32F103C8 is not set # CONFIG_ARCH_CHIP_STM32F103RET6 is not set # CONFIG_ARCH_CHIP_STM32F103VCT6 is not set # CONFIG_ARCH_CHIP_STM32F103VET6 is not set @@ -144,6 +167,20 @@ CONFIG_ARCH_CHIP_STM32F407VG=y # CONFIG_ARCH_CHIP_STM32F407ZG is not set # CONFIG_ARCH_CHIP_STM32F407IE is not set # CONFIG_ARCH_CHIP_STM32F407IG is not set +# CONFIG_ARCH_CHIP_STM32F427V is not set +# CONFIG_ARCH_CHIP_STM32F427Z is not set +# CONFIG_ARCH_CHIP_STM32F427I is not set +# CONFIG_STM32_STM32L15XX is not set +# CONFIG_STM32_ENERGYLITE is not set +# CONFIG_STM32_STM32F10XX is not set +# CONFIG_STM32_VALUELINE is not set +# CONFIG_STM32_CONNECTIVITYLINE is not set +# CONFIG_STM32_PERFORMANCELINE is not set +# CONFIG_STM32_HIGHDENSITY is not set +# CONFIG_STM32_MEDIUMDENSITY is not set +# CONFIG_STM32_LOWDENSITY is not set +# CONFIG_STM32_STM32F20XX is not set +# CONFIG_STM32_STM32F30XX is not set CONFIG_STM32_STM32F40XX=y # CONFIG_STM32_DFU is not set @@ -170,7 +207,6 @@ CONFIG_STM32_STM32F40XX=y # CONFIG_STM32_I2C1 is not set # CONFIG_STM32_I2C2 is not set # CONFIG_STM32_I2C3 is not set -# CONFIG_STM32_IWDG is not set CONFIG_STM32_OTGFS=y # CONFIG_STM32_OTGHS is not set CONFIG_STM32_PWR=y @@ -200,6 +236,7 @@ CONFIG_STM32_USART2=y # CONFIG_STM32_UART4 is not set # CONFIG_STM32_UART5 is not set # CONFIG_STM32_USART6 is not set +# CONFIG_STM32_IWDG is not set # CONFIG_STM32_WWDG is not set CONFIG_STM32_SPI=y @@ -211,6 +248,7 @@ CONFIG_STM32_SPI=y # CONFIG_STM32_JTAG_FULL_ENABLE is not set # CONFIG_STM32_JTAG_NOJNTRST_ENABLE is not set CONFIG_STM32_JTAG_SW_ENABLE=y +# CONFIG_STM32_DISABLE_IDLE_SLEEP_DURING_DEBUG is not set # CONFIG_STM32_FORCEPOWER is not set # CONFIG_ARCH_BOARD_STM32_CUSTOM_CLOCKCONFIG is not set # CONFIG_STM32_CCMEXCLUDE is not set @@ -279,6 +317,7 @@ CONFIG_BOOT_RUNFROMFLASH=y # Board Selection # CONFIG_ARCH_BOARD_STM32F4_DISCOVERY=y +# CONFIG_ARCH_BOARD_MIKROE_STM32F4 is not set # CONFIG_ARCH_BOARD_CUSTOM is not set CONFIG_ARCH_BOARD="stm32f4discovery" @@ -379,6 +418,7 @@ CONFIG_SPI_EXCHANGE=y # CONFIG_RTC is not set # CONFIG_WATCHDOG is not set # CONFIG_ANALOG is not set +# CONFIG_AUDIO_DEVICES is not set # CONFIG_BCH is not set # CONFIG_INPUT is not set # CONFIG_LCD is not set @@ -388,7 +428,6 @@ CONFIG_SPI_EXCHANGE=y # CONFIG_PM is not set # CONFIG_POWER is not set # CONFIG_SENSORS is not set -# CONFIG_SERCOMM_CONSOLE is not set CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set @@ -407,6 +446,10 @@ CONFIG_USART2_BAUD=115200 CONFIG_USART2_BITS=8 CONFIG_USART2_PARITY=0 CONFIG_USART2_2STOP=0 +# CONFIG_USART2_IFLOWCONTROL is not set +# CONFIG_USART2_OFLOWCONTROL is not set +# CONFIG_SERIAL_IFLOWCONTROL is not set +# CONFIG_SERIAL_OFLOWCONTROL is not set # CONFIG_USBDEV is not set # CONFIG_USBHOST is not set # CONFIG_WIRELESS is not set @@ -437,6 +480,7 @@ CONFIG_USART2_2STOP=0 # CONFIG_FS_FAT is not set # CONFIG_FS_NXFFS is not set # CONFIG_FS_ROMFS is not set +# CONFIG_FS_SMARTFS is not set # CONFIG_FS_BINFS is not set # @@ -458,6 +502,11 @@ CONFIG_USART2_2STOP=0 CONFIG_MM_REGIONS=2 # CONFIG_GRAN is not set +# +# Audio Support +# +# CONFIG_AUDIO is not set + # # Binary Formats # @@ -483,6 +532,7 @@ CONFIG_LIB_HOMEDIR="/" # CONFIG_LIBM is not set # CONFIG_NOPRINTF_FIELDWIDTH is not set # CONFIG_LIBC_FLOATINGPOINT is not set +CONFIG_LIB_RAND_ORDER=1 # CONFIG_EOL_IS_CR is not set # CONFIG_EOL_IS_LF is not set # CONFIG_EOL_IS_BOTH_CRLF is not set @@ -502,6 +552,7 @@ CONFIG_LIB_SENDFILE_BUFSIZE=512 # # CONFIG_SCHED_WORKQUEUE is not set # CONFIG_LIB_KBDCODEC is not set +# CONFIG_LIB_SLCDCODEC is not set # # Basic CXX Support @@ -544,8 +595,9 @@ CONFIG_BUILTIN_PROXY_STACKSIZE=1024 # CONFIG_EXAMPLES_IGMP is not set # CONFIG_EXAMPLES_LCDRW is not set # CONFIG_EXAMPLES_MM is not set -# CONFIG_EXAMPLES_MOUNT is not set # CONFIG_EXAMPLES_MODBUS is not set +# CONFIG_EXAMPLES_MOUNT is not set +# CONFIG_EXAMPLES_NRF24L01TERM is not set CONFIG_EXAMPLES_NSH=y CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # CONFIG_EXAMPLES_NULL is not set @@ -566,6 +618,10 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # CONFIG_EXAMPLES_ROMFS is not set # CONFIG_EXAMPLES_SENDMAIL is not set # CONFIG_EXAMPLES_SERLOOP is not set +# CONFIG_EXAMPLES_SLCD is not set +# CONFIG_EXAMPLES_SMART_TEST is not set +# CONFIG_EXAMPLES_SMART is not set +# CONFIG_EXAMPLES_TCPECHO is not set # CONFIG_EXAMPLES_TELNETD is not set # CONFIG_EXAMPLES_THTTPD is not set # CONFIG_EXAMPLES_TIFF is not set @@ -662,9 +718,15 @@ CONFIG_NSH_BUILTIN_APPS=y # CONFIG_NSH_DISABLE_USLEEP is not set # CONFIG_NSH_DISABLE_WGET is not set # CONFIG_NSH_DISABLE_XD is not set + +# +# Configure Command Options +# +# CONFIG_NSH_CMDOPT_DF_H is not set CONFIG_NSH_CODECS_BUFSIZE=128 CONFIG_NSH_FILEIOSIZE=512 CONFIG_NSH_LINELEN=64 +CONFIG_NSH_MAXARGUMENTS=6 CONFIG_NSH_NESTDEPTH=3 # CONFIG_NSH_DISABLESCRIPT is not set # CONFIG_NSH_DISABLEBG is not set @@ -699,9 +761,8 @@ CONFIG_NSH_CONSOLE=y # CONFIG_SYSTEM_INSTALL is not set # -# RAM Test +# FLASH Erase-all Command # -# CONFIG_SYSTEM_RAMTEST is not set # # readline()