diff --git a/configs/Kconfig b/configs/Kconfig index d435396d0d..ab82cc6ffb 100644 --- a/configs/Kconfig +++ b/configs/Kconfig @@ -25,7 +25,7 @@ config ARCH_BOARD_ARDUINO_MEGA2560 depends on ARCH_CHIP_ATMEGA2560 ---help--- This option selects the Arduino Mega 2560 board featuring the Atmel - Atmega2560 MCU running at 16 MHz. + Atmega2560 MCU running at 16 MHz. config ARCH_BOARD_ARDUINO_DUE bool "Arduino Due" @@ -970,7 +970,7 @@ config ARCH_BOARD_STM32F746G_DISCO select ARCH_HAVE_BUTTONS select ARCH_HAVE_IRQBUTTONS ---help--- - STMicro STM32F746G-DISCO development board featuring the STM32F746NGH6 + STMicro STM32F746G-DISCO development board featuring the STM32F746NGH6 MCU. The STM32F746NGH6 is a 216MHz Cortex-M7 operation with 1024Kb Flash memory and 300Kb SRAM. @@ -981,7 +981,7 @@ config ARCH_BOARD_STM32L476VG_DISCO select ARCH_HAVE_BUTTONS select ARCH_HAVE_IRQBUTTONS ---help--- - STMicro STM32L476VG_DISCO development board featuring the STM32L476VG + STMicro STM32L476VG_DISCO development board featuring the STM32L476VG MCU. The STM32L476VG is a Cortex-M4 optimised for low-power operation at up to 80MHz operation with 1024Kb Flash memory and 96+32Kb SRAM. @@ -1428,7 +1428,7 @@ config ARCH_BOARD default "tm4c1294-launchpad" if ARCH_BOARD_TM4C1294_LAUNCHPAD default "cc3200-launchpad" if ARCH_BOARD_CC3200_LAUNCHPAD default "twr-k60n512" if ARCH_BOARD_TWR_K60N512 - default "u-blox-c027" if ARCH_BOARD_U_BLOX_C027 + default "u-blox-c027" if ARCH_BOARD_U_BLOX_C027 default "ubw32" if ARCH_BOARD_UBW32 default "us7032evb1" if ARCH_BOARD_US7032EVB1 default "viewtool-stm32f107" if ARCH_BOARD_VIEWTOOL_STM32F107 @@ -1918,6 +1918,13 @@ config BOARDCTL_OS_SYMTAB ---help--- Enables support for the BOARDIOC_OS_SYMTAB boardctl() command. +config BOARDCTL_USBDEVCTRL + bool "Enable USB device controls" + default n + depends on USBDEV + ---help--- + Enables support for the BOARDIOC_USBDEV_CONTROL boardctl() command. + config BOARDCTL_TSCTEST bool "Enable touchscreen test interfaces" default n diff --git a/configs/README.txt b/configs/README.txt index fb2139bdc7..35f038a7d2 100644 --- a/configs/README.txt +++ b/configs/README.txt @@ -648,6 +648,11 @@ configs/stm32f746g-disco MCU. The STM32F746NGH6 is a 216MHz Cortex-M7 operation with 1024Kb Flash memory and 300Kb SRAM. +configs/stm32l476vg-disco + STMicro STM32L476VG_DISCO development board featuring the STM32L476VG + MCU. The STM32L476VG is a Cortex-M4 optimised for low-power operation + at up to 80MHz operation with 1024Kb Flash memory and 96+32Kb SRAM. + configs/stm32ldiscovery STMicro STM32L-Discovery board based on the STMicro STM32L152RB MCU. diff --git a/configs/boardctl.c b/configs/boardctl.c index 924e78e98c..82c5289065 100644 --- a/configs/boardctl.c +++ b/configs/boardctl.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/boardctl.c * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -49,8 +49,167 @@ #include #include +#ifdef CONFIG_BOARDCTL_USBDEVCTRL +# include +# include +# include +# include +#endif + #ifdef CONFIG_LIB_BOARDCTL +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: boardctl_usbdevctrl + * + * Description: + * Handler the USB device control command. + * + * Input Parameters: + * ctrl - Described the USB device control command. + * + * Returned Value: + * On success zero (OK) is returned; -1 (ERROR) is returned on failure + * with the errno variable to to indicate the nature of the failure. + * + ****************************************************************************/ + +#ifdef CONFIG_BOARDCTL_USBDEVCTRL +static inline int boardctl_usbdevctrl(FAR struct boardioc_usbdev_ctrl_s *ctrl) +{ + int ret = OK; + + switch (ctrl->usbdev) + { +#ifdef CONFIG_CDCACM + case BOARDIOC_USBDEV_CDCACM: /* CDC/ACM, not in a composite */ + switch (ctrl->action) + { + case BOARDIOC_USBDEV_INITIALIZE: /* Initialize CDC/ACM device */ + break; /* There is no CDC/ACM initialization */ + + case BOARDIOC_USBDEV_CONNECT: /* Connect the CDC/ACM device */ +#ifndef CONFIG_CDCACM_COMPOSITE + { + DEBUGASSERT(ctrl->handle != NULL); + ret = cdcacm_initialize(ctrl->instance, ctrl->handle); + } +#endif + break; + + case BOARDIOC_USBDEV_DISCONNECT: /* Disconnect the CDC/ACM device */ + { + DEBUGASSERT(ctrl->handle != NULL && *ctrl->handle != NULL); + cdcacm_uninitialize(*ctrl->handle); + } + break; + + default: + ret = -EINVAL; + break; + } + break; +#endif + +#ifdef CONFIG_PL2303 + case BOARDIOC_USBDEV_PL2303: /* PL2303 serial, not in a composite */ + switch (ctrl->action) + { + case BOARDIOC_USBDEV_INITIALIZE: /* Initialize PL2303 serial device */ + break; /* There is no PL2303 serial initialization */ + + case BOARDIOC_USBDEV_CONNECT: /* Connect the CDC/ACM device */ + ret = usbdev_serialinitialize(ctrl->instance); + break; + + case BOARDIOC_USBDEV_DISCONNECT: /* There is no PL2303 serial disconnect */ + ret = -ENOSYS; + break; + + default: + ret = -EINVAL; + break; + } + break; +#endif + +#ifdef CONFIG_USBMSC + case BOARDIOC_USBDEV_MSC: /* Mass storage class */ + switch (ctrl->action) + { + case BOARDIOC_USBDEV_INITIALIZE: /* Initialize USB MSC device */ + { + ret = board_usbmsc_initialize(ctrl->instance); + } + break; + + case BOARDIOC_USBDEV_CONNECT: /* Connect the USB MSC device */ + { + DEBUGASSERT(ctrl->handle != NULL); +#warning Missing logic + ret = -ENOSYS; + } + break; + + case BOARDIOC_USBDEV_DISCONNECT: /* Disconnect the USB MSC device */ + { + DEBUGASSERT(ctrl->handle != NULL && *ctrl->handle != NULL); + usbmsc_uninitialize(*ctrl->handle); + } + break; + + default: + ret = -EINVAL; + break; + } + break; +#endif + +#ifdef CONFIG_USBDEV_COMPOSITE + case BOARDIOC_USBDEV_COMPOSITE: /* Composite device */ + switch (ctrl->action) + { + case BOARDIOC_USBDEV_INITIALIZE: /* Initialize Composite device */ + { + ret = board_composite_initialize(ctrl->instance); + } + break; + + case BOARDIOC_USBDEV_CONNECT: /* Connect the Composite device */ + { + DEBUGASSERT(ctrl->handle != NULL); + *ctrl->handle = composite_initialize(); + if (*ctrl->handle == NULL) + { + ret = -EIO; + } + } + break; + + case BOARDIOC_USBDEV_DISCONNECT: /* Disconnect the Composite device */ + { + DEBUGASSERT(ctrl->handle != NULL && *ctrl->handle != NULL); + composite_uninitialize(*ctrl->handle); + } + break; + + default: + ret = -EINVAL; + break; + } + break; +#endif + default: + ret = -EINVAL; + } + + return ret; +} +#endif + /**************************************************************************** * Public Functions ****************************************************************************/ @@ -193,6 +352,25 @@ int boardctl(unsigned int cmd, uintptr_t arg) break; #endif +#ifdef CONFIG_BOARDCTL_USBDEVCTRL + /* CMD: BOARDIOC_USBDEV_CONTROL + * DESCRIPTION: Manage USB device classes + * ARG: A pointer to an instance of struct boardioc_usbdev_ctrl_s + * CONFIGURATION: CONFIG_LIB_BOARDCTL && CONFIG_BOARDCTL_USBDEVCTRL + * DEPENDENCIES: Board logic must provide board__initialize() + */ + + case BOARDIOC_USBDEV_CONTROL: + { + FAR struct boardioc_usbdev_ctrl_s *ctrl = + (FAR struct boardioc_usbdev_ctrl_s *)arg; + + DEBUGASSERT(ctrl != NULL); + ret = boardctl_usbdevctrl(ctrl); + } + break; +#endif + #ifdef CONFIG_BOARDCTL_TSCTEST /* CMD: BOARDIOC_TSCTEST_SETUP * DESCRIPTION: Touchscreen controller test configuration diff --git a/configs/cloudctrl/src/stm32_usbmsc.c b/configs/cloudctrl/src/stm32_usbmsc.c index 797b6c486a..086432c233 100644 --- a/configs/cloudctrl/src/stm32_usbmsc.c +++ b/configs/cloudctrl/src/stm32_usbmsc.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/cloudctrl/src/stm32_usbmsc.c * - * Copyright (C) 2012, 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2012, 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * Darcy Gong * @@ -46,6 +46,8 @@ #include #include +#include + #include "stm32.h" /**************************************************************************** @@ -62,14 +64,14 @@ ****************************************************************************/ /**************************************************************************** - * Name: usbmsc_archinitialize + * Name: board_usbmsc_initialize * * Description: - * Perform architecture specific initialization + * Perform architecture specific initialization of the USB MSC device. * ****************************************************************************/ -int usbmsc_archinitialize(void) +int board_usbmsc_initialize(int port) { /* If system/usbmsc is built as an NSH command, then SD slot should * already have been initized in board_app_initialize() (see stm32_appinit.c). diff --git a/configs/ea3131/src/lpc31_usbmsc.c b/configs/ea3131/src/lpc31_usbmsc.c index b6dd6648fa..f55bdc8e10 100644 --- a/configs/ea3131/src/lpc31_usbmsc.c +++ b/configs/ea3131/src/lpc31_usbmsc.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/ea3131/src/lpc31_usbmsc.c * - * Copyright (C) 2010, 2013, 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2010, 2013, 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Configure and register the SAM3U MMC/SD SDIO block driver. @@ -46,6 +46,7 @@ #include #include +#include #include #include #include @@ -77,14 +78,14 @@ static struct fat_format_s g_fmt = FAT_FORMAT_INITIALIZER; ****************************************************************************/ /**************************************************************************** - * Name: usbmsc_archinitialize + * Name: board_usbmsc_initialize * * Description: - * Perform architecture specific initialization + * Perform architecture specific initialization of the USB MSC device. * ****************************************************************************/ -int usbmsc_archinitialize(void) +int board_usbmsc_initialize(int port) { uint8_t *pbuffer; int ret; diff --git a/configs/ea3131/usbserial/defconfig b/configs/ea3131/usbserial/defconfig index c1573e2830..d0ae36dd12 100644 --- a/configs/ea3131/usbserial/defconfig +++ b/configs/ea3131/usbserial/defconfig @@ -41,13 +41,15 @@ CONFIG_RAW_BINARY=y # CONFIG_ARCH_MATH_H is not set # CONFIG_ARCH_FLOAT_H is not set # CONFIG_ARCH_STDARG_H is not set +# CONFIG_ARCH_DEBUG_H is not set # # Debug Options # # CONFIG_DEBUG is not set -CONFIG_ARCH_HAVE_STACKCHECK=y # CONFIG_ARCH_HAVE_HEAPCHECK is not set +CONFIG_ARCH_HAVE_STACKCHECK=y +# CONFIG_STACK_COLORATION is not set # CONFIG_DEBUG_SYMBOLS is not set CONFIG_ARCH_HAVE_CUSTOMOPT=y # CONFIG_DEBUG_NOOPT is not set @@ -76,11 +78,14 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_C5471 is not set # CONFIG_ARCH_CHIP_CALYPSO is not set # CONFIG_ARCH_CHIP_DM320 is not set +# CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 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_TIVA is not set +# CONFIG_ARCH_CHIP_LPC11XX is not set # CONFIG_ARCH_CHIP_LPC17XX is not set # CONFIG_ARCH_CHIP_LPC214X is not set # CONFIG_ARCH_CHIP_LPC2378 is not set @@ -89,20 +94,37 @@ CONFIG_ARCH_CHIP_LPC31XX=y # CONFIG_ARCH_CHIP_NUC1XX is not set # CONFIG_ARCH_CHIP_SAMA5 is not set # CONFIG_ARCH_CHIP_SAMD is not set +# CONFIG_ARCH_CHIP_SAML is not set # CONFIG_ARCH_CHIP_SAM34 is not set +# CONFIG_ARCH_CHIP_SAMV7 is not set # CONFIG_ARCH_CHIP_STM32 is not set +# CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set +# CONFIG_ARCH_CHIP_TMS570 is not set +# CONFIG_ARCH_CHIP_MOXART is not set # CONFIG_ARCH_ARM7TDMI is not set CONFIG_ARCH_ARM926EJS=y # CONFIG_ARCH_ARM920T is not set # CONFIG_ARCH_CORTEXM0 is not set # CONFIG_ARCH_CORTEXM3 is not set # CONFIG_ARCH_CORTEXM4 is not set +# CONFIG_ARCH_CORTEXM7 is not set # CONFIG_ARCH_CORTEXA5 is not set # CONFIG_ARCH_CORTEXA8 is not set +# CONFIG_ARCH_CORTEXA9 is not set +# CONFIG_ARCH_CORTEXR4 is not set +# CONFIG_ARCH_CORTEXR4F is not set +# CONFIG_ARCH_CORTEXR5 is not set +# CONFIG_ARCH_CORTEX5F is not set +# CONFIG_ARCH_CORTEXR7 is not set +# CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="arm" CONFIG_ARCH_CHIP="lpc31xx" # CONFIG_ARCH_HAVE_FPU is not set +# CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set +# CONFIG_ARM_HAVE_MPU_UNIFIED is not set CONFIG_ARCH_HAVE_LOWVECTORS=y CONFIG_ARCH_LOWVECTORS=y CONFIG_ARCH_ROMPGTABLE=y @@ -172,11 +194,14 @@ CONFIG_LPC31_USBDEV_EP0_MAXSIZE=64 # CONFIG_ARCH_HAVE_COHERENT_DCACHE is not set # CONFIG_ARCH_HAVE_ADDRENV is not set # CONFIG_ARCH_NEED_ADDRENV_MAPPING is not set +# CONFIG_ARCH_HAVE_MULTICPU is not set CONFIG_ARCH_HAVE_VFORK=y CONFIG_ARCH_HAVE_MMU=y # CONFIG_ARCH_HAVE_MPU is not set # CONFIG_ARCH_NAND_HWECC is not set # CONFIG_ARCH_HAVE_EXTCLK is not set +# CONFIG_ARCH_HAVE_POWEROFF is not set +# CONFIG_ARCH_HAVE_RESET is not set CONFIG_ARCH_USE_MMU=y CONFIG_ARCH_STACKDUMP=y # CONFIG_ARCH_USBDUMP is not set @@ -234,6 +259,14 @@ CONFIG_ARCH_HAVE_BUTTONS=y # # Board-Specific Options # +CONFIG_LIB_BOARDCTL=y +# CONFIG_BOARDCTL_UNIQUEID is not set +CONFIG_BOARDCTL_USBDEVCTRL=y +# CONFIG_BOARDCTL_TSCTEST is not set +# CONFIG_BOARDCTL_ADCTEST is not set +# CONFIG_BOARDCTL_PWMTEST is not set +# CONFIG_BOARDCTL_GRAPHICS is not set +# CONFIG_BOARDCTL_IOCTL is not set # # RTOS Features @@ -263,8 +296,12 @@ CONFIG_PREALLOC_TIMERS=4 # # Tasks and Scheduling # +# CONFIG_INIT_NONE is not set +CONFIG_INIT_ENTRYPOINT=y +# CONFIG_INIT_FILEPATH is not set CONFIG_USER_ENTRYPOINT="usbserial_main" CONFIG_RR_INTERVAL=200 +# CONFIG_SCHED_SPORADIC is not set CONFIG_TASK_NAME_SIZE=0 CONFIG_MAX_TASKS=16 # CONFIG_SCHED_HAVE_PARENT is not set @@ -301,6 +338,7 @@ CONFIG_NAME_MAX=32 # CONFIG_SCHED_STARTHOOK is not set # CONFIG_SCHED_ATEXIT is not set # CONFIG_SCHED_ONEXIT is not set +# CONFIG_SIG_EVTHREAD is not set # # Signal Numbers @@ -316,6 +354,17 @@ CONFIG_SIG_SIGWORK=17 # CONFIG_PREALLOC_MQ_MSGS=4 CONFIG_MQ_MAXMSGSIZE=32 +# CONFIG_MODULE is not set + +# +# Work queue support +# +CONFIG_SCHED_WORKQUEUE=y +CONFIG_SCHED_HPWORK=y +CONFIG_SCHED_HPWORKPRIORITY=192 +CONFIG_SCHED_HPWORKPERIOD=50000 +CONFIG_SCHED_HPWORKSTACKSIZE=1024 +# CONFIG_SCHED_LPWORK is not set # # Stack and heap information @@ -342,22 +391,37 @@ CONFIG_DEV_NULL=y # CONFIG_RAMDISK is not set # CONFIG_CAN is not set # CONFIG_ARCH_HAVE_PWM_PULSECOUNT is not set +# CONFIG_ARCH_HAVE_PWM_MULTICHAN is not set # CONFIG_PWM is not set # CONFIG_ARCH_HAVE_I2CRESET is not set # CONFIG_I2C is not set # CONFIG_SPI is not set # CONFIG_I2S is not set + +# +# Timer Driver Support +# +# CONFIG_TIMER is not set # CONFIG_RTC is not set # CONFIG_WATCHDOG is not set -# CONFIG_TIMER is not set # CONFIG_ANALOG is not set # CONFIG_AUDIO_DEVICES is not set # CONFIG_VIDEO_DEVICES is not set # CONFIG_BCH is not set # CONFIG_INPUT is not set +# CONFIG_IOEXPANDER is not set # CONFIG_LCD is not set + +# +# LED Support +# +# CONFIG_USERLED is not set +# CONFIG_RGBLED is not set +# CONFIG_PCA9635PW is not set # CONFIG_MMCSD is not set +# CONFIG_MODEM is not set # CONFIG_MTD is not set +# CONFIG_EEPROM is not set # CONFIG_PIPES is not set # CONFIG_PM is not set # CONFIG_POWER is not set @@ -388,12 +452,18 @@ CONFIG_ARCH_HAVE_UART=y # CONFIG_ARCH_HAVE_USART6 is not set # CONFIG_ARCH_HAVE_USART7 is not set # CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_ARCH_HAVE_OTHER_UART is not set # # USART Configuration # CONFIG_MCU_SERIAL=y +# CONFIG_SERIAL_IFLOWCONTROL is not set +# CONFIG_SERIAL_OFLOWCONTROL is not set +# CONFIG_SERIAL_DMA is not set +# CONFIG_ARCH_HAVE_SERIAL_TERMIOS is not set CONFIG_UART_SERIAL_CONSOLE=y +# CONFIG_OTHER_SERIAL_CONSOLE is not set # CONFIG_NO_SERIAL_CONSOLE is not set # @@ -407,8 +477,7 @@ CONFIG_UART_PARITY=0 CONFIG_UART_2STOP=0 # CONFIG_UART_IFLOWCONTROL is not set # CONFIG_UART_OFLOWCONTROL is not set -# CONFIG_SERIAL_IFLOWCONTROL is not set -# CONFIG_SERIAL_OFLOWCONTROL is not set +# CONFIG_UART_DMA is not set CONFIG_USBDEV=y # @@ -423,7 +492,7 @@ CONFIG_USBDEV_MAXPOWER=100 # CONFIG_ARCH_USBDEV_STALLQUEUE is not set CONFIG_USBDEV_TRACE=y CONFIG_USBDEV_TRACE_NRECORDS=128 -# CONFIG_USBDEV_TRACE_STRINGS is not set +# CONFIG_USBDEV_TRACE_INITIALIDSET is not set # # USB Device Class Driver Options @@ -447,6 +516,7 @@ CONFIG_PL2303_PRODUCTSTR="USBdev Serial" # CONFIG_CDCACM is not set # CONFIG_USBMSC is not set # CONFIG_USBHOST is not set +CONFIG_USBHOST_HAVE_ASYNCH=y # CONFIG_DRIVERS_WIRELESS is not set # @@ -457,6 +527,7 @@ CONFIG_PL2303_PRODUCTSTR="USBdev Serial" # System Logging # # CONFIG_RAMLOG is not set +# CONFIG_SYSLOG_CONSOLE is not set # # Networking Support @@ -482,18 +553,22 @@ CONFIG_PL2303_PRODUCTSTR="USBdev Serial" # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set # CONFIG_FS_READABLE is not set # CONFIG_FS_WRITABLE is not set +# CONFIG_FS_NAMED_SEMAPHORES is not set +CONFIG_FS_MQUEUE_MPATH="/var/mqueue" # CONFIG_FS_RAMMAP is not set # CONFIG_FS_FAT is not set # CONFIG_FS_NXFFS is not set # CONFIG_FS_ROMFS is not set +# CONFIG_FS_TMPFS is not set # CONFIG_FS_SMARTFS is not set # CONFIG_FS_PROCFS is not set +# CONFIG_FS_UNIONFS is not set # # System Logging # - # CONFIG_SYSLOG is not set +# CONFIG_SYSLOG_TIMESTAMP is not set # # Graphics Support @@ -515,7 +590,11 @@ CONFIG_MM_REGIONS=1 # CONFIG_AUDIO is not set # -# Binary Formats +# Wireless Support +# + +# +# Binary Loader # # CONFIG_BINFMT_DISABLE is not set # CONFIG_NXFLAT is not set @@ -538,6 +617,7 @@ CONFIG_NUNGET_CHARS=2 # CONFIG_NOPRINTF_FIELDWIDTH is not set # CONFIG_LIBC_FLOATINGPOINT is not set CONFIG_LIBC_LONG_LONG=y +# CONFIG_LIBC_IOCTL_VARIADIC is not set CONFIG_LIB_RAND_ORDER=1 # CONFIG_EOL_IS_CR is not set # CONFIG_EOL_IS_LF is not set @@ -549,19 +629,17 @@ CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048 # CONFIG_LIBC_STRERROR is not set # CONFIG_LIBC_PERROR_STDOUT is not set CONFIG_ARCH_LOWPUTC=y +# CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set +# CONFIG_LIBC_NETDB is not set # # Non-standard Library Support # -CONFIG_SCHED_WORKQUEUE=y -CONFIG_SCHED_HPWORK=y -CONFIG_SCHED_HPWORKPRIORITY=192 -CONFIG_SCHED_HPWORKPERIOD=50000 -CONFIG_SCHED_HPWORKSTACKSIZE=1024 -# CONFIG_SCHED_LPWORK is not set # CONFIG_LIB_KBDCODEC is not set # CONFIG_LIB_SLCDCODEC is not set @@ -576,14 +654,13 @@ CONFIG_SCHED_HPWORKSTACKSIZE=1024 # # -# Built-In Applications +# CAN Utilities # # # Examples # -# CONFIG_EXAMPLES_BUTTONS is not set -# CONFIG_EXAMPLES_CAN is not set +# CONFIG_EXAMPLES_CHAT is not set # CONFIG_EXAMPLES_CONFIGDATA is not set # CONFIG_EXAMPLES_CPUHOG is not set # CONFIG_EXAMPLES_DHCPD is not set @@ -591,11 +668,11 @@ CONFIG_SCHED_HPWORKSTACKSIZE=1024 # CONFIG_EXAMPLES_FTPC is not set # CONFIG_EXAMPLES_FTPD is not set # CONFIG_EXAMPLES_HELLO is not set -# CONFIG_EXAMPLES_HELLOXX is not set # CONFIG_EXAMPLES_JSON is not set # CONFIG_EXAMPLES_HIDKBD is not set # CONFIG_EXAMPLES_KEYPADTEST is not set # CONFIG_EXAMPLES_IGMP is not set +# CONFIG_EXAMPLES_MEDIA is not set # CONFIG_EXAMPLES_MM is not set # CONFIG_EXAMPLES_MODBUS is not set # CONFIG_EXAMPLES_MOUNT is not set @@ -605,32 +682,32 @@ CONFIG_SCHED_HPWORKSTACKSIZE=1024 # CONFIG_EXAMPLES_NX is not set # CONFIG_EXAMPLES_NXTERM is not set # CONFIG_EXAMPLES_NXFFS is not set -# CONFIG_EXAMPLES_NXFLAT is not set # CONFIG_EXAMPLES_NXHELLO is not set # CONFIG_EXAMPLES_NXIMAGE is not set # CONFIG_EXAMPLES_NXLINES is not set # CONFIG_EXAMPLES_NXTEXT is not set # CONFIG_EXAMPLES_OSTEST is not set +# CONFIG_EXAMPLES_PCA9635 is not set # CONFIG_EXAMPLES_PIPE is not set # CONFIG_EXAMPLES_POLL is not set +# CONFIG_EXAMPLES_PPPD is not set # CONFIG_EXAMPLES_POSIXSPAWN is not set -# CONFIG_EXAMPLES_QENCODER is not set +# CONFIG_EXAMPLES_RGBLED is not set # CONFIG_EXAMPLES_RGMP is not set -# CONFIG_EXAMPLES_ROMFS is not set # CONFIG_EXAMPLES_SENDMAIL is not set # CONFIG_EXAMPLES_SERIALBLASTER is not set # CONFIG_EXAMPLES_SERIALRX is not set # CONFIG_EXAMPLES_SERLOOP is not set # CONFIG_EXAMPLES_SLCD is not set # CONFIG_EXAMPLES_SMART is not set +# CONFIG_EXAMPLES_SMP 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 # CONFIG_EXAMPLES_TOUCHSCREEN is not set -# CONFIG_EXAMPLES_UDP is not set # CONFIG_EXAMPLES_WEBSERVER is not set CONFIG_EXAMPLES_USBSERIAL=y +CONFIG_EXAMPLES_USBSERIAL_BUFSIZE=512 # CONFIG_EXAMPLES_USBSERIAL_TRACEINIT is not set # CONFIG_EXAMPLES_USBSERIAL_TRACECLASS is not set # CONFIG_EXAMPLES_USBSERIAL_TRACETRANSFERS is not set @@ -639,40 +716,42 @@ CONFIG_EXAMPLES_USBSERIAL=y # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set +# +# File System Utilities +# +# CONFIG_FSUTILS_INIFILE is not set + +# +# GPS Utilities +# +# CONFIG_GPSUTILS_MINMEA_LIB is not set + # # Graphics Support # # CONFIG_TIFF is not set +# CONFIG_GRAPHICS_TRAVELER is not set # # Interpreters # # CONFIG_INTERPRETERS_FICL is not set # CONFIG_INTERPRETERS_PCODE is not set - -# -# Network Utilities -# - -# -# Networking Utilities -# -# CONFIG_NETUTILS_CODECS is not set -# CONFIG_NETUTILS_DHCPD is not set -# CONFIG_NETUTILS_FTPC is not set -# CONFIG_NETUTILS_FTPD is not set -# CONFIG_NETUTILS_JSON is not set -# CONFIG_NETUTILS_SMTP is not set -# CONFIG_NETUTILS_TFTPC is not set -# CONFIG_NETUTILS_THTTPD is not set -# CONFIG_NETUTILS_NETLIB is not set -# CONFIG_NETUTILS_WEBCLIENT is not set +# CONFIG_INTERPRETERS_MICROPYTHON is not set # # FreeModBus # # CONFIG_MODBUS is not set +# +# Network Utilities +# +# CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_FTPC is not set +# CONFIG_NETUTILS_JSON is not set +# CONFIG_NETUTILS_SMTP is not set + # # NSH Library # @@ -690,113 +769,18 @@ CONFIG_EXAMPLES_USBSERIAL=y # # System Libraries and NSH Add-Ons # - -# -# Custom Free Memory Command -# # CONFIG_SYSTEM_FREE is not set - -# -# EMACS-like Command Line Editor -# # CONFIG_SYSTEM_CLE is not set - -# -# FLASH Program Installation -# +# CONFIG_SYSTEM_CUTERM is not set # CONFIG_SYSTEM_INSTALL is not set - -# -# FLASH Erase-all Command -# - -# -# Intel HEX to binary conversion -# # CONFIG_SYSTEM_HEX2BIN is not set - -# -# I2C tool -# - -# -# INI File Parser -# -# CONFIG_FSUTILS_INIFILE is not set - -# -# NxPlayer media player library / command Line -# -# CONFIG_SYSTEM_NXPLAYER is not set - -# -# RAM test -# +# CONFIG_SYSTEM_HEXED is not set # CONFIG_SYSTEM_RAMTEST is not set - -# -# readline() -# +# CONFIG_READLINE_HAVE_EXTMATCH is not set # CONFIG_SYSTEM_READLINE is not set - -# -# P-Code Support -# - -# -# PHY Tool -# - -# -# Power Off -# -# CONFIG_SYSTEM_POWEROFF is not set - -# -# RAMTRON -# - -# -# SD Card -# # CONFIG_SYSTEM_SDCARD is not set - -# -# Sudoku -# # CONFIG_SYSTEM_SUDOKU is not set - -# -# Sysinfo -# - -# -# VI Work-Alike Editor -# # CONFIG_SYSTEM_VI is not set - -# -# Stack Monitor -# - -# -# USB CDC/ACM Device Commands -# - -# -# USB Composite Device Commands -# - -# -# USB Mass Storage Device Commands -# - -# -# USB Monitor -# +# CONFIG_SYSTEM_UBLOXMODEM is not set # CONFIG_SYSTEM_USBMONITOR is not set - -# -# Zmodem Commands -# # CONFIG_SYSTEM_ZMODEM is not set diff --git a/configs/ea3152/src/lpc31_usbmsc.c b/configs/ea3152/src/lpc31_usbmsc.c index 81c058f1b6..e251d5cbc0 100644 --- a/configs/ea3152/src/lpc31_usbmsc.c +++ b/configs/ea3152/src/lpc31_usbmsc.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/ea3152/src/lpc31_usbmsc.c * - * Copyright (C) 2011, 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2011, 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Configure and register the SAM3U MMC/SD SDIO block driver. @@ -46,6 +46,7 @@ #include #include +#include #include #include #include @@ -77,14 +78,14 @@ static struct fat_format_s g_fmt = FAT_FORMAT_INITIALIZER; ****************************************************************************/ /**************************************************************************** - * Name: usbmsc_archinitialize + * Name: board_usbmsc_initialize * * Description: - * Perform architecture specific initialization + * Perform architecture specific initialization of the USB MSC device. * ****************************************************************************/ -int usbmsc_archinitialize(void) +int board_usbmsc_initialize(int port) { uint8_t *pbuffer; int ret; @@ -92,7 +93,7 @@ int usbmsc_archinitialize(void) pbuffer = (uint8_t *)kmm_malloc(BUFFER_SIZE); if (!pbuffer) { - lowsyslog("usbmsc_archinitialize: Failed to allocate ramdisk of size %d\n", + lowsyslog("board_usbmsc_initialize: Failed to allocate ramdisk of size %d\n", BUFFER_SIZE); return -ENOMEM; } diff --git a/configs/fire-stm32v2/nsh/defconfig b/configs/fire-stm32v2/nsh/defconfig index efdf4fd26e..7bd136dcdf 100644 --- a/configs/fire-stm32v2/nsh/defconfig +++ b/configs/fire-stm32v2/nsh/defconfig @@ -564,6 +564,7 @@ CONFIG_ARCH_BOARD_FIRE_STM32V2=y CONFIG_LIB_BOARDCTL=y # CONFIG_BOARDCTL_RESET is not set # CONFIG_BOARDCTL_UNIQUEID is not set +CONFIG_BOARDCTL_USBDEVCTRL=y # CONFIG_BOARDCTL_TSCTEST is not set # CONFIG_BOARDCTL_ADCTEST is not set # CONFIG_BOARDCTL_PWMTEST is not set diff --git a/configs/fire-stm32v2/src/stm32_composite.c b/configs/fire-stm32v2/src/stm32_composite.c index 4cc8d8e229..4a171aebe4 100644 --- a/configs/fire-stm32v2/src/stm32_composite.c +++ b/configs/fire-stm32v2/src/stm32_composite.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/fire-stm32v2/src/stm32_composite.c * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. + * Copyright (C) 2012, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Configure and register the STM32 SPI-based MMC/SD block driver. @@ -43,6 +43,8 @@ #include +#include + #include "fire-stm32v2.h" /**************************************************************************** @@ -60,14 +62,14 @@ ****************************************************************************/ /**************************************************************************** - * Name: composite_archinitialize + * Name: board_composite_initialize * * Description: - * Perform architecture specific initialization + * Perform architecture specific initialization of a composite USB device. * ****************************************************************************/ -int composite_archinitialize(void) +int board_composite_initialize(int port) { /* If system/composite is built as an NSH command, then SD slot should * already have been initialized in board_app_initialize() (see stm32_appinit.c). diff --git a/configs/fire-stm32v2/src/stm32_usbmsc.c b/configs/fire-stm32v2/src/stm32_usbmsc.c index 96157cdf7e..8944de6917 100644 --- a/configs/fire-stm32v2/src/stm32_usbmsc.c +++ b/configs/fire-stm32v2/src/stm32_usbmsc.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/fire-stm32v2/src/stm32_usbmsc.c * - * Copyright (C) 2012, 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2012, 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Configure and register the STM32 SPI-based MMC/SD block driver. @@ -45,6 +45,8 @@ #include #include +#include + #include "stm32.h" /**************************************************************************** @@ -61,14 +63,14 @@ ****************************************************************************/ /**************************************************************************** - * Name: usbmsc_archinitialize + * Name: board_usbmsc_initialize * * Description: - * Perform architecture specific initialization + * Perform architecture specific initialization of the USB MSC device. * ****************************************************************************/ -int usbmsc_archinitialize(void) +int board_usbmsc_initialize(int port) { /* If system/usbmsc is built as an NSH command, then SD slot should * already have been initialized in board_app_initialize() (see stm32_appinit.c). diff --git a/configs/hymini-stm32v/nsh2/defconfig b/configs/hymini-stm32v/nsh2/defconfig index 6e57e1be0d..34d9367ca2 100644 --- a/configs/hymini-stm32v/nsh2/defconfig +++ b/configs/hymini-stm32v/nsh2/defconfig @@ -544,6 +544,7 @@ CONFIG_NSH_MMCSDSPIPORTNO=0 CONFIG_LIB_BOARDCTL=y # CONFIG_BOARDCTL_RESET is not set # CONFIG_BOARDCTL_UNIQUEID is not set +CONFIG_BOARDCTL_USBDEVCTRL=y CONFIG_BOARDCTL_TSCTEST=y # CONFIG_BOARDCTL_ADCTEST is not set # CONFIG_BOARDCTL_PWMTEST is not set diff --git a/configs/hymini-stm32v/src/stm32_usbmsc.c b/configs/hymini-stm32v/src/stm32_usbmsc.c index 497c54c9db..9fc826b5b3 100644 --- a/configs/hymini-stm32v/src/stm32_usbmsc.c +++ b/configs/hymini-stm32v/src/stm32_usbmsc.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/hymini-stm32v/src/stm32_usbmsc.c * - * Copyright (C) 2009, 2011, 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2009, 2011, 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Configure and register the STM32 MMC/SD SDIO block driver. @@ -45,6 +45,7 @@ #include #include +#include #include #include @@ -79,14 +80,14 @@ ****************************************************************************/ /**************************************************************************** - * Name: usbmsc_archinitialize + * Name: board_usbmsc_initialize * * Description: - * Perform architecture specific initialization + * Perform architecture specific initialization of the USB MSC device. * ****************************************************************************/ -int usbmsc_archinitialize(void) +int board_usbmsc_initialize(int port) { /* If system/usbmsc is built as an NSH command, then SD slot should * already have been initialized in board_app_initialize() (see stm32_appinit.c). diff --git a/configs/hymini-stm32v/usbmsc/defconfig b/configs/hymini-stm32v/usbmsc/defconfig index 2f4cf5be50..8ce22825ce 100644 --- a/configs/hymini-stm32v/usbmsc/defconfig +++ b/configs/hymini-stm32v/usbmsc/defconfig @@ -523,7 +523,8 @@ CONFIG_ARCH_HAVE_IRQBUTTONS=y # # Board-Specific Options # -# CONFIG_LIB_BOARDCTL is not set +CONFIG_LIB_BOARDCTL=y +CONFIG_BOARDCTL_USBDEVCTRL=y # # RTOS Features diff --git a/configs/hymini-stm32v/usbnsh/defconfig b/configs/hymini-stm32v/usbnsh/defconfig index dbff2a600f..2e864dc1d6 100644 --- a/configs/hymini-stm32v/usbnsh/defconfig +++ b/configs/hymini-stm32v/usbnsh/defconfig @@ -514,7 +514,8 @@ CONFIG_NSH_MMCSDMINOR=0 # # Board-Specific Options # -# CONFIG_LIB_BOARDCTL is not set +CONFIG_LIB_BOARDCTL=y +CONFIG_BOARDCTL_USBDEVCTRL=y # # RTOS Features diff --git a/configs/hymini-stm32v/usbserial/defconfig b/configs/hymini-stm32v/usbserial/defconfig index 4de0ebe583..ab3afd4586 100644 --- a/configs/hymini-stm32v/usbserial/defconfig +++ b/configs/hymini-stm32v/usbserial/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -121,6 +123,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -514,7 +517,15 @@ CONFIG_ARCH_HAVE_IRQBUTTONS=y # # Board-Specific Options # -# CONFIG_LIB_BOARDCTL is not set +CONFIG_LIB_BOARDCTL=y +# CONFIG_BOARDCTL_RESET is not set +# CONFIG_BOARDCTL_UNIQUEID is not set +CONFIG_BOARDCTL_USBDEVCTRL=y +# CONFIG_BOARDCTL_TSCTEST is not set +# CONFIG_BOARDCTL_ADCTEST is not set +# CONFIG_BOARDCTL_PWMTEST is not set +# CONFIG_BOARDCTL_GRAPHICS is not set +# CONFIG_BOARDCTL_IOCTL is not set # # RTOS Features @@ -886,6 +897,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # diff --git a/configs/kwikstik-k40/src/k40_usbmsc.c b/configs/kwikstik-k40/src/k40_usbmsc.c index 358712d619..1272abedec 100644 --- a/configs/kwikstik-k40/src/k40_usbmsc.c +++ b/configs/kwikstik-k40/src/k40_usbmsc.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/kwikstik-k40/src/k40_usbmsc.c * - * Copyright (C) 2011 Gregory Nutt. All rights reserved. + * Copyright (C) 2011, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Configure and register the Kinetis MMC/SD block driver. @@ -45,6 +45,7 @@ #include #include +#include #include #include @@ -75,14 +76,14 @@ ****************************************************************************/ /**************************************************************************** - * Name: usbmsc_archinitialize + * Name: board_usbmsc_initialize * * Description: - * Perform architecture specific initialization + * Perform architecture specific initialization of the USB MSC device. * ****************************************************************************/ -int usbmsc_archinitialize(void) +int board_usbmsc_initialize(int port) { /* If system/usbmsc is built as an NSH command, then SD slot should * already have been initialized in board_app_initialize() (see k40_appinit.c). diff --git a/configs/lpc4337-ws/nsh/defconfig b/configs/lpc4337-ws/nsh/defconfig index b751bd536f..f444614d50 100644 --- a/configs/lpc4337-ws/nsh/defconfig +++ b/configs/lpc4337-ws/nsh/defconfig @@ -288,6 +288,7 @@ CONFIG_NSH_MMCSDMINOR=0 CONFIG_LIB_BOARDCTL=y # CONFIG_BOARDCTL_RESET is not set # CONFIG_BOARDCTL_UNIQUEID is not set +CONFIG_BOARDCTL_USBDEVCTRL=y # CONFIG_BOARDCTL_TSCTEST is not set CONFIG_BOARDCTL_ADCTEST=y # CONFIG_BOARDCTL_PWMTEST is not set diff --git a/configs/lpc4370-link2/nsh/defconfig b/configs/lpc4370-link2/nsh/defconfig index 036b7ab46a..93d0fec498 100644 --- a/configs/lpc4370-link2/nsh/defconfig +++ b/configs/lpc4370-link2/nsh/defconfig @@ -290,6 +290,7 @@ CONFIG_NSH_MMCSDMINOR=0 CONFIG_LIB_BOARDCTL=y # CONFIG_BOARDCTL_RESET is not set # CONFIG_BOARDCTL_UNIQUEID is not set +CONFIG_BOARDCTL_USBDEVCTRL=y # CONFIG_BOARDCTL_TSCTEST is not set # CONFIG_BOARDCTL_ADCTEST is not set # CONFIG_BOARDCTL_PWMTEST is not set diff --git a/configs/lpcxpresso-lpc1768/src/lpc17_usbmsc.c b/configs/lpcxpresso-lpc1768/src/lpc17_usbmsc.c index 34ebbd7675..84d8b65eb5 100644 --- a/configs/lpcxpresso-lpc1768/src/lpc17_usbmsc.c +++ b/configs/lpcxpresso-lpc1768/src/lpc17_usbmsc.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/lpcxpresso-lpc1768/src/lpc17_usbmsc.c * - * Copyright (C) 2011, 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2011, 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Configure and register the LPC17xx MMC/SD SPI block driver. @@ -45,8 +45,9 @@ #include #include -#include +#include #include +#include #include "lpc17_ssp.h" @@ -77,14 +78,14 @@ ****************************************************************************/ /**************************************************************************** - * Name: usbmsc_archinitialize + * Name: board_usbmsc_initialize * * Description: - * Perform architecture specific initialization + * Perform architecture specific initialization of the USB MSC device. * ****************************************************************************/ -int usbmsc_archinitialize(void) +int board_usbmsc_initialize(int port) { FAR struct spi_dev_s *spi; int ret; diff --git a/configs/lpcxpresso-lpc1768/usbmsc/defconfig b/configs/lpcxpresso-lpc1768/usbmsc/defconfig index b8dd3fc515..2e8ced6749 100644 --- a/configs/lpcxpresso-lpc1768/usbmsc/defconfig +++ b/configs/lpcxpresso-lpc1768/usbmsc/defconfig @@ -286,7 +286,8 @@ CONFIG_ARCH_LEDS=y # # Board-Specific Options # -# CONFIG_LIB_BOARDCTL is not set +CONFIG_LIB_BOARDCTL=y +CONFIG_BOARDCTL_USBDEVCTRL=y # # RTOS Features diff --git a/configs/maple/nx/defconfig b/configs/maple/nx/defconfig index 5adfe0c221..8827b0de93 100644 --- a/configs/maple/nx/defconfig +++ b/configs/maple/nx/defconfig @@ -537,7 +537,8 @@ CONFIG_NSH_MMCSDMINOR=0 # Board-Specific Options # CONFIG_MAPLE_MINI=y -# CONFIG_LIB_BOARDCTL is not set +CONFIG_LIB_BOARDCTL=y +CONFIG_BOARDCTL_USBDEVCTRL=y # # RTOS Features diff --git a/configs/maple/src/Makefile b/configs/maple/src/Makefile index 7983d8f884..99f214e5ea 100644 --- a/configs/maple/src/Makefile +++ b/configs/maple/src/Makefile @@ -56,4 +56,8 @@ ifeq ($(CONFIG_WATCHDOG),y) CSRCS += stm32_watchdog.c endif +ifeq ($(CONFIG_LIB_BOARDCTL),y) +CSRCS += stm32_appinit.c +endif + include $(TOPDIR)/configs/Board.mk diff --git a/configs/maple/src/maple.h b/configs/maple/src/maple.h index 775678f05a..ca724dfa05 100644 --- a/configs/maple/src/maple.h +++ b/configs/maple/src/maple.h @@ -43,8 +43,11 @@ #include #include + #include +#include + /************************************************************************************ * Pre-processor Definitions ************************************************************************************/ diff --git a/configs/maple/src/stm32_appinit.c b/configs/maple/src/stm32_appinit.c new file mode 100644 index 0000000000..3787833900 --- /dev/null +++ b/configs/maple/src/stm32_appinit.c @@ -0,0 +1,63 @@ +/**************************************************************************** + * configs/maple/src/stm32_appinit.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * 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 + +#include + +#include "maple.h" + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: board_app_initialize + * + * Description: + * Perform architecture specific initialization + * + ****************************************************************************/ + +int board_app_initialize(void) +{ + return OK; +} diff --git a/configs/maple/usbnsh/defconfig b/configs/maple/usbnsh/defconfig index 84b1444f35..c59c0eb05f 100644 --- a/configs/maple/usbnsh/defconfig +++ b/configs/maple/usbnsh/defconfig @@ -512,7 +512,8 @@ CONFIG_NSH_MMCSDMINOR=0 # Board-Specific Options # CONFIG_MAPLE_MINI=y -# CONFIG_LIB_BOARDCTL is not set +CONFIG_LIB_BOARDCTL=y +CONFIG_BOARDCTL_USBDEVCTRL=y # # RTOS Features diff --git a/configs/mcu123-lpc214x/composite/defconfig b/configs/mcu123-lpc214x/composite/defconfig index f066cd678f..9386d2f32b 100644 --- a/configs/mcu123-lpc214x/composite/defconfig +++ b/configs/mcu123-lpc214x/composite/defconfig @@ -225,7 +225,8 @@ CONFIG_ARCH_LEDS=y # # Board-Specific Options # -# CONFIG_LIB_BOARDCTL is not set +CONFIG_LIB_BOARDCTL=y +CONFIG_BOARDCTL_USBDEVCTRL=y # # RTOS Features diff --git a/configs/mcu123-lpc214x/src/lpc2148_composite.c b/configs/mcu123-lpc214x/src/lpc2148_composite.c index 0ed3604837..995fc4234f 100644 --- a/configs/mcu123-lpc214x/src/lpc2148_composite.c +++ b/configs/mcu123-lpc214x/src/lpc2148_composite.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/mcu123-lpc214x/src/lpc2148_composite.c * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. + * Copyright (C) 2012, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Configure and register the LPC214x MMC/SD SPI block driver. @@ -45,8 +45,9 @@ #include #include -#include +#include #include +#include #include #include "lpc214x_spi.h" @@ -71,14 +72,14 @@ ****************************************************************************/ /**************************************************************************** - * Name: composite_archinitialize + * Name: board_composite_initialize * * Description: - * Perform architecture specific initialization + * Perform architecture specific initialization of a composite USB device. * ****************************************************************************/ -int composite_archinitialize(void) +int board_composite_initialize(int port) { /* If system/composite is built as an NSH command, then SD slot should * already have been initialized in board_app_initialize() (see lpc2148_appinit.c). diff --git a/configs/mcu123-lpc214x/src/lpc2148_usbmsc.c b/configs/mcu123-lpc214x/src/lpc2148_usbmsc.c index 85353342aa..b8ca9786d4 100644 --- a/configs/mcu123-lpc214x/src/lpc2148_usbmsc.c +++ b/configs/mcu123-lpc214x/src/lpc2148_usbmsc.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/mcu123-lpc214x/src/lpc2148_usbmsc.c * - * Copyright (C) 2008-2010 Gregory Nutt. All rights reserved. + * Copyright (C) 2008-2010, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Configure and register the LPC214x MMC/SD SPI block driver. @@ -45,8 +45,9 @@ #include #include -#include +#include #include +#include #include "lpc214x_spi.h" @@ -79,14 +80,14 @@ ****************************************************************************/ /**************************************************************************** - * Name: usbmsc_archinitialize + * Name: board_usbmsc_initialize * * Description: - * Perform architecture specific initialization + * Perform architecture specific initialization of the USB MSC device. * ****************************************************************************/ -int usbmsc_archinitialize(void) +int board_usbmsc_initialize(int port) { FAR struct spi_dev_s *spi; int ret; diff --git a/configs/mcu123-lpc214x/usbmsc/defconfig b/configs/mcu123-lpc214x/usbmsc/defconfig index 2287c156f0..490c6e77e4 100644 --- a/configs/mcu123-lpc214x/usbmsc/defconfig +++ b/configs/mcu123-lpc214x/usbmsc/defconfig @@ -225,7 +225,8 @@ CONFIG_ARCH_LEDS=y # # Board-Specific Options # -# CONFIG_LIB_BOARDCTL is not set +CONFIG_LIB_BOARDCTL=y +CONFIG_BOARDCTL_USBDEVCTRL=y # # RTOS Features diff --git a/configs/mcu123-lpc214x/usbserial/defconfig b/configs/mcu123-lpc214x/usbserial/defconfig index 2d319742d8..86d94c047f 100644 --- a/configs/mcu123-lpc214x/usbserial/defconfig +++ b/configs/mcu123-lpc214x/usbserial/defconfig @@ -17,6 +17,7 @@ CONFIG_HOST_LINUX=y # Build Configuration # # CONFIG_APPS_DIR="../apps" +CONFIG_BUILD_FLAT=y # CONFIG_BUILD_2PASS is not set # @@ -26,21 +27,25 @@ CONFIG_HOST_LINUX=y # CONFIG_INTELHEX_BINARY is not set # CONFIG_MOTOROLA_SREC is not set CONFIG_RAW_BINARY=y +# CONFIG_UBOOT_UIMAGE is not set # # Customize Header Files # +# CONFIG_ARCH_STDINT_H is not set # CONFIG_ARCH_STDBOOL_H is not set # CONFIG_ARCH_MATH_H is not set # CONFIG_ARCH_FLOAT_H is not set # CONFIG_ARCH_STDARG_H is not set +# CONFIG_ARCH_DEBUG_H is not set # # Debug Options # # CONFIG_DEBUG is not set -CONFIG_ARCH_HAVE_STACKCHECK=y # CONFIG_ARCH_HAVE_HEAPCHECK is not set +CONFIG_ARCH_HAVE_STACKCHECK=y +# CONFIG_STACK_COLORATION is not set # CONFIG_DEBUG_SYMBOLS is not set CONFIG_ARCH_HAVE_CUSTOMOPT=y # CONFIG_DEBUG_NOOPT is not set @@ -69,10 +74,14 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_C5471 is not set # CONFIG_ARCH_CHIP_CALYPSO is not set # CONFIG_ARCH_CHIP_DM320 is not set +# CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 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_TIVA is not set +# CONFIG_ARCH_CHIP_LPC11XX is not set # CONFIG_ARCH_CHIP_LPC17XX is not set CONFIG_ARCH_CHIP_LPC214X=y # CONFIG_ARCH_CHIP_LPC2378 is not set @@ -81,21 +90,37 @@ CONFIG_ARCH_CHIP_LPC214X=y # CONFIG_ARCH_CHIP_NUC1XX is not set # CONFIG_ARCH_CHIP_SAMA5 is not set # CONFIG_ARCH_CHIP_SAMD is not set +# CONFIG_ARCH_CHIP_SAML is not set # CONFIG_ARCH_CHIP_SAM34 is not set +# CONFIG_ARCH_CHIP_SAMV7 is not set # CONFIG_ARCH_CHIP_STM32 is not set +# CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set +# CONFIG_ARCH_CHIP_TMS570 is not set +# CONFIG_ARCH_CHIP_MOXART is not set CONFIG_ARCH_ARM7TDMI=y # CONFIG_ARCH_ARM926EJS is not set # CONFIG_ARCH_ARM920T is not set # CONFIG_ARCH_CORTEXM0 is not set # CONFIG_ARCH_CORTEXM3 is not set # CONFIG_ARCH_CORTEXM4 is not set +# CONFIG_ARCH_CORTEXM7 is not set # CONFIG_ARCH_CORTEXA5 is not set # CONFIG_ARCH_CORTEXA8 is not set +# CONFIG_ARCH_CORTEXA9 is not set +# CONFIG_ARCH_CORTEXR4 is not set +# CONFIG_ARCH_CORTEXR4F is not set +# CONFIG_ARCH_CORTEXR5 is not set +# CONFIG_ARCH_CORTEX5F is not set +# CONFIG_ARCH_CORTEXR7 is not set +# CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="arm" CONFIG_ARCH_CHIP="lpc214x" # CONFIG_ARCH_HAVE_FPU is not set -# CONFIG_ARCH_HAVE_MPU is not set +# CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set +# CONFIG_ARM_HAVE_MPU_UNIFIED is not set CONFIG_ARCH_HAVE_LOWVECTORS=y # CONFIG_ARCH_LOWVECTORS is not set @@ -153,10 +178,18 @@ CONFIG_LPC214X_USBDEV=y # CONFIG_ARCH_VECNOTIRQ is not set # CONFIG_ARCH_DMA is not set # CONFIG_ARCH_HAVE_IRQPRIO is not set -# CONFIG_ARCH_ADDRENV is not set +# CONFIG_ARCH_L2CACHE is not set +# CONFIG_ARCH_HAVE_COHERENT_DCACHE is not set +# CONFIG_ARCH_HAVE_ADDRENV is not set +# CONFIG_ARCH_NEED_ADDRENV_MAPPING is not set +# CONFIG_ARCH_HAVE_MULTICPU is not set CONFIG_ARCH_HAVE_VFORK=y # CONFIG_ARCH_HAVE_MMU is not set +# CONFIG_ARCH_HAVE_MPU is not set # CONFIG_ARCH_NAND_HWECC is not set +# CONFIG_ARCH_HAVE_EXTCLK is not set +# CONFIG_ARCH_HAVE_POWEROFF is not set +# CONFIG_ARCH_HAVE_RESET is not set CONFIG_ARCH_STACKDUMP=y # CONFIG_ENDIAN_BIG is not set # CONFIG_ARCH_IDLE_CUSTOM is not set @@ -209,33 +242,18 @@ CONFIG_ARCH_LEDS=y # # Board-Specific Options # +CONFIG_LIB_BOARDCTL=y +# CONFIG_BOARDCTL_UNIQUEID is not set +CONFIG_BOARDCTL_USBDEVCTRL=y +# CONFIG_BOARDCTL_TSCTEST is not set +# CONFIG_BOARDCTL_ADCTEST is not set +# CONFIG_BOARDCTL_PWMTEST is not set +# CONFIG_BOARDCTL_GRAPHICS is not set +# CONFIG_BOARDCTL_IOCTL is not set # # RTOS Features # -# CONFIG_BOARD_INITIALIZE is not set -CONFIG_USEC_PER_TICK=10000 -# CONFIG_SYSTEM_TIME64 is not set -CONFIG_RR_INTERVAL=0 -# CONFIG_SCHED_CPULOAD is not set -# CONFIG_SCHED_INSTRUMENTATION is not set -CONFIG_TASK_NAME_SIZE=0 -# CONFIG_SCHED_HAVE_PARENT is not set -# CONFIG_JULIAN_TIME is not set -CONFIG_START_YEAR=2008 -CONFIG_START_MONTH=10 -CONFIG_START_DAY=1 -CONFIG_DEV_CONSOLE=y -# CONFIG_MUTEX_TYPES is not set -# CONFIG_PRIORITY_INHERITANCE is not set -# CONFIG_FDCLONE_DISABLE is not set -# CONFIG_FDCLONE_STDIO is not set -CONFIG_SDCLONE_DISABLE=y -# CONFIG_SCHED_WAITPID is not set -# CONFIG_SCHED_STARTHOOK is not set -# CONFIG_SCHED_ATEXIT is not set -# CONFIG_SCHED_ONEXIT is not set -CONFIG_USER_ENTRYPOINT="usbserial_main" CONFIG_DISABLE_OS_API=y # CONFIG_DISABLE_POSIX_TIMERS is not set # CONFIG_DISABLE_PTHREAD is not set @@ -243,6 +261,67 @@ CONFIG_DISABLE_OS_API=y # CONFIG_DISABLE_MQUEUE is not set # CONFIG_DISABLE_ENVIRON is not set +# +# Clocks and Timers +# +CONFIG_USEC_PER_TICK=10000 +# CONFIG_SYSTEM_TIME64 is not set +# CONFIG_CLOCK_MONOTONIC is not set +# CONFIG_JULIAN_TIME is not set +CONFIG_START_YEAR=2008 +CONFIG_START_MONTH=10 +CONFIG_START_DAY=1 +CONFIG_MAX_WDOGPARMS=2 +CONFIG_PREALLOC_WDOGS=8 +CONFIG_WDOG_INTRESERVE=1 +CONFIG_PREALLOC_TIMERS=4 + +# +# Tasks and Scheduling +# +# CONFIG_INIT_NONE is not set +CONFIG_INIT_ENTRYPOINT=y +# CONFIG_INIT_FILEPATH is not set +CONFIG_USER_ENTRYPOINT="usbserial_main" +CONFIG_RR_INTERVAL=0 +# CONFIG_SCHED_SPORADIC is not set +CONFIG_TASK_NAME_SIZE=0 +CONFIG_MAX_TASKS=16 +# CONFIG_SCHED_HAVE_PARENT is not set +# CONFIG_SCHED_WAITPID is not set + +# +# Pthread Options +# +# CONFIG_MUTEX_TYPES is not set +CONFIG_NPTHREAD_KEYS=4 + +# +# Performance Monitoring +# +# CONFIG_SCHED_CPULOAD is not set +# CONFIG_SCHED_INSTRUMENTATION is not set + +# +# Files and I/O +# +CONFIG_DEV_CONSOLE=y +# CONFIG_FDCLONE_DISABLE is not set +# CONFIG_FDCLONE_STDIO is not set +CONFIG_SDCLONE_DISABLE=y +CONFIG_NFILE_DESCRIPTORS=8 +CONFIG_NFILE_STREAMS=8 +CONFIG_NAME_MAX=32 +# CONFIG_PRIORITY_INHERITANCE is not set + +# +# RTOS hooks +# +# CONFIG_BOARD_INITIALIZE is not set +# CONFIG_SCHED_STARTHOOK is not set +# CONFIG_SCHED_ATEXIT is not set +# CONFIG_SCHED_ONEXIT is not set + # # Signal Numbers # @@ -252,19 +331,18 @@ CONFIG_SIG_SIGALARM=3 CONFIG_SIG_SIGCONDTIMEDOUT=16 # -# Sizes of configurable things (0 disables) +# POSIX Message Queue Options # -CONFIG_MAX_TASKS=16 -CONFIG_NPTHREAD_KEYS=4 -CONFIG_NFILE_DESCRIPTORS=8 -CONFIG_NFILE_STREAMS=8 -CONFIG_NAME_MAX=32 CONFIG_PREALLOC_MQ_MSGS=4 CONFIG_MQ_MAXMSGSIZE=32 -CONFIG_MAX_WDOGPARMS=2 -CONFIG_PREALLOC_WDOGS=8 -CONFIG_WDOG_INTRESERVE=1 -CONFIG_PREALLOC_TIMERS=4 +# CONFIG_MODULE is not set + +# +# Work queue support +# +# CONFIG_SCHED_WORKQUEUE is not set +# CONFIG_SCHED_HPWORK is not set +# CONFIG_SCHED_LPWORK is not set # # Stack and heap information @@ -273,6 +351,7 @@ CONFIG_IDLETHREAD_STACKSIZE=2048 CONFIG_USERMAIN_STACKSIZE=2048 CONFIG_PTHREAD_STACK_MIN=256 CONFIG_PTHREAD_STACK_DEFAULT=2048 +# CONFIG_LIB_SYSCALL is not set # # Device Drivers @@ -281,14 +360,26 @@ CONFIG_DISABLE_POLL=y CONFIG_DEV_NULL=y # CONFIG_DEV_ZERO is not set # CONFIG_DEV_LOOP is not set + +# +# Buffering +# +# CONFIG_DRVR_WRITEBUFFER is not set +# CONFIG_DRVR_READAHEAD is not set # CONFIG_RAMDISK is not set # CONFIG_CAN is not set # CONFIG_ARCH_HAVE_PWM_PULSECOUNT is not set +# CONFIG_ARCH_HAVE_PWM_MULTICHAN is not set # CONFIG_PWM is not set # CONFIG_ARCH_HAVE_I2CRESET is not set # CONFIG_I2C is not set # CONFIG_SPI is not set # CONFIG_I2S is not set + +# +# Timer Driver Support +# +# CONFIG_TIMER is not set # CONFIG_RTC is not set # CONFIG_WATCHDOG is not set # CONFIG_ANALOG is not set @@ -296,9 +387,19 @@ CONFIG_DEV_NULL=y # CONFIG_VIDEO_DEVICES is not set # CONFIG_BCH is not set # CONFIG_INPUT is not set +# CONFIG_IOEXPANDER is not set # CONFIG_LCD is not set + +# +# LED Support +# +# CONFIG_USERLED is not set +# CONFIG_RGBLED is not set +# CONFIG_PCA9635PW is not set # CONFIG_MMCSD is not set +# CONFIG_MODEM is not set # CONFIG_MTD is not set +# CONFIG_EEPROM is not set # CONFIG_PIPES is not set # CONFIG_PM is not set # CONFIG_POWER is not set @@ -308,16 +409,41 @@ CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set +# CONFIG_ARCH_HAVE_UART is not set CONFIG_ARCH_HAVE_UART0=y CONFIG_ARCH_HAVE_UART1=y +# CONFIG_ARCH_HAVE_UART2 is not set +# CONFIG_ARCH_HAVE_UART3 is not set +# CONFIG_ARCH_HAVE_UART4 is not set +# CONFIG_ARCH_HAVE_UART5 is not set +# CONFIG_ARCH_HAVE_UART6 is not set +# CONFIG_ARCH_HAVE_UART7 is not set +# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_ARCH_HAVE_SCI0 is not set +# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_ARCH_HAVE_USART0 is not set +# CONFIG_ARCH_HAVE_USART1 is not set +# CONFIG_ARCH_HAVE_USART2 is not set +# CONFIG_ARCH_HAVE_USART3 is not set +# CONFIG_ARCH_HAVE_USART4 is not set +# CONFIG_ARCH_HAVE_USART5 is not set +# CONFIG_ARCH_HAVE_USART6 is not set +# CONFIG_ARCH_HAVE_USART7 is not set +# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_ARCH_HAVE_OTHER_UART is not set # # USART Configuration # CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y +# CONFIG_SERIAL_IFLOWCONTROL is not set +# CONFIG_SERIAL_OFLOWCONTROL is not set +# CONFIG_SERIAL_DMA is not set +# CONFIG_ARCH_HAVE_SERIAL_TERMIOS is not set CONFIG_UART0_SERIAL_CONSOLE=y # CONFIG_UART1_SERIAL_CONSOLE is not set +# CONFIG_OTHER_SERIAL_CONSOLE is not set # CONFIG_NO_SERIAL_CONSOLE is not set # @@ -331,6 +457,7 @@ CONFIG_UART0_PARITY=0 CONFIG_UART0_2STOP=0 # CONFIG_UART0_IFLOWCONTROL is not set # CONFIG_UART0_OFLOWCONTROL is not set +# CONFIG_UART0_DMA is not set # # UART1 Configuration @@ -343,8 +470,7 @@ CONFIG_UART1_PARITY=0 CONFIG_UART1_2STOP=0 # CONFIG_UART1_IFLOWCONTROL is not set # CONFIG_UART1_OFLOWCONTROL is not set -# CONFIG_SERIAL_IFLOWCONTROL is not set -# CONFIG_SERIAL_OFLOWCONTROL is not set +# CONFIG_UART1_DMA is not set CONFIG_USBDEV=y # @@ -356,6 +482,7 @@ CONFIG_USBDEV_SELFPOWERED=y # CONFIG_USBDEV_BUSPOWERED is not set CONFIG_USBDEV_MAXPOWER=100 # CONFIG_USBDEV_DMA is not set +# CONFIG_ARCH_USBDEV_STALLQUEUE is not set # CONFIG_USBDEV_TRACE is not set # @@ -390,6 +517,7 @@ CONFIG_PL2303_PRODUCTSTR="USBdev Serial" # System Logging # # CONFIG_RAMLOG is not set +# CONFIG_SYSLOG_CONSOLE is not set # # Networking Support @@ -398,6 +526,11 @@ CONFIG_PL2303_PRODUCTSTR="USBdev Serial" # CONFIG_ARCH_HAVE_PHY is not set # CONFIG_NET is not set +# +# Crypto API +# +# CONFIG_CRYPTO is not set + # # File Systems # @@ -409,14 +542,17 @@ CONFIG_DISABLE_MOUNTPOINT=y # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set # CONFIG_FS_READABLE is not set # CONFIG_FS_WRITABLE is not set +# CONFIG_FS_NAMED_SEMAPHORES is not set +CONFIG_FS_MQUEUE_MPATH="/var/mqueue" # CONFIG_FS_RAMMAP is not set # CONFIG_FS_PROCFS is not set +# CONFIG_FS_UNIONFS is not set # # System Logging # - # CONFIG_SYSLOG is not set +# CONFIG_SYSLOG_TIMESTAMP is not set # # Graphics Support @@ -437,7 +573,11 @@ CONFIG_MM_REGIONS=1 # CONFIG_AUDIO is not set # -# Binary Formats +# Wireless Support +# + +# +# Binary Loader # # CONFIG_BINFMT_DISABLE is not set # CONFIG_BINFMT_EXEPATH is not set @@ -462,6 +602,7 @@ CONFIG_LIB_HOMEDIR="/" # CONFIG_NOPRINTF_FIELDWIDTH is not set # CONFIG_LIBC_FLOATINGPOINT is not set CONFIG_LIBC_LONG_LONG=y +# CONFIG_LIBC_IOCTL_VARIADIC is not set CONFIG_LIB_RAND_ORDER=1 # CONFIG_EOL_IS_CR is not set # CONFIG_EOL_IS_LF is not set @@ -473,14 +614,18 @@ CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048 # CONFIG_LIBC_STRERROR is not set # CONFIG_LIBC_PERROR_STDOUT is not set CONFIG_ARCH_LOWPUTC=y +# CONFIG_LIBC_LOCALTIME is not set +# CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set +# CONFIG_LIBC_NETDB is not set # # Non-standard Library Support # -# CONFIG_SCHED_WORKQUEUE is not set # CONFIG_LIB_KBDCODEC is not set # CONFIG_LIB_SLCDCODEC is not set @@ -495,26 +640,25 @@ CONFIG_LIB_SENDFILE_BUFSIZE=512 # # -# Built-In Applications +# CAN Utilities # # # Examples # -# CONFIG_EXAMPLES_BUTTONS is not set -# CONFIG_EXAMPLES_CAN is not set +# CONFIG_EXAMPLES_CHAT is not set # CONFIG_EXAMPLES_CONFIGDATA is not set +# CONFIG_EXAMPLES_CPUHOG is not set # CONFIG_EXAMPLES_DHCPD is not set # CONFIG_EXAMPLES_ELF is not set # CONFIG_EXAMPLES_FTPC is not set # CONFIG_EXAMPLES_FTPD is not set # CONFIG_EXAMPLES_HELLO is not set -# CONFIG_EXAMPLES_HELLOXX is not set # CONFIG_EXAMPLES_JSON is not set # CONFIG_EXAMPLES_HIDKBD is not set # CONFIG_EXAMPLES_KEYPADTEST is not set # CONFIG_EXAMPLES_IGMP is not set -# CONFIG_EXAMPLES_LCDRW is not set +# CONFIG_EXAMPLES_MEDIA is not set # CONFIG_EXAMPLES_MM is not set # CONFIG_EXAMPLES_MODBUS is not set # CONFIG_EXAMPLES_MOUNT is not set @@ -524,68 +668,71 @@ CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_EXAMPLES_NX is not set # CONFIG_EXAMPLES_NXTERM is not set # CONFIG_EXAMPLES_NXFFS is not set -# CONFIG_EXAMPLES_NXFLAT is not set # CONFIG_EXAMPLES_NXHELLO is not set # CONFIG_EXAMPLES_NXIMAGE is not set # CONFIG_EXAMPLES_NXLINES is not set # CONFIG_EXAMPLES_NXTEXT is not set # CONFIG_EXAMPLES_OSTEST is not set -# CONFIG_EXAMPLES_PASHELLO is not set +# CONFIG_EXAMPLES_PCA9635 is not set # CONFIG_EXAMPLES_PIPE is not set # CONFIG_EXAMPLES_POLL is not set +# CONFIG_EXAMPLES_PPPD is not set # CONFIG_EXAMPLES_POSIXSPAWN is not set -# CONFIG_EXAMPLES_QENCODER is not set +# CONFIG_EXAMPLES_RGBLED is not set # CONFIG_EXAMPLES_RGMP is not set -# CONFIG_EXAMPLES_ROMFS is not set # CONFIG_EXAMPLES_SENDMAIL is not set +# CONFIG_EXAMPLES_SERIALBLASTER is not set +# CONFIG_EXAMPLES_SERIALRX is not set # CONFIG_EXAMPLES_SERLOOP is not set # CONFIG_EXAMPLES_SLCD is not set # CONFIG_EXAMPLES_SMART is not set +# CONFIG_EXAMPLES_SMP 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 # CONFIG_EXAMPLES_TOUCHSCREEN is not set -# CONFIG_EXAMPLES_UDP is not set # CONFIG_EXAMPLES_WEBSERVER is not set CONFIG_EXAMPLES_USBSERIAL=y +CONFIG_EXAMPLES_USBSERIAL_BUFSIZE=512 # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set +# +# File System Utilities +# +# CONFIG_FSUTILS_INIFILE is not set + +# +# GPS Utilities +# +# CONFIG_GPSUTILS_MINMEA_LIB is not set + # # Graphics Support # # CONFIG_TIFF is not set +# CONFIG_GRAPHICS_TRAVELER is not set # # Interpreters # # CONFIG_INTERPRETERS_FICL is not set # CONFIG_INTERPRETERS_PCODE is not set - -# -# Network Utilities -# - -# -# Networking Utilities -# -# CONFIG_NETUTILS_CODECS is not set -# CONFIG_NETUTILS_DHCPD is not set -# CONFIG_NETUTILS_FTPC is not set -# CONFIG_NETUTILS_FTPD is not set -# CONFIG_NETUTILS_JSON is not set -# CONFIG_NETUTILS_SMTP is not set -# CONFIG_NETUTILS_TFTPC is not set -# CONFIG_NETUTILS_THTTPD is not set -# CONFIG_NETUTILS_NETLIB is not set -# CONFIG_NETUTILS_WEBCLIENT is not set +# CONFIG_INTERPRETERS_MICROPYTHON is not set # # FreeModBus # # CONFIG_MODBUS is not set +# +# Network Utilities +# +# CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_FTPC is not set +# CONFIG_NETUTILS_JSON is not set +# CONFIG_NETUTILS_SMTP is not set + # # NSH Library # @@ -603,94 +750,17 @@ CONFIG_EXAMPLES_USBSERIAL=y # # System Libraries and NSH Add-Ons # - -# -# USB CDC/ACM Device Commands -# - -# -# USB Composite Device Commands -# - -# -# Custom Free Memory Command -# # CONFIG_SYSTEM_FREE is not set - -# -# I2C tool -# - -# -# INI File Parser -# -# CONFIG_FSUTILS_INIFILE is not set - -# -# FLASH Program Installation -# -# CONFIG_SYSTEM_INSTALL is not set - -# -# FLASH Erase-all Command -# - -# -# NxPlayer media player library / command Line -# -# CONFIG_SYSTEM_NXPLAYER is not set - -# -# RAM test -# -# CONFIG_SYSTEM_RAMTEST is not set - -# -# readline() -# -# CONFIG_SYSTEM_READLINE is not set - -# -# Power Off -# -# CONFIG_SYSTEM_POWEROFF is not set - -# -# RAMTRON -# - -# -# SD Card -# -# CONFIG_SYSTEM_SDCARD is not set - -# -# Sysinfo -# - -# -# USB Monitor -# - -# -# EMACS-like Command Line Editor -# # CONFIG_SYSTEM_CLE is not set - -# -# VI Work-Alike Editor -# +# CONFIG_SYSTEM_CUTERM is not set +# CONFIG_SYSTEM_INSTALL is not set +# CONFIG_SYSTEM_HEX2BIN is not set +# CONFIG_SYSTEM_HEXED is not set +# CONFIG_SYSTEM_RAMTEST is not set +# CONFIG_READLINE_HAVE_EXTMATCH is not set +# CONFIG_SYSTEM_READLINE is not set +# CONFIG_SYSTEM_SDCARD is not set +# CONFIG_SYSTEM_SUDOKU is not set # CONFIG_SYSTEM_VI is not set - -# -# Stack Monitor -# - -# -# USB Mass Storage Device Commands -# - -# -# Zmodem Commands -# +# CONFIG_SYSTEM_UBLOXMODEM is not set # CONFIG_SYSTEM_ZMODEM is not set diff --git a/configs/mikroe-stm32f4/fulldemo/defconfig b/configs/mikroe-stm32f4/fulldemo/defconfig index 051ca3f0c9..ab58d1043c 100644 --- a/configs/mikroe-stm32f4/fulldemo/defconfig +++ b/configs/mikroe-stm32f4/fulldemo/defconfig @@ -567,6 +567,7 @@ CONFIG_MIKROE_FLASH_PART_LIST="8,248,768" CONFIG_LIB_BOARDCTL=y # CONFIG_BOARDCTL_RESET is not set # CONFIG_BOARDCTL_UNIQUEID is not set +CONFIG_BOARDCTL_USBDEVCTRL=y CONFIG_BOARDCTL_TSCTEST=y # CONFIG_BOARDCTL_ADCTEST is not set # CONFIG_BOARDCTL_PWMTEST is not set diff --git a/configs/mikroe-stm32f4/kostest/defconfig b/configs/mikroe-stm32f4/kostest/defconfig index c914ccd00b..3eb1827aa6 100644 --- a/configs/mikroe-stm32f4/kostest/defconfig +++ b/configs/mikroe-stm32f4/kostest/defconfig @@ -569,6 +569,7 @@ CONFIG_MIKROE_FLASH_PART_LIST="256,768" CONFIG_LIB_BOARDCTL=y # CONFIG_BOARDCTL_RESET is not set # CONFIG_BOARDCTL_UNIQUEID is not set +CONFIG_BOARDCTL_USBDEVCTRL=y # CONFIG_BOARDCTL_TSCTEST is not set # CONFIG_BOARDCTL_ADCTEST is not set # CONFIG_BOARDCTL_PWMTEST is not set diff --git a/configs/mikroe-stm32f4/usbnsh/defconfig b/configs/mikroe-stm32f4/usbnsh/defconfig index a59948e09e..6062479af3 100644 --- a/configs/mikroe-stm32f4/usbnsh/defconfig +++ b/configs/mikroe-stm32f4/usbnsh/defconfig @@ -553,6 +553,7 @@ CONFIG_MIKROE_RAMMTD_SIZE=32 CONFIG_LIB_BOARDCTL=y # CONFIG_BOARDCTL_RESET is not set # CONFIG_BOARDCTL_UNIQUEID is not set +CONFIG_BOARDCTL_USBDEVCTRL=y # CONFIG_BOARDCTL_TSCTEST is not set # CONFIG_BOARDCTL_ADCTEST is not set # CONFIG_BOARDCTL_PWMTEST is not set diff --git a/configs/nucleo-l476rg/src/Makefile b/configs/nucleo-l476rg/src/Makefile index 8ca2feb286..46faa0d565 100644 --- a/configs/nucleo-l476rg/src/Makefile +++ b/configs/nucleo-l476rg/src/Makefile @@ -38,10 +38,6 @@ ASRCS = CSRCS = stm32_boot.c stm32_spi.c -ifeq ($(CONFIG_HAVE_CXX),y) -CSRCS += stm32_cxxinitialize.c -endif - ifeq ($(CONFIG_ARCH_LEDS),y) CSRCS += stm32_autoleds.c else @@ -66,8 +62,8 @@ CSRCS += stm32_ajoystick.c endif endif -ifeq ($(CONFIG_NSH_LIBRARY),y) -CSRCS += stm32_nsh.c +ifeq ($(CONFIG_LIB_BOARDCTL),y) +CSRCS += stm32_appinit.c endif include $(TOPDIR)/configs/Board.mk diff --git a/configs/nucleo-l476rg/src/stm32_nsh.c b/configs/nucleo-l476rg/src/stm32_appinit.c similarity index 87% rename from configs/nucleo-l476rg/src/stm32_nsh.c rename to configs/nucleo-l476rg/src/stm32_appinit.c index ac8104f68a..b7f5f1e6b4 100644 --- a/configs/nucleo-l476rg/src/stm32_nsh.c +++ b/configs/nucleo-l476rg/src/stm32_appinit.c @@ -1,5 +1,5 @@ /**************************************************************************** - * configs/nucleo-l476rg/src/stm32_nsh.c + * configs/nucleo-l476rg/src/stm32_appinit.c * * Copyright (C) 2014 Gregory Nutt. All rights reserved. * Author: Gregory Nutt @@ -55,18 +55,6 @@ #include "nucleo-l476rg.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/configs/nucleo-l476rg/src/stm32_cxxinitialize.c b/configs/nucleo-l476rg/src/stm32_cxxinitialize.c deleted file mode 100644 index c93b1e057f..0000000000 --- a/configs/nucleo-l476rg/src/stm32_cxxinitialize.c +++ /dev/null @@ -1,154 +0,0 @@ -/************************************************************************************ - * configs/nucleo-l476rg/src/stm32_cxxinitialize.c - * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * 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 - -#include - -#include -#include "chip.h" - -#if defined(CONFIG_HAVE_CXX) && defined(CONFIG_HAVE_CXXINITIALIZE) - -/************************************************************************************ - * Pre-processor Definitions - ************************************************************************************/ -/* Debug ****************************************************************************/ -/* Non-standard debug that may be enabled just for testing the static constructors */ - -#ifndef CONFIG_DEBUG -# undef CONFIG_DEBUG_CXX -#endif - -#ifdef CONFIG_DEBUG_CXX -# define cxxdbg dbg -# define cxxlldbg lldbg -# ifdef CONFIG_DEBUG_VERBOSE -# define cxxvdbg vdbg -# define cxxllvdbg llvdbg -# else -# define cxxvdbg(x...) -# define cxxllvdbg(x...) -# endif -#else -# define cxxdbg(x...) -# define cxxlldbg(x...) -# define cxxvdbg(x...) -# define cxxllvdbg(x...) -#endif - -/************************************************************************************ - * Private Types - ************************************************************************************/ -/* This type defines one entry in initialization array */ - -typedef void (*initializer_t)(void); - -/************************************************************************************ - * External references - ************************************************************************************/ -/* _sinit and _einit are symbols exported by the linker script that mark the - * beginning and the end of the C++ initialization section. - */ - -extern initializer_t _sinit; -extern initializer_t _einit; - -/* _stext and _etext are symbols exported by the linker script that mark the - * beginning and the end of text. - */ - -extern uint32_t _stext; -extern uint32_t _etext; - -/************************************************************************************ - * Private Functions - ************************************************************************************/ - -/************************************************************************************ - * Public Functions - ************************************************************************************/ - -/**************************************************************************** - * Name: up_cxxinitialize - * - * Description: - * If C++ and C++ static constructors are supported, then this function - * must be provided by board-specific logic in order to perform - * initialization of the static C++ class instances. - * - * This function should then be called in the application-specific - * user_start logic in order to perform the C++ initialization. NOTE - * that no component of the core NuttX RTOS logic is involved; This - * function defintion only provides the 'contract' between application - * specific C++ code and platform-specific toolchain support - * - ****************************************************************************/ - -void up_cxxinitialize(void) -{ - initializer_t *initp; - - cxxdbg("_sinit: %p _einit: %p _stext: %p _etext: %p\n", - &_sinit, &_einit, &_stext, &_etext); - - /* Visit each entry in the initialzation table */ - - for (initp = &_sinit; initp != &_einit; initp++) - { - initializer_t initializer = *initp; - cxxdbg("initp: %p initializer: %p\n", initp, initializer); - - /* Make sure that the address is non-NULL and lies in the text region - * defined by the linker script. Some toolchains may put NULL values - * or counts in the initialization table - */ - - if ((void*)initializer > (void*)&_stext && (void*)initializer < (void*)&_etext) - { - cxxdbg("Calling %p\n", initializer); - initializer(); - } - } -} - -#endif /* CONFIG_HAVE_CXX && CONFIG_HAVE_CXXINITIALIZE */ - diff --git a/configs/nucleus2g/src/lpc17_usbmsc.c b/configs/nucleus2g/src/lpc17_usbmsc.c index 1dcb7c06df..5c1f1134a5 100644 --- a/configs/nucleus2g/src/lpc17_usbmsc.c +++ b/configs/nucleus2g/src/lpc17_usbmsc.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/nucleus2g/src/lpc17_usbmsc.c * - * Copyright (C) 2010, 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2010, 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Configure and register the LPC17xx MMC/SD SPI block driver. @@ -45,8 +45,9 @@ #include #include -#include +#include #include +#include #include "lpc17_ssp.h" @@ -77,14 +78,14 @@ ****************************************************************************/ /**************************************************************************** - * Name: usbmsc_archinitialize + * Name: board_usbmsc_initialize * * Description: - * Perform architecture specific initialization + * Perform architecture specific initialization of the USB MSC device. * ****************************************************************************/ -int usbmsc_archinitialize(void) +int board_usbmsc_initialize(int port) { FAR struct spi_dev_s *spi; int ret; diff --git a/configs/nucleus2g/usbmsc/defconfig b/configs/nucleus2g/usbmsc/defconfig index 700033d054..81ef3f8e27 100644 --- a/configs/nucleus2g/usbmsc/defconfig +++ b/configs/nucleus2g/usbmsc/defconfig @@ -275,7 +275,8 @@ CONFIG_ARCH_LEDS=y # # Board-Specific Options # -# CONFIG_LIB_BOARDCTL is not set +CONFIG_LIB_BOARDCTL=y +CONFIG_BOARDCTL_USBDEVCTRL=y # # RTOS Features diff --git a/configs/nucleus2g/usbserial/defconfig b/configs/nucleus2g/usbserial/defconfig index b474623b22..9aa49138ef 100644 --- a/configs/nucleus2g/usbserial/defconfig +++ b/configs/nucleus2g/usbserial/defconfig @@ -7,6 +7,7 @@ # Build Setup # # CONFIG_EXPERIMENTAL is not set +# CONFIG_DEFAULT_SMALL is not set CONFIG_HOST_LINUX=y # CONFIG_HOST_OSX is not set # CONFIG_HOST_WINDOWS is not set @@ -16,6 +17,7 @@ CONFIG_HOST_LINUX=y # Build Configuration # # CONFIG_APPS_DIR="../apps" +CONFIG_BUILD_FLAT=y # CONFIG_BUILD_2PASS is not set # @@ -25,20 +27,30 @@ CONFIG_HOST_LINUX=y CONFIG_INTELHEX_BINARY=y # CONFIG_MOTOROLA_SREC is not set # CONFIG_RAW_BINARY is not set +# CONFIG_UBOOT_UIMAGE is not set # # Customize Header Files # +# CONFIG_ARCH_STDINT_H is not set # CONFIG_ARCH_STDBOOL_H is not set # CONFIG_ARCH_MATH_H is not set # CONFIG_ARCH_FLOAT_H is not set # CONFIG_ARCH_STDARG_H is not set +# CONFIG_ARCH_DEBUG_H is not set # # Debug Options # # CONFIG_DEBUG is not set +# CONFIG_ARCH_HAVE_HEAPCHECK is not set +CONFIG_ARCH_HAVE_STACKCHECK=y +# CONFIG_STACK_COLORATION is not set # CONFIG_DEBUG_SYMBOLS is not set +CONFIG_ARCH_HAVE_CUSTOMOPT=y +# CONFIG_DEBUG_NOOPT is not set +# CONFIG_DEBUG_CUSTOMOPT is not set +CONFIG_DEBUG_FULLOPT=y # # System Type @@ -58,39 +70,79 @@ CONFIG_ARCH="arm" # # ARM Options # +# CONFIG_ARCH_CHIP_A1X is not set # CONFIG_ARCH_CHIP_C5471 is not set # CONFIG_ARCH_CHIP_CALYPSO is not set # CONFIG_ARCH_CHIP_DM320 is not set +# CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 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_TIVA is not set +# CONFIG_ARCH_CHIP_LPC11XX is not set CONFIG_ARCH_CHIP_LPC17XX=y # CONFIG_ARCH_CHIP_LPC214X is not set # CONFIG_ARCH_CHIP_LPC2378 is not set # 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_SAMA5 is not set +# CONFIG_ARCH_CHIP_SAMD is not set +# CONFIG_ARCH_CHIP_SAML is not set +# CONFIG_ARCH_CHIP_SAM34 is not set +# CONFIG_ARCH_CHIP_SAMV7 is not set # CONFIG_ARCH_CHIP_STM32 is not set +# CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set +# CONFIG_ARCH_CHIP_TMS570 is not set +# CONFIG_ARCH_CHIP_MOXART is not set +# CONFIG_ARCH_ARM7TDMI is not set +# CONFIG_ARCH_ARM926EJS is not set +# CONFIG_ARCH_ARM920T is not set +# CONFIG_ARCH_CORTEXM0 is not set CONFIG_ARCH_CORTEXM3=y +# CONFIG_ARCH_CORTEXM4 is not set +# CONFIG_ARCH_CORTEXM7 is not set +# CONFIG_ARCH_CORTEXA5 is not set +# CONFIG_ARCH_CORTEXA8 is not set +# CONFIG_ARCH_CORTEXA9 is not set +# CONFIG_ARCH_CORTEXR4 is not set +# CONFIG_ARCH_CORTEXR4F is not set +# CONFIG_ARCH_CORTEXR5 is not set +# CONFIG_ARCH_CORTEX5F is not set +# CONFIG_ARCH_CORTEXR7 is not set +# CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="lpc17xx" # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_CMNVECTOR is not set -CONFIG_ARCH_HAVE_MPU=y +# CONFIG_ARMV7M_LAZYFPU is not set +# CONFIG_ARCH_HAVE_FPU is not set +# CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set +CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set # # ARMV7M Configuration Options # +# CONFIG_ARMV7M_HAVE_ICACHE is not set +# CONFIG_ARMV7M_HAVE_DCACHE is not set +# CONFIG_ARMV7M_HAVE_ITCM is not set +# CONFIG_ARMV7M_HAVE_DTCM is not set CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set # CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL is not set CONFIG_ARMV7M_OABI_TOOLCHAIN=y +# CONFIG_ARMV7M_HAVE_STACKCHECK is not set +# CONFIG_ARMV7M_ITMSYSLOG is not set # CONFIG_GPIO_IRQ is not set +# CONFIG_SERIAL_TERMIOS is not set # # LPC17xx Configuration Options @@ -147,6 +199,7 @@ CONFIG_LPC17_UART0=y # CONFIG_LPC17_TMR3 is not set # CONFIG_LPC17_RIT is not set # CONFIG_LPC17_PWM0 is not set +# CONFIG_LPC17_PWM1 is not set # CONFIG_LPC17_MCPWM is not set # CONFIG_LPC17_QEI is not set # CONFIG_LPC17_RTC is not set @@ -156,11 +209,13 @@ CONFIG_LPC17_UART0=y # CONFIG_LPC17_GPDMA is not set # CONFIG_LPC17_FLASH is not set +# +# External Memory Configuration +# + # # Serial driver options # -# CONFIG_SERIAL_TERMIOS is not set -# CONFIG_UART0_FLOWCONTROL is not set # # USB device driver options @@ -173,21 +228,30 @@ CONFIG_LPC17_USBDEV_NDMADESCRIPTORS=0 # CONFIG_LPC17_USBDEV_NOVBUS is not set # CONFIG_LPC17_USBDEV_NOLED is not set -# -# External Memory Configuration -# - # # Architecture Options # # CONFIG_ARCH_NOINTC is not set # CONFIG_ARCH_VECNOTIRQ is not set # CONFIG_ARCH_DMA is not set -# CONFIG_ARCH_IRQPRIO is not set -# CONFIG_ARCH_ADDRENV is not set +CONFIG_ARCH_HAVE_IRQPRIO=y +# CONFIG_ARCH_L2CACHE is not set +# CONFIG_ARCH_HAVE_COHERENT_DCACHE is not set +# CONFIG_ARCH_HAVE_ADDRENV is not set +# CONFIG_ARCH_NEED_ADDRENV_MAPPING is not set +# CONFIG_ARCH_HAVE_MULTICPU is not set CONFIG_ARCH_HAVE_VFORK=y +# CONFIG_ARCH_HAVE_MMU is not set +CONFIG_ARCH_HAVE_MPU=y +# CONFIG_ARCH_NAND_HWECC is not set +# CONFIG_ARCH_HAVE_EXTCLK is not set +# CONFIG_ARCH_HAVE_POWEROFF is not set +CONFIG_ARCH_HAVE_RESET=y +# CONFIG_ARCH_USE_MPU is not set +# CONFIG_ARCH_IRQPRIO is not set CONFIG_ARCH_STACKDUMP=y # CONFIG_ENDIAN_BIG is not set +# CONFIG_ARCH_IDLE_CUSTOM is not set # CONFIG_ARCH_HAVE_RAMFUNCS is not set CONFIG_ARCH_HAVE_RAMVECTORS=y # CONFIG_ARCH_RAMVECTORS is not set @@ -197,10 +261,14 @@ CONFIG_ARCH_HAVE_RAMVECTORS=y # CONFIG_BOARD_LOOPSPERMSEC=7982 # CONFIG_ARCH_CALIBRATION is not set -CONFIG_RAM_START=0x10000000 -CONFIG_RAM_SIZE=32768 + +# +# Interrupt options +# CONFIG_ARCH_HAVE_INTERRUPTSTACK=y CONFIG_ARCH_INTERRUPTSTACK=0 +CONFIG_ARCH_HAVE_HIPRI_INTERRUPT=y +# CONFIG_ARCH_HIPRI_INTERRUPT is not set # # Boot options @@ -211,13 +279,20 @@ CONFIG_BOOT_RUNFROMFLASH=y # CONFIG_BOOT_RUNFROMSDRAM is not set # CONFIG_BOOT_COPYTORAM is not set +# +# Boot Memory Configuration +# +CONFIG_RAM_START=0x10000000 +CONFIG_RAM_SIZE=32768 +# CONFIG_ARCH_HAVE_SDRAM is not set + # # Board Selection # # CONFIG_ARCH_BOARD_LPCXPRESSO is not set # CONFIG_ARCH_BOARD_MBED is not set CONFIG_ARCH_BOARD_NUCLEUS2G=y -# CONFIG_ARCH_BOARD_LPC1766STK is not set +# CONFIG_ARCH_BOARD_U_BLOX_C027 is not set # CONFIG_ARCH_BOARD_ZKITARM is not set # CONFIG_ARCH_BOARD_CUSTOM is not set CONFIG_ARCH_BOARD="nucleus2g" @@ -231,31 +306,19 @@ CONFIG_ARCH_LEDS=y # # Board-Specific Options # +CONFIG_LIB_BOARDCTL=y +# CONFIG_BOARDCTL_RESET is not set +# CONFIG_BOARDCTL_UNIQUEID is not set +CONFIG_BOARDCTL_USBDEVCTRL=y +# CONFIG_BOARDCTL_TSCTEST is not set +# CONFIG_BOARDCTL_ADCTEST is not set +# CONFIG_BOARDCTL_PWMTEST is not set +# CONFIG_BOARDCTL_GRAPHICS is not set +# CONFIG_BOARDCTL_IOCTL is not set # # RTOS Features # -# CONFIG_BOARD_INITIALIZE is not set -CONFIG_USEC_PER_TICK=10000 -CONFIG_RR_INTERVAL=200 -# CONFIG_SCHED_INSTRUMENTATION is not set -CONFIG_TASK_NAME_SIZE=0 -# CONFIG_SCHED_HAVE_PARENT is not set -# CONFIG_JULIAN_TIME is not set -CONFIG_START_YEAR=2010 -CONFIG_START_MONTH=11 -CONFIG_START_DAY=10 -CONFIG_DEV_CONSOLE=y -# CONFIG_MUTEX_TYPES is not set -# CONFIG_PRIORITY_INHERITANCE is not set -# CONFIG_FDCLONE_DISABLE is not set -# CONFIG_FDCLONE_STDIO is not set -CONFIG_SDCLONE_DISABLE=y -# CONFIG_SCHED_WAITPID is not set -# CONFIG_SCHED_STARTHOOK is not set -# CONFIG_SCHED_ATEXIT is not set -# CONFIG_SCHED_ONEXIT is not set -CONFIG_USER_ENTRYPOINT="usbserial_main" CONFIG_DISABLE_OS_API=y # CONFIG_DISABLE_POSIX_TIMERS is not set # CONFIG_DISABLE_PTHREAD is not set @@ -263,6 +326,67 @@ CONFIG_DISABLE_OS_API=y # CONFIG_DISABLE_MQUEUE is not set # CONFIG_DISABLE_ENVIRON is not set +# +# Clocks and Timers +# +CONFIG_USEC_PER_TICK=10000 +# CONFIG_SYSTEM_TIME64 is not set +# CONFIG_CLOCK_MONOTONIC is not set +# CONFIG_JULIAN_TIME is not set +CONFIG_START_YEAR=2010 +CONFIG_START_MONTH=11 +CONFIG_START_DAY=10 +CONFIG_MAX_WDOGPARMS=2 +CONFIG_PREALLOC_WDOGS=8 +CONFIG_WDOG_INTRESERVE=1 +CONFIG_PREALLOC_TIMERS=4 + +# +# Tasks and Scheduling +# +# CONFIG_INIT_NONE is not set +CONFIG_INIT_ENTRYPOINT=y +# CONFIG_INIT_FILEPATH is not set +CONFIG_USER_ENTRYPOINT="usbserial_main" +CONFIG_RR_INTERVAL=200 +# CONFIG_SCHED_SPORADIC is not set +CONFIG_TASK_NAME_SIZE=0 +CONFIG_MAX_TASKS=16 +# CONFIG_SCHED_HAVE_PARENT is not set +# CONFIG_SCHED_WAITPID is not set + +# +# Pthread Options +# +# CONFIG_MUTEX_TYPES is not set +CONFIG_NPTHREAD_KEYS=4 + +# +# Performance Monitoring +# +# CONFIG_SCHED_CPULOAD is not set +# CONFIG_SCHED_INSTRUMENTATION is not set + +# +# Files and I/O +# +CONFIG_DEV_CONSOLE=y +# CONFIG_FDCLONE_DISABLE is not set +# CONFIG_FDCLONE_STDIO is not set +CONFIG_SDCLONE_DISABLE=y +CONFIG_NFILE_DESCRIPTORS=8 +CONFIG_NFILE_STREAMS=8 +CONFIG_NAME_MAX=32 +# CONFIG_PRIORITY_INHERITANCE is not set + +# +# RTOS hooks +# +# CONFIG_BOARD_INITIALIZE is not set +# CONFIG_SCHED_STARTHOOK is not set +# CONFIG_SCHED_ATEXIT is not set +# CONFIG_SCHED_ONEXIT is not set + # # Signal Numbers # @@ -272,19 +396,18 @@ CONFIG_SIG_SIGALARM=3 CONFIG_SIG_SIGCONDTIMEDOUT=16 # -# Sizes of configurable things (0 disables) +# POSIX Message Queue Options # -CONFIG_MAX_TASKS=16 -CONFIG_NPTHREAD_KEYS=4 -CONFIG_NFILE_DESCRIPTORS=8 -CONFIG_NFILE_STREAMS=8 -CONFIG_NAME_MAX=32 CONFIG_PREALLOC_MQ_MSGS=4 CONFIG_MQ_MAXMSGSIZE=32 -CONFIG_MAX_WDOGPARMS=2 -CONFIG_PREALLOC_WDOGS=8 -CONFIG_WDOG_INTRESERVE=1 -CONFIG_PREALLOC_TIMERS=4 +# CONFIG_MODULE is not set + +# +# Work queue support +# +# CONFIG_SCHED_WORKQUEUE is not set +# CONFIG_SCHED_HPWORK is not set +# CONFIG_SCHED_LPWORK is not set # # Stack and heap information @@ -293,6 +416,7 @@ CONFIG_IDLETHREAD_STACKSIZE=1024 CONFIG_USERMAIN_STACKSIZE=2048 CONFIG_PTHREAD_STACK_MIN=256 CONFIG_PTHREAD_STACK_DEFAULT=2048 +# CONFIG_LIB_SYSCALL is not set # # Device Drivers @@ -301,19 +425,46 @@ CONFIG_DISABLE_POLL=y CONFIG_DEV_NULL=y # CONFIG_DEV_ZERO is not set # CONFIG_DEV_LOOP is not set + +# +# Buffering +# +# CONFIG_DRVR_WRITEBUFFER is not set +# CONFIG_DRVR_READAHEAD is not set # CONFIG_RAMDISK is not set # CONFIG_CAN is not set +# CONFIG_ARCH_HAVE_PWM_PULSECOUNT is not set +# CONFIG_ARCH_HAVE_PWM_MULTICHAN is not set # CONFIG_PWM is not set +# CONFIG_ARCH_HAVE_I2CRESET is not set # CONFIG_I2C is not set # CONFIG_SPI is not set +# CONFIG_I2S is not set + +# +# Timer Driver Support +# +# CONFIG_TIMER is not set # CONFIG_RTC is not set # CONFIG_WATCHDOG is not set # CONFIG_ANALOG is not set +# CONFIG_AUDIO_DEVICES is not set +# CONFIG_VIDEO_DEVICES is not set # CONFIG_BCH is not set # CONFIG_INPUT is not set +# CONFIG_IOEXPANDER is not set # CONFIG_LCD is not set + +# +# LED Support +# +# CONFIG_USERLED is not set +# CONFIG_RGBLED is not set +# CONFIG_PCA9635PW is not set # CONFIG_MMCSD is not set +# CONFIG_MODEM is not set # CONFIG_MTD is not set +# CONFIG_EEPROM is not set # CONFIG_PIPES is not set # CONFIG_PM is not set # CONFIG_POWER is not set @@ -323,10 +474,40 @@ CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set +# CONFIG_ARCH_HAVE_UART is not set CONFIG_ARCH_HAVE_UART0=y +# CONFIG_ARCH_HAVE_UART1 is not set +# CONFIG_ARCH_HAVE_UART2 is not set +# CONFIG_ARCH_HAVE_UART3 is not set +# CONFIG_ARCH_HAVE_UART4 is not set +# CONFIG_ARCH_HAVE_UART5 is not set +# CONFIG_ARCH_HAVE_UART6 is not set +# CONFIG_ARCH_HAVE_UART7 is not set +# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_ARCH_HAVE_SCI0 is not set +# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_ARCH_HAVE_USART0 is not set +# CONFIG_ARCH_HAVE_USART1 is not set +# CONFIG_ARCH_HAVE_USART2 is not set +# CONFIG_ARCH_HAVE_USART3 is not set +# CONFIG_ARCH_HAVE_USART4 is not set +# CONFIG_ARCH_HAVE_USART5 is not set +# CONFIG_ARCH_HAVE_USART6 is not set +# CONFIG_ARCH_HAVE_USART7 is not set +# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_ARCH_HAVE_OTHER_UART is not set + +# +# USART Configuration +# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y +# CONFIG_SERIAL_IFLOWCONTROL is not set +# CONFIG_SERIAL_OFLOWCONTROL is not set +# CONFIG_SERIAL_DMA is not set +CONFIG_ARCH_HAVE_SERIAL_TERMIOS=y CONFIG_UART0_SERIAL_CONSOLE=y +# CONFIG_OTHER_SERIAL_CONSOLE is not set # CONFIG_NO_SERIAL_CONSOLE is not set # @@ -338,6 +519,9 @@ CONFIG_UART0_BAUD=115200 CONFIG_UART0_BITS=8 CONFIG_UART0_PARITY=0 CONFIG_UART0_2STOP=0 +# CONFIG_UART0_IFLOWCONTROL is not set +# CONFIG_UART0_OFLOWCONTROL is not set +# CONFIG_UART0_DMA is not set CONFIG_USBDEV=y # @@ -349,6 +533,7 @@ CONFIG_USBDEV_SELFPOWERED=y # CONFIG_USBDEV_BUSPOWERED is not set CONFIG_USBDEV_MAXPOWER=100 # CONFIG_USBDEV_DMA is not set +# CONFIG_ARCH_USBDEV_STALLQUEUE is not set # CONFIG_USBDEV_TRACE is not set # @@ -363,6 +548,7 @@ CONFIG_PL2303_EPBULKIN=5 CONFIG_PL2303_EP0MAXPACKET=64 CONFIG_PL2303_NWRREQS=4 CONFIG_PL2303_NRDREQS=4 +CONFIG_PL2303_BULKIN_REQLEN=96 CONFIG_PL2303_RXBUFSIZE=512 CONFIG_PL2303_TXBUFSIZE=512 CONFIG_PL2303_VENDORID=0x067b @@ -382,12 +568,20 @@ CONFIG_PL2303_PRODUCTSTR="USBdev Serial" # System Logging # # CONFIG_RAMLOG is not set +# CONFIG_SYSLOG_CONSOLE is not set # # Networking Support # +# CONFIG_ARCH_HAVE_NET is not set +# CONFIG_ARCH_HAVE_PHY is not set # CONFIG_NET is not set +# +# Crypto API +# +# CONFIG_CRYPTO is not set + # # File Systems # @@ -396,13 +590,20 @@ CONFIG_PL2303_PRODUCTSTR="USBdev Serial" # File system configuration # CONFIG_DISABLE_MOUNTPOINT=y +# CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_FS_READABLE is not set +# CONFIG_FS_WRITABLE is not set +# CONFIG_FS_NAMED_SEMAPHORES is not set +CONFIG_FS_MQUEUE_MPATH="/var/mqueue" # CONFIG_FS_RAMMAP is not set +# CONFIG_FS_PROCFS is not set +# CONFIG_FS_UNIONFS is not set # # System Logging # - # CONFIG_SYSLOG is not set +# CONFIG_SYSLOG_TIMESTAMP is not set # # Graphics Support @@ -414,10 +615,20 @@ CONFIG_DISABLE_MOUNTPOINT=y # # CONFIG_MM_SMALL is not set CONFIG_MM_REGIONS=2 +# CONFIG_ARCH_HAVE_HEAP2 is not set # CONFIG_GRAN is not set # -# Binary Formats +# Audio Support +# +# CONFIG_AUDIO is not set + +# +# Wireless Support +# + +# +# Binary Loader # # CONFIG_BINFMT_DISABLE is not set # CONFIG_BINFMT_EXEPATH is not set @@ -442,6 +653,8 @@ CONFIG_LIB_HOMEDIR="/" # CONFIG_NOPRINTF_FIELDWIDTH is not set # CONFIG_LIBC_FLOATINGPOINT is not set CONFIG_LIBC_LONG_LONG=y +# CONFIG_LIBC_IOCTL_VARIADIC 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 @@ -452,15 +665,20 @@ CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048 # CONFIG_LIBC_STRERROR is not set # CONFIG_LIBC_PERROR_STDOUT is not set CONFIG_ARCH_LOWPUTC=y +# CONFIG_LIBC_LOCALTIME is not set +# CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set +# CONFIG_LIBC_NETDB is not set # # Non-standard Library Support # -# CONFIG_SCHED_WORKQUEUE is not set # CONFIG_LIB_KBDCODEC is not set +# CONFIG_LIB_SLCDCODEC is not set # # Basic CXX Support @@ -473,97 +691,99 @@ CONFIG_LIB_SENDFILE_BUFSIZE=512 # # -# Built-In Applications +# CAN Utilities # # # Examples # -# CONFIG_EXAMPLES_BUTTONS is not set -# CONFIG_EXAMPLES_CAN is not set -# CONFIG_SYSTEM_COMPOSITE is not set +# CONFIG_EXAMPLES_CHAT is not set +# CONFIG_EXAMPLES_CONFIGDATA is not set +# CONFIG_EXAMPLES_CPUHOG is not set # CONFIG_EXAMPLES_DHCPD is not set # CONFIG_EXAMPLES_ELF is not set # CONFIG_EXAMPLES_FTPC is not set # CONFIG_EXAMPLES_FTPD is not set # CONFIG_EXAMPLES_HELLO is not set -# CONFIG_EXAMPLES_HELLOXX is not set # CONFIG_EXAMPLES_JSON is not set # CONFIG_EXAMPLES_HIDKBD is not set # CONFIG_EXAMPLES_KEYPADTEST is not set # CONFIG_EXAMPLES_IGMP is not set -# CONFIG_EXAMPLES_LCDRW is not set +# CONFIG_EXAMPLES_MEDIA 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 is not set # CONFIG_EXAMPLES_NULL is not set # CONFIG_EXAMPLES_NX is not set # CONFIG_EXAMPLES_NXTERM is not set # CONFIG_EXAMPLES_NXFFS is not set -# CONFIG_EXAMPLES_NXFLAT is not set # CONFIG_EXAMPLES_NXHELLO is not set # CONFIG_EXAMPLES_NXIMAGE is not set # CONFIG_EXAMPLES_NXLINES is not set # CONFIG_EXAMPLES_NXTEXT is not set # CONFIG_EXAMPLES_OSTEST is not set -# CONFIG_EXAMPLES_PASHELLO is not set +# CONFIG_EXAMPLES_PCA9635 is not set # CONFIG_EXAMPLES_PIPE is not set # CONFIG_EXAMPLES_POLL is not set +# CONFIG_EXAMPLES_PPPD is not set # CONFIG_EXAMPLES_POSIXSPAWN is not set -# CONFIG_EXAMPLES_QENCODER is not set +# CONFIG_EXAMPLES_RGBLED is not set # CONFIG_EXAMPLES_RGMP is not set -# CONFIG_EXAMPLES_ROMFS is not set # CONFIG_EXAMPLES_SENDMAIL is not set +# CONFIG_EXAMPLES_SERIALBLASTER is not set +# CONFIG_EXAMPLES_SERIALRX is not set # CONFIG_EXAMPLES_SERLOOP is not set +# CONFIG_EXAMPLES_SLCD is not set +# CONFIG_EXAMPLES_SMART is not set +# CONFIG_EXAMPLES_SMP 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 # CONFIG_EXAMPLES_TOUCHSCREEN is not set -# CONFIG_EXAMPLES_UDP is not set # CONFIG_EXAMPLES_WEBSERVER is not set CONFIG_EXAMPLES_USBSERIAL=y -# CONFIG_SYSTEM_USBMSC is not set +CONFIG_EXAMPLES_USBSERIAL_BUFSIZE=512 # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set +# +# File System Utilities +# +# CONFIG_FSUTILS_INIFILE is not set + +# +# GPS Utilities +# +# CONFIG_GPSUTILS_MINMEA_LIB is not set + # # Graphics Support # # CONFIG_TIFF is not set +# CONFIG_GRAPHICS_TRAVELER is not set # # Interpreters # # CONFIG_INTERPRETERS_FICL is not set # CONFIG_INTERPRETERS_PCODE is not set - -# -# Network Utilities -# - -# -# Networking Utilities -# -# CONFIG_NETUTILS_CODECS is not set -# CONFIG_NETUTILS_DHCPC is not set -# CONFIG_NETUTILS_DHCPD is not set -# CONFIG_NETUTILS_FTPC is not set -# CONFIG_NETUTILS_FTPD is not set -# CONFIG_NETUTILS_JSON is not set -# CONFIG_NETDB_DNSCLIENT is not set -# CONFIG_NETUTILS_SMTP is not set -# CONFIG_NETUTILS_TELNETD is not set -# CONFIG_NETUTILS_TFTPC is not set -# CONFIG_NETUTILS_THTTPD is not set -# CONFIG_NETUTILS_NETLIB is not set -# CONFIG_NETUTILS_WEBCLIENT is not set +# CONFIG_INTERPRETERS_MICROPYTHON is not set # # FreeModBus # # CONFIG_MODBUS is not set +# +# Network Utilities +# +# CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_FTPC is not set +# CONFIG_NETUTILS_JSON is not set +# CONFIG_NETUTILS_SMTP is not set + # # NSH Library # @@ -574,51 +794,24 @@ CONFIG_EXAMPLES_USBSERIAL=y # # -# System NSH Add-Ons +# Platform-specific Support # +# CONFIG_PLATFORM_CONFIGDATA is not set # -# Custom Free Memory Command +# System Libraries and NSH Add-Ons # # CONFIG_SYSTEM_FREE is not set - -# -# I2C tool -# - -# -# FLASH Program Installation -# +# CONFIG_SYSTEM_CLE is not set +# CONFIG_SYSTEM_CUTERM is not set # CONFIG_SYSTEM_INSTALL is not set - -# -# RAM Test -# +# CONFIG_SYSTEM_HEX2BIN is not set +# CONFIG_SYSTEM_HEXED is not set # CONFIG_SYSTEM_RAMTEST is not set - -# -# readline() -# +# CONFIG_READLINE_HAVE_EXTMATCH is not set # CONFIG_SYSTEM_READLINE is not set - -# -# Power Off -# -# CONFIG_SYSTEM_POWEROFF is not set - -# -# RAMTRON -# - -# -# SD Card -# # CONFIG_SYSTEM_SDCARD is not set - -# -# Sysinfo -# - -# -# USB Monitor -# +# CONFIG_SYSTEM_SUDOKU is not set +# CONFIG_SYSTEM_VI is not set +# CONFIG_SYSTEM_UBLOXMODEM is not set +# CONFIG_SYSTEM_ZMODEM is not set diff --git a/configs/olimex-lpc1766stk/src/lpc17_usbmsc.c b/configs/olimex-lpc1766stk/src/lpc17_usbmsc.c index f117e4261f..7fe2266714 100644 --- a/configs/olimex-lpc1766stk/src/lpc17_usbmsc.c +++ b/configs/olimex-lpc1766stk/src/lpc17_usbmsc.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/olimex-lpc1766stk/src/lpc17_usbmsc.c * - * Copyright (C) 2010 Gregory Nutt. All rights reserved. + * Copyright (C) 2010, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Configure and register the LPC17xx MMC/SD SPI block driver. @@ -45,8 +45,9 @@ #include #include -#include +#include #include +#include #include "lpc17_gpio.h" #include "lpc17_ssp.h" @@ -79,14 +80,14 @@ ****************************************************************************/ /**************************************************************************** - * Name: usbmsc_archinitialize + * Name: board_usbmsc_initialize * * Description: - * Perform architecture specific initialization + * Perform architecture specific initialization of the USB MSC device. * ****************************************************************************/ -int usbmsc_archinitialize(void) +int board_usbmsc_initialize(int port) { FAR struct spi_dev_s *spi; int ret; diff --git a/configs/olimex-lpc1766stk/usbmsc/defconfig b/configs/olimex-lpc1766stk/usbmsc/defconfig index 43909cc2f4..e7eb5cc888 100644 --- a/configs/olimex-lpc1766stk/usbmsc/defconfig +++ b/configs/olimex-lpc1766stk/usbmsc/defconfig @@ -287,7 +287,8 @@ CONFIG_ARCH_HAVE_IRQBUTTONS=y # # Board-Specific Options # -# CONFIG_LIB_BOARDCTL is not set +CONFIG_LIB_BOARDCTL=y +CONFIG_BOARDCTL_USBDEVCTRL=y # # RTOS Features diff --git a/configs/olimex-lpc1766stk/usbserial/defconfig b/configs/olimex-lpc1766stk/usbserial/defconfig index 1c46b2fa32..e09349aed2 100644 --- a/configs/olimex-lpc1766stk/usbserial/defconfig +++ b/configs/olimex-lpc1766stk/usbserial/defconfig @@ -17,6 +17,7 @@ CONFIG_HOST_LINUX=y # Build Configuration # # CONFIG_APPS_DIR="../apps" +CONFIG_BUILD_FLAT=y # CONFIG_BUILD_2PASS is not set # @@ -36,13 +37,15 @@ CONFIG_INTELHEX_BINARY=y # CONFIG_ARCH_MATH_H is not set # CONFIG_ARCH_FLOAT_H is not set # CONFIG_ARCH_STDARG_H is not set +# CONFIG_ARCH_DEBUG_H is not set # # Debug Options # # CONFIG_DEBUG is not set -CONFIG_ARCH_HAVE_STACKCHECK=y # CONFIG_ARCH_HAVE_HEAPCHECK is not set +CONFIG_ARCH_HAVE_STACKCHECK=y +# CONFIG_STACK_COLORATION is not set # CONFIG_DEBUG_SYMBOLS is not set CONFIG_ARCH_HAVE_CUSTOMOPT=y # CONFIG_DEBUG_NOOPT is not set @@ -71,11 +74,14 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_C5471 is not set # CONFIG_ARCH_CHIP_CALYPSO is not set # CONFIG_ARCH_CHIP_DM320 is not set +# CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 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_TIVA is not set +# CONFIG_ARCH_CHIP_LPC11XX is not set CONFIG_ARCH_CHIP_LPC17XX=y # CONFIG_ARCH_CHIP_LPC214X is not set # CONFIG_ARCH_CHIP_LPC2378 is not set @@ -84,35 +90,59 @@ CONFIG_ARCH_CHIP_LPC17XX=y # CONFIG_ARCH_CHIP_NUC1XX is not set # CONFIG_ARCH_CHIP_SAMA5 is not set # CONFIG_ARCH_CHIP_SAMD is not set +# CONFIG_ARCH_CHIP_SAML is not set # CONFIG_ARCH_CHIP_SAM34 is not set +# CONFIG_ARCH_CHIP_SAMV7 is not set # CONFIG_ARCH_CHIP_STM32 is not set +# CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set +# CONFIG_ARCH_CHIP_TMS570 is not set +# CONFIG_ARCH_CHIP_MOXART is not set # CONFIG_ARCH_ARM7TDMI is not set # CONFIG_ARCH_ARM926EJS is not set # CONFIG_ARCH_ARM920T is not set # CONFIG_ARCH_CORTEXM0 is not set CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXM4 is not set +# CONFIG_ARCH_CORTEXM7 is not set # CONFIG_ARCH_CORTEXA5 is not set # CONFIG_ARCH_CORTEXA8 is not set +# CONFIG_ARCH_CORTEXA9 is not set +# CONFIG_ARCH_CORTEXR4 is not set +# CONFIG_ARCH_CORTEXR4F is not set +# CONFIG_ARCH_CORTEXR5 is not set +# CONFIG_ARCH_CORTEX5F is not set +# CONFIG_ARCH_CORTEXR7 is not set +# CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="lpc17xx" # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_CMNVECTOR is not set +# CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set -CONFIG_ARCH_HAVE_MPU=y +# CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set +CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set # # ARMV7M Configuration Options # +# CONFIG_ARMV7M_HAVE_ICACHE is not set +# CONFIG_ARMV7M_HAVE_DCACHE is not set +# CONFIG_ARMV7M_HAVE_ITCM is not set +# CONFIG_ARMV7M_HAVE_DTCM is not set CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set # CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL is not set CONFIG_ARMV7M_OABI_TOOLCHAIN=y +# CONFIG_ARMV7M_HAVE_STACKCHECK is not set +# CONFIG_ARMV7M_ITMSYSLOG is not set # CONFIG_GPIO_IRQ is not set +# CONFIG_SERIAL_TERMIOS is not set # # LPC17xx Configuration Options @@ -169,6 +199,7 @@ CONFIG_LPC17_UART0=y # CONFIG_LPC17_TMR3 is not set # CONFIG_LPC17_RIT is not set # CONFIG_LPC17_PWM0 is not set +# CONFIG_LPC17_PWM1 is not set # CONFIG_LPC17_MCPWM is not set # CONFIG_LPC17_QEI is not set # CONFIG_LPC17_RTC is not set @@ -185,7 +216,6 @@ CONFIG_LPC17_UART0=y # # Serial driver options # -# CONFIG_SERIAL_TERMIOS is not set # # USB device driver options @@ -205,10 +235,19 @@ CONFIG_LPC17_USBDEV_NDMADESCRIPTORS=0 # CONFIG_ARCH_VECNOTIRQ is not set # CONFIG_ARCH_DMA is not set CONFIG_ARCH_HAVE_IRQPRIO=y -# CONFIG_ARCH_ADDRENV is not set +# CONFIG_ARCH_L2CACHE is not set +# CONFIG_ARCH_HAVE_COHERENT_DCACHE is not set +# CONFIG_ARCH_HAVE_ADDRENV is not set +# CONFIG_ARCH_NEED_ADDRENV_MAPPING is not set +# CONFIG_ARCH_HAVE_MULTICPU is not set CONFIG_ARCH_HAVE_VFORK=y # CONFIG_ARCH_HAVE_MMU is not set +CONFIG_ARCH_HAVE_MPU=y # CONFIG_ARCH_NAND_HWECC is not set +# CONFIG_ARCH_HAVE_EXTCLK is not set +# CONFIG_ARCH_HAVE_POWEROFF is not set +CONFIG_ARCH_HAVE_RESET=y +# CONFIG_ARCH_USE_MPU is not set # CONFIG_ARCH_IRQPRIO is not set CONFIG_ARCH_STACKDUMP=y # CONFIG_ENDIAN_BIG is not set @@ -266,6 +305,15 @@ CONFIG_ARCH_HAVE_IRQBUTTONS=y # # Board-Specific Options # +CONFIG_LIB_BOARDCTL=y +# CONFIG_BOARDCTL_RESET is not set +# CONFIG_BOARDCTL_UNIQUEID is not set +CONFIG_BOARDCTL_USBDEVCTRL=y +# CONFIG_BOARDCTL_TSCTEST is not set +# CONFIG_BOARDCTL_ADCTEST is not set +# CONFIG_BOARDCTL_PWMTEST is not set +# CONFIG_BOARDCTL_GRAPHICS is not set +# CONFIG_BOARDCTL_IOCTL is not set # # RTOS Features @@ -295,8 +343,12 @@ CONFIG_PREALLOC_TIMERS=4 # # Tasks and Scheduling # +# CONFIG_INIT_NONE is not set +CONFIG_INIT_ENTRYPOINT=y +# CONFIG_INIT_FILEPATH is not set CONFIG_USER_ENTRYPOINT="usbserial_main" CONFIG_RR_INTERVAL=200 +# CONFIG_SCHED_SPORADIC is not set CONFIG_TASK_NAME_SIZE=0 CONFIG_MAX_TASKS=16 # CONFIG_SCHED_HAVE_PARENT is not set @@ -347,6 +399,14 @@ CONFIG_SIG_SIGCONDTIMEDOUT=16 # CONFIG_PREALLOC_MQ_MSGS=4 CONFIG_MQ_MAXMSGSIZE=32 +# CONFIG_MODULE is not set + +# +# Work queue support +# +# CONFIG_SCHED_WORKQUEUE is not set +# CONFIG_SCHED_HPWORK is not set +# CONFIG_SCHED_LPWORK is not set # # Stack and heap information @@ -355,6 +415,7 @@ CONFIG_IDLETHREAD_STACKSIZE=1024 CONFIG_USERMAIN_STACKSIZE=2048 CONFIG_PTHREAD_STACK_MIN=256 CONFIG_PTHREAD_STACK_DEFAULT=2048 +# CONFIG_LIB_SYSCALL is not set # # Device Drivers @@ -363,14 +424,26 @@ CONFIG_DISABLE_POLL=y CONFIG_DEV_NULL=y # CONFIG_DEV_ZERO is not set # CONFIG_DEV_LOOP is not set + +# +# Buffering +# +# CONFIG_DRVR_WRITEBUFFER is not set +# CONFIG_DRVR_READAHEAD is not set # CONFIG_RAMDISK is not set # CONFIG_CAN is not set # CONFIG_ARCH_HAVE_PWM_PULSECOUNT is not set +# CONFIG_ARCH_HAVE_PWM_MULTICHAN is not set # CONFIG_PWM is not set # CONFIG_ARCH_HAVE_I2CRESET is not set # CONFIG_I2C is not set # CONFIG_SPI is not set # CONFIG_I2S is not set + +# +# Timer Driver Support +# +# CONFIG_TIMER is not set # CONFIG_RTC is not set # CONFIG_WATCHDOG is not set # CONFIG_ANALOG is not set @@ -378,9 +451,19 @@ CONFIG_DEV_NULL=y # CONFIG_VIDEO_DEVICES is not set # CONFIG_BCH is not set # CONFIG_INPUT is not set +# CONFIG_IOEXPANDER is not set # CONFIG_LCD is not set + +# +# LED Support +# +# CONFIG_USERLED is not set +# CONFIG_RGBLED is not set +# CONFIG_PCA9635PW is not set # CONFIG_MMCSD is not set +# CONFIG_MODEM is not set # CONFIG_MTD is not set +# CONFIG_EEPROM is not set # CONFIG_PIPES is not set # CONFIG_PM is not set # CONFIG_POWER is not set @@ -411,13 +494,19 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_USART6 is not set # CONFIG_ARCH_HAVE_USART7 is not set # CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_ARCH_HAVE_OTHER_UART is not set # # USART Configuration # CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y +# CONFIG_SERIAL_IFLOWCONTROL is not set +# CONFIG_SERIAL_OFLOWCONTROL is not set +# CONFIG_SERIAL_DMA is not set +CONFIG_ARCH_HAVE_SERIAL_TERMIOS=y CONFIG_UART0_SERIAL_CONSOLE=y +# CONFIG_OTHER_SERIAL_CONSOLE is not set # CONFIG_NO_SERIAL_CONSOLE is not set # @@ -431,8 +520,7 @@ CONFIG_UART0_PARITY=0 CONFIG_UART0_2STOP=0 # CONFIG_UART0_IFLOWCONTROL is not set # CONFIG_UART0_OFLOWCONTROL is not set -# CONFIG_SERIAL_IFLOWCONTROL is not set -# CONFIG_SERIAL_OFLOWCONTROL is not set +# CONFIG_UART0_DMA is not set CONFIG_USBDEV=y # @@ -479,6 +567,7 @@ CONFIG_PL2303_PRODUCTSTR="USBdev Serial" # System Logging # # CONFIG_RAMLOG is not set +# CONFIG_SYSLOG_CONSOLE is not set # # Networking Support @@ -487,6 +576,11 @@ CONFIG_PL2303_PRODUCTSTR="USBdev Serial" # CONFIG_ARCH_HAVE_PHY is not set # CONFIG_NET is not set +# +# Crypto API +# +# CONFIG_CRYPTO is not set + # # File Systems # @@ -498,14 +592,17 @@ CONFIG_DISABLE_MOUNTPOINT=y # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set # CONFIG_FS_READABLE is not set # CONFIG_FS_WRITABLE is not set +# CONFIG_FS_NAMED_SEMAPHORES is not set +CONFIG_FS_MQUEUE_MPATH="/var/mqueue" # CONFIG_FS_RAMMAP is not set # CONFIG_FS_PROCFS is not set +# CONFIG_FS_UNIONFS is not set # # System Logging # - # CONFIG_SYSLOG is not set +# CONFIG_SYSLOG_TIMESTAMP is not set # # Graphics Support @@ -526,7 +623,11 @@ CONFIG_MM_REGIONS=2 # CONFIG_AUDIO is not set # -# Binary Formats +# Wireless Support +# + +# +# Binary Loader # # CONFIG_BINFMT_DISABLE is not set # CONFIG_BINFMT_EXEPATH is not set @@ -551,6 +652,7 @@ CONFIG_LIB_HOMEDIR="/" # CONFIG_NOPRINTF_FIELDWIDTH is not set # CONFIG_LIBC_FLOATINGPOINT is not set CONFIG_LIBC_LONG_LONG=y +# CONFIG_LIBC_IOCTL_VARIADIC is not set CONFIG_LIB_RAND_ORDER=1 # CONFIG_EOL_IS_CR is not set # CONFIG_EOL_IS_LF is not set @@ -562,14 +664,18 @@ CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048 # CONFIG_LIBC_STRERROR is not set # CONFIG_LIBC_PERROR_STDOUT is not set CONFIG_ARCH_LOWPUTC=y +# CONFIG_LIBC_LOCALTIME is not set +# CONFIG_TIME_EXTENDED is not set CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set +# CONFIG_LIBC_NETDB is not set # # Non-standard Library Support # -# CONFIG_SCHED_WORKQUEUE is not set # CONFIG_LIB_KBDCODEC is not set # CONFIG_LIB_SLCDCODEC is not set @@ -584,25 +690,25 @@ CONFIG_LIB_SENDFILE_BUFSIZE=512 # # -# Built-In Applications +# CAN Utilities # # # Examples # -# CONFIG_EXAMPLES_BUTTONS is not set -# CONFIG_EXAMPLES_CAN is not set +# CONFIG_EXAMPLES_CHAT is not set # CONFIG_EXAMPLES_CONFIGDATA is not set +# CONFIG_EXAMPLES_CPUHOG is not set # CONFIG_EXAMPLES_DHCPD is not set # CONFIG_EXAMPLES_ELF is not set # CONFIG_EXAMPLES_FTPC is not set # CONFIG_EXAMPLES_FTPD is not set # CONFIG_EXAMPLES_HELLO is not set -# CONFIG_EXAMPLES_HELLOXX is not set # CONFIG_EXAMPLES_JSON is not set # CONFIG_EXAMPLES_HIDKBD is not set # CONFIG_EXAMPLES_KEYPADTEST is not set # CONFIG_EXAMPLES_IGMP is not set +# CONFIG_EXAMPLES_MEDIA is not set # CONFIG_EXAMPLES_MM is not set # CONFIG_EXAMPLES_MODBUS is not set # CONFIG_EXAMPLES_MOUNT is not set @@ -612,68 +718,71 @@ CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_EXAMPLES_NX is not set # CONFIG_EXAMPLES_NXTERM is not set # CONFIG_EXAMPLES_NXFFS is not set -# CONFIG_EXAMPLES_NXFLAT is not set # CONFIG_EXAMPLES_NXHELLO is not set # CONFIG_EXAMPLES_NXIMAGE is not set # CONFIG_EXAMPLES_NXLINES is not set # CONFIG_EXAMPLES_NXTEXT is not set # CONFIG_EXAMPLES_OSTEST is not set -# CONFIG_EXAMPLES_PASHELLO is not set +# CONFIG_EXAMPLES_PCA9635 is not set # CONFIG_EXAMPLES_PIPE is not set # CONFIG_EXAMPLES_POLL is not set +# CONFIG_EXAMPLES_PPPD is not set # CONFIG_EXAMPLES_POSIXSPAWN is not set -# CONFIG_EXAMPLES_QENCODER is not set +# CONFIG_EXAMPLES_RGBLED is not set # CONFIG_EXAMPLES_RGMP is not set -# CONFIG_EXAMPLES_ROMFS is not set # CONFIG_EXAMPLES_SENDMAIL is not set +# CONFIG_EXAMPLES_SERIALBLASTER is not set +# CONFIG_EXAMPLES_SERIALRX is not set # CONFIG_EXAMPLES_SERLOOP is not set # CONFIG_EXAMPLES_SLCD is not set # CONFIG_EXAMPLES_SMART is not set +# CONFIG_EXAMPLES_SMP 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 # CONFIG_EXAMPLES_TOUCHSCREEN is not set -# CONFIG_EXAMPLES_UDP is not set # CONFIG_EXAMPLES_WEBSERVER is not set CONFIG_EXAMPLES_USBSERIAL=y +CONFIG_EXAMPLES_USBSERIAL_BUFSIZE=512 # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set +# +# File System Utilities +# +# CONFIG_FSUTILS_INIFILE is not set + +# +# GPS Utilities +# +# CONFIG_GPSUTILS_MINMEA_LIB is not set + # # Graphics Support # # CONFIG_TIFF is not set +# CONFIG_GRAPHICS_TRAVELER is not set # # Interpreters # # CONFIG_INTERPRETERS_FICL is not set # CONFIG_INTERPRETERS_PCODE is not set - -# -# Network Utilities -# - -# -# Networking Utilities -# -# CONFIG_NETUTILS_CODECS is not set -# CONFIG_NETUTILS_DHCPD is not set -# CONFIG_NETUTILS_FTPC is not set -# CONFIG_NETUTILS_FTPD is not set -# CONFIG_NETUTILS_JSON is not set -# CONFIG_NETUTILS_SMTP is not set -# CONFIG_NETUTILS_TFTPC is not set -# CONFIG_NETUTILS_THTTPD is not set -# CONFIG_NETUTILS_NETLIB is not set -# CONFIG_NETUTILS_WEBCLIENT is not set +# CONFIG_INTERPRETERS_MICROPYTHON is not set # # FreeModBus # # CONFIG_MODBUS is not set +# +# Network Utilities +# +# CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_FTPC is not set +# CONFIG_NETUTILS_JSON is not set +# CONFIG_NETUTILS_SMTP is not set + # # NSH Library # @@ -691,94 +800,17 @@ CONFIG_EXAMPLES_USBSERIAL=y # # System Libraries and NSH Add-Ons # - -# -# Custom Free Memory Command -# # CONFIG_SYSTEM_FREE is not set - -# -# EMACS-like Command Line Editor -# # CONFIG_SYSTEM_CLE is not set - -# -# FLASH Program Installation -# +# CONFIG_SYSTEM_CUTERM is not set # CONFIG_SYSTEM_INSTALL is not set - -# -# FLASH Erase-all Command -# - -# -# I2C tool -# - -# -# INI File Parser -# -# CONFIG_FSUTILS_INIFILE is not set - -# -# NxPlayer media player library / command Line -# -# CONFIG_SYSTEM_NXPLAYER is not set - -# -# RAM test -# +# CONFIG_SYSTEM_HEX2BIN is not set +# CONFIG_SYSTEM_HEXED is not set # CONFIG_SYSTEM_RAMTEST is not set - -# -# readline() -# +# CONFIG_READLINE_HAVE_EXTMATCH is not set # CONFIG_SYSTEM_READLINE is not set - -# -# Power Off -# -# CONFIG_SYSTEM_POWEROFF is not set - -# -# RAMTRON -# - -# -# SD Card -# # CONFIG_SYSTEM_SDCARD is not set - -# -# Sysinfo -# - -# -# VI Work-Alike Editor -# +# CONFIG_SYSTEM_SUDOKU is not set # CONFIG_SYSTEM_VI is not set - -# -# Stack Monitor -# - -# -# USB CDC/ACM Device Commands -# - -# -# USB Composite Device Commands -# - -# -# USB Mass Storage Device Commands -# - -# -# USB Monitor -# - -# -# Zmodem Commands -# +# CONFIG_SYSTEM_UBLOXMODEM is not set # CONFIG_SYSTEM_ZMODEM is not set diff --git a/configs/olimex-stm32-h405/usbnsh/defconfig b/configs/olimex-stm32-h405/usbnsh/defconfig index 183efbe17a..c893f8900f 100644 --- a/configs/olimex-stm32-h405/usbnsh/defconfig +++ b/configs/olimex-stm32-h405/usbnsh/defconfig @@ -562,6 +562,7 @@ CONFIG_NSH_MMCSDMINOR=0 CONFIG_LIB_BOARDCTL=y # CONFIG_BOARDCTL_RESET is not set # CONFIG_BOARDCTL_UNIQUEID is not set +CONFIG_BOARDCTL_USBDEVCTRL=y # CONFIG_BOARDCTL_TSCTEST is not set CONFIG_BOARDCTL_ADCTEST=y # CONFIG_BOARDCTL_PWMTEST is not set diff --git a/configs/olimexino-stm32/composite/defconfig b/configs/olimexino-stm32/composite/defconfig index c3fff0d6f5..acc0e37f28 100644 --- a/configs/olimexino-stm32/composite/defconfig +++ b/configs/olimexino-stm32/composite/defconfig @@ -559,6 +559,7 @@ CONFIG_NSH_MMCSDSPIPORTNO=0 CONFIG_LIB_BOARDCTL=y # CONFIG_BOARDCTL_RESET is not set # CONFIG_BOARDCTL_UNIQUEID is not set +CONFIG_BOARDCTL_USBDEVCTRL=y # CONFIG_BOARDCTL_TSCTEST is not set # CONFIG_BOARDCTL_ADCTEST is not set # CONFIG_BOARDCTL_PWMTEST is not set diff --git a/configs/olimexino-stm32/src/olimexino-stm32.h b/configs/olimexino-stm32/src/olimexino-stm32.h index ebbd656019..df496c9894 100644 --- a/configs/olimexino-stm32/src/olimexino-stm32.h +++ b/configs/olimexino-stm32/src/olimexino-stm32.h @@ -213,7 +213,7 @@ int stm32_can_initialize(void); #endif /**************************************************************************** - * Name: usbmsc_archinitialize + * Name: board_usbmsc_initialize * * Description: * Called from the application system/usbmc or the boards_nsh if the @@ -224,24 +224,8 @@ int stm32_can_initialize(void); * ****************************************************************************/ -#if !defined(CONFIG_NSH_BUILTIN_APPS) && !defined(CONFIG_SYSTEM_USBMSC) -int usbmsc_archinitialize(void); -#endif - -/**************************************************************************** - * Name: composite_archinitialize - * - * Description: - * Called from the application system/composite or the boards_nsh if the - * application is not included. - * Perform architecture specific initialization. This function must - * configure the block device to export via USB. This function must be - * provided by architecture-specific logic in order to use this add-on. - * - ****************************************************************************/ - -#if !defined(CONFIG_NSH_BUILTIN_APPS) && !defined(CONFIG_SYSTEM_COMPOSITE) -extern int composite_archinitialize(void); +#ifndef CONFIG_BOARDCTL_USBDEVCTRL +int board_usbmsc_initialize(int port); #endif #endif /* __ASSEMBLY__ */ diff --git a/configs/olimexino-stm32/src/stm32_appinit.c b/configs/olimexino-stm32/src/stm32_appinit.c index d7042497ef..c7de1858b3 100644 --- a/configs/olimexino-stm32/src/stm32_appinit.c +++ b/configs/olimexino-stm32/src/stm32_appinit.c @@ -1,7 +1,7 @@ /************************************************************************************ * configs/olimexino-stm32/src/stm32_appinit.c * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * David Sidrane * @@ -60,17 +60,6 @@ #include "stm32.h" #include "olimexino-stm32.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ /**************************************************************************** * Public Functions ****************************************************************************/ @@ -89,13 +78,13 @@ int board_app_initialize(void) #ifdef CONFIG_USBMSC #if !defined(CONFIG_NSH_BUILTIN_APPS) && !defined(CONFIG_SYSTEM_USBMSC) - ret = usbmsc_archinitialize(); + ret = board_usbmsc_initialize(0); #endif #endif #ifdef CONFIG_USBDEV_COMPOSITE #if !defined(CONFIG_NSH_BUILTIN_APPS) && !defined(CONFIG_SYSTEM_COMPOSITE) - ret = composite_archinitialize(); + ret = board_composite_initialize(0); #endif #endif diff --git a/configs/olimexino-stm32/src/stm32_composite.c b/configs/olimexino-stm32/src/stm32_composite.c index a8de8fd3d8..339b8c879b 100644 --- a/configs/olimexino-stm32/src/stm32_composite.c +++ b/configs/olimexino-stm32/src/stm32_composite.c @@ -44,8 +44,9 @@ #include #include -#include +#include #include +#include #include "stm32.h" #include "olimexino-stm32.h" @@ -81,14 +82,14 @@ ****************************************************************************/ /**************************************************************************** - * Name: composite_archinitialize + * Name: board_composite_initialize * * Description: - * Perform architecture specific initialization + * Perform architecture specific initialization of a composite USB device. * ****************************************************************************/ -int composite_archinitialize(void) +int board_composite_initialize(int port) { /* If system/composite is built as an NSH command, then SD slot should * already have been initialized in board_app_initialize() (see stm32_appinit.c). diff --git a/configs/olimexino-stm32/src/stm32_usbmsc.c b/configs/olimexino-stm32/src/stm32_usbmsc.c index ded0980a1d..a64957cfbd 100644 --- a/configs/olimexino-stm32/src/stm32_usbmsc.c +++ b/configs/olimexino-stm32/src/stm32_usbmsc.c @@ -1,7 +1,7 @@ /************************************************************************************ * configs/olimexino-stm32/src/stm32_usbmsc.c * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * David Sidrane * @@ -44,8 +44,9 @@ #include #include -#include +#include #include +#include #include "stm32.h" #include "olimexino-stm32.h" @@ -60,8 +61,6 @@ /* Configuration ************************************************************/ -/* Configuration ************************************************************/ - #ifndef CONFIG_SYSTEM_USBMSC_DEVMINOR1 # define CONFIG_SYSTEM_USBMSC_DEVMINOR1 0 #endif @@ -83,14 +82,14 @@ ****************************************************************************/ /**************************************************************************** - * Name: usbmsc_archinitialize + * Name: board_usbmsc_initialize * * Description: - * Perform architecture specific initialization + * Perform architecture specific initialization of the USB MSC device. * ****************************************************************************/ -int usbmsc_archinitialize(void) +int board_usbmsc_initialize(int port) { /* If system/usbmsc is built as an NSH command, then SD slot should * already have been initialized in board_app_initialize() (see stm32_appinit.c). diff --git a/configs/pic32mx-starterkit/src/pic32mx_usbmsc.c b/configs/pic32mx-starterkit/src/pic32mx_usbmsc.c index 81b9b1bb67..e7caf0f94f 100644 --- a/configs/pic32mx-starterkit/src/pic32mx_usbmsc.c +++ b/configs/pic32mx-starterkit/src/pic32mx_usbmsc.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/pic32mx-starterkit/src/up_usbmsc.c * - * Copyright (C) 2012, 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2012, 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -38,19 +38,16 @@ ****************************************************************************/ #include +#include #include "pic32mx-starterkit.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ /**************************************************************************** - * Name: usbmsc_archinitialize + * Name: board_usbmsc_initialize * * Description: * Perform architecture specific initialization as needed to establish @@ -58,7 +55,7 @@ * ****************************************************************************/ -int usbmsc_archinitialize(void) +int board_usbmsc_initialize(int port) { /* If system/usbmsc is built as an NSH command, then SD slot should * already have been initialized in board_app_initialize() (see diff --git a/configs/pic32mx7mmb/nsh/defconfig b/configs/pic32mx7mmb/nsh/defconfig index 1550cae8c9..c1c9d893ee 100644 --- a/configs/pic32mx7mmb/nsh/defconfig +++ b/configs/pic32mx7mmb/nsh/defconfig @@ -350,6 +350,7 @@ CONFIG_NSH_MMCSDSPIPORTNO=1 # CONFIG_LIB_BOARDCTL=y # CONFIG_BOARDCTL_UNIQUEID is not set +CONFIG_BOARDCTL_USBDEVCTRL=y # CONFIG_BOARDCTL_TSCTEST is not set # CONFIG_BOARDCTL_ADCTEST is not set # CONFIG_BOARDCTL_PWMTEST is not set diff --git a/configs/pic32mx7mmb/src/pic32_usbmsc.c b/configs/pic32mx7mmb/src/pic32_usbmsc.c index 9b6d499ea3..af40ad9bb4 100644 --- a/configs/pic32mx7mmb/src/pic32_usbmsc.c +++ b/configs/pic32mx7mmb/src/pic32_usbmsc.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/pic32mx7mmb/src/pic32_usbmsc.c * - * Copyright (C) 2012, 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2012, 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -38,19 +38,16 @@ ****************************************************************************/ #include +#include #include "pic32mx7mmb.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ /**************************************************************************** - * Name: usbmsc_archinitialize + * Name: board_usbmsc_initialize * * Description: * Perform architecture specific initialization as needed to establish @@ -58,7 +55,7 @@ * ****************************************************************************/ -int usbmsc_archinitialize(void) +int board_usbmsc_initialize(int port) { /* If system/usbmsc is built as an NSH command, then SD slot should * already have been initialized in board_app_initialize() (see pic32_appinit.c). diff --git a/configs/sam3u-ek/src/sam_usbmsc.c b/configs/sam3u-ek/src/sam_usbmsc.c index 5cc1083cb6..1780d27b10 100644 --- a/configs/sam3u-ek/src/sam_usbmsc.c +++ b/configs/sam3u-ek/src/sam_usbmsc.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sam3u-ek/src/sam_usbmsc.c * - * Copyright (C) 2009, 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2009, 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Configure and register the SAM3U MMC/SD SDIO block driver. @@ -45,6 +45,7 @@ #include #include +#include #include #include @@ -72,14 +73,15 @@ ****************************************************************************/ /**************************************************************************** - * Name: usbmsc_archinitialize + * Name: board_usbmsc_initialize * * Description: - * Perform architecture specific initialization + * Perform architecture specific initialization as needed to establish + * the mass storage device that will be exported by the USB MSC device. * ****************************************************************************/ -int usbmsc_archinitialize(void) +int board_usbmsc_initialize(int port) { FAR struct sdio_dev_s *sdio; int ret; diff --git a/configs/sam4e-ek/src/sam_usbmsc.c b/configs/sam4e-ek/src/sam_usbmsc.c index b927d131ff..bf23302a0e 100644 --- a/configs/sam4e-ek/src/sam_usbmsc.c +++ b/configs/sam4e-ek/src/sam_usbmsc.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sam4e-ek/src/sam_usbmsc.c * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Configure and register the SAM3U MMC/SD SDIO block driver. @@ -45,6 +45,8 @@ #include #include +#include + #include "sam4e-ek.h" #ifdef CONFIG_SAM34_UDP @@ -79,14 +81,15 @@ ****************************************************************************/ /**************************************************************************** - * Name: usbmsc_archinitialize + * Name: board_usbmsc_initialize * * Description: - * Perform architecture specific initialization + * Perform architecture specific initialization as needed to establish + * the mass storage device that will be exported by the USB MSC device. * ****************************************************************************/ -int usbmsc_archinitialize(void) +int board_usbmsc_initialize(int port) { /* Initialize the AT25 MTD driver */ diff --git a/configs/sam4e-ek/usbnsh/defconfig b/configs/sam4e-ek/usbnsh/defconfig index 1c775f2106..010bb15202 100644 --- a/configs/sam4e-ek/usbnsh/defconfig +++ b/configs/sam4e-ek/usbnsh/defconfig @@ -377,6 +377,7 @@ CONFIG_SAM4EEK_AT25_FTL=y CONFIG_LIB_BOARDCTL=y # CONFIG_BOARDCTL_RESET is not set # CONFIG_BOARDCTL_UNIQUEID is not set +CONFIG_BOARDCTL_USBDEVCTRL=y # CONFIG_BOARDCTL_TSCTEST is not set # CONFIG_BOARDCTL_ADCTEST is not set # CONFIG_BOARDCTL_PWMTEST is not set diff --git a/configs/sam4s-xplained-pro/nsh/defconfig b/configs/sam4s-xplained-pro/nsh/defconfig index e0fe0856fd..6270cd7101 100644 --- a/configs/sam4s-xplained-pro/nsh/defconfig +++ b/configs/sam4s-xplained-pro/nsh/defconfig @@ -369,6 +369,7 @@ CONFIG_SAM4S_XPLAINED_PRO_CPULOAD_TIMER_DEVPATH="/dev/tc0" CONFIG_LIB_BOARDCTL=y # CONFIG_BOARDCTL_RESET is not set # CONFIG_BOARDCTL_UNIQUEID is not set +CONFIG_BOARDCTL_USBDEVCTRL=y # CONFIG_BOARDCTL_TSCTEST is not set # CONFIG_BOARDCTL_ADCTEST is not set # CONFIG_BOARDCTL_PWMTEST is not set diff --git a/configs/sama5d3-xplained/src/sam_usbmsc.c b/configs/sama5d3-xplained/src/sam_usbmsc.c index 932e27cc81..2ec32c01a6 100644 --- a/configs/sama5d3-xplained/src/sam_usbmsc.c +++ b/configs/sama5d3-xplained/src/sam_usbmsc.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d3-xplained/src/sam_usbmsc.c * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Configure and register the SAM3U MMC/SD SDIO block driver. @@ -45,6 +45,8 @@ #include #include +#include + #include "sama5d3-xplained.h" #ifdef CONFIG_USBMSC @@ -78,14 +80,15 @@ ****************************************************************************/ /**************************************************************************** - * Name: usbmsc_archinitialize + * Name: board_usbmsc_initialize * * Description: - * Perform architecture specific initialization + * Perform architecture specific initialization as needed to establish + * the mass storage device that will be exported by the USB MSC device. * ****************************************************************************/ -int usbmsc_archinitialize(void) +int board_usbmsc_initialize(int port) { /* Initialize the AT25 MTD driver */ diff --git a/configs/sama5d3x-ek/demo/defconfig b/configs/sama5d3x-ek/demo/defconfig index 5ef90b3342..76fc974b61 100644 --- a/configs/sama5d3x-ek/demo/defconfig +++ b/configs/sama5d3x-ek/demo/defconfig @@ -426,6 +426,7 @@ CONFIG_SAMA5D3xEK_USBHOST_PRIO=100 # CONFIG_SAMA5D3xEK_SLOWCLOCK is not set CONFIG_LIB_BOARDCTL=y # CONFIG_BOARDCTL_UNIQUEID is not set +CONFIG_BOARDCTL_USBDEVCTRL=y # CONFIG_BOARDCTL_TSCTEST is not set # CONFIG_BOARDCTL_ADCTEST is not set # CONFIG_BOARDCTL_PWMTEST is not set diff --git a/configs/sama5d3x-ek/src/sam_usbmsc.c b/configs/sama5d3x-ek/src/sam_usbmsc.c index 80eb0cbc22..b31ce7b098 100644 --- a/configs/sama5d3x-ek/src/sam_usbmsc.c +++ b/configs/sama5d3x-ek/src/sam_usbmsc.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d3x-ek/src/sam_usbmsc.c * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Configure and register the SAM3U MMC/SD SDIO block driver. @@ -45,6 +45,8 @@ #include #include +#include + #include "sama5d3x-ek.h" #ifdef CONFIG_USBMSC @@ -78,14 +80,15 @@ ****************************************************************************/ /**************************************************************************** - * Name: usbmsc_archinitialize + * Name: board_usbmsc_initialize * * Description: - * Perform architecture specific initialization + * Perform architecture specific initialization as needed to establish + * the mass storage device that will be exported by the USB MSC device. * ****************************************************************************/ -int usbmsc_archinitialize(void) +int board_usbmsc_initialize(int port) { /* Initialize the AT25 MTD driver */ diff --git a/configs/sama5d4-ek/src/sam_usbmsc.c b/configs/sama5d4-ek/src/sam_usbmsc.c index becb291a82..9a712d1ce1 100644 --- a/configs/sama5d4-ek/src/sam_usbmsc.c +++ b/configs/sama5d4-ek/src/sam_usbmsc.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d4-ek/src/sam_usbmsc.c * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Configure and register the SAM3U MMC/SD SDIO block driver. @@ -45,6 +45,8 @@ #include #include +#include + #include "sama5d4-ek.h" #ifdef CONFIG_USBMSC @@ -78,14 +80,15 @@ ****************************************************************************/ /**************************************************************************** - * Name: usbmsc_archinitialize + * Name: board_usbmsc_initialize * * Description: - * Perform architecture specific initialization + * Perform architecture specific initialization as needed to establish + * the mass storage device that will be exported by the USB MSC device. * ****************************************************************************/ -int usbmsc_archinitialize(void) +int board_usbmsc_initialize(int port) { /* Initialize the AT25 MTD driver */ diff --git a/configs/samv71-xult/src/Makefile b/configs/samv71-xult/src/Makefile index 46dd2e6a4f..790601ecda 100644 --- a/configs/samv71-xult/src/Makefile +++ b/configs/samv71-xult/src/Makefile @@ -1,7 +1,7 @@ ############################################################################ # configs/samv71-xult/src/Makefile # -# Copyright (C) 2015 Gregory Nutt. All rights reserved. +# Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -78,6 +78,10 @@ ifeq ($(CONFIG_USBMSC),y) CSRCS += sam_usbmsc.c endif +ifeq ($(CONFIG_USBDEV_COMPOSITE),y) +CSRCS += sam_composite.c +endif + ifeq ($(CONFIG_SAMV7_MCAN),y) CSRCS += sam_mcan.c endif diff --git a/configs/samv71-xult/src/sam_composite.c b/configs/samv71-xult/src/sam_composite.c new file mode 100644 index 0000000000..2e0f1dcea7 --- /dev/null +++ b/configs/samv71-xult/src/sam_composite.c @@ -0,0 +1,65 @@ +/**************************************************************************** + * configs/samv71-xult/src/sam_composite.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * 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 + +#include "samv71-xult.h" + +#ifdef CONFIG_USBDEV_COMPOSITE + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: board_composite_initialize + * + * Description: + * Perform architecture specific initialization of a composite USB device. + * + ****************************************************************************/ + +int board_composite_initialize(int port) +{ + return OK; +} + +#endif /* CONFIG_USBDEV_COMPOSITE */ diff --git a/configs/samv71-xult/src/sam_usbmsc.c b/configs/samv71-xult/src/sam_usbmsc.c new file mode 100644 index 0000000000..c3fc23411f --- /dev/null +++ b/configs/samv71-xult/src/sam_usbmsc.c @@ -0,0 +1,67 @@ +/**************************************************************************** + * configs/samv71-xult/src/sam_usbmsc.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * 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 + +#include "nuttx/board.h" + +#include "samv71-xult.h" + +#if defined(CONFIG_USBMSC) && !defined(CONFIG_USBMSC_COMPOSITE) + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: board_usbmsc_initialize + * + * Description: + * Perform architecture specific initialization of the USB MSC device. + * + ****************************************************************************/ + +int board_usbmsc_initialize(int port) +{ + return OK; +} + +#endif /* CONFIG_USBMSC && !CONFIG_USBMSC_COMPOSITE */ diff --git a/configs/shenzhou/src/stm32_composite.c b/configs/shenzhou/src/stm32_composite.c index 7ef4754ba1..4b6c6250a0 100644 --- a/configs/shenzhou/src/stm32_composite.c +++ b/configs/shenzhou/src/stm32_composite.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/shenzhou/src/stm32_composite.c * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. + * Copyright (C) 2012, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Configure and register the STM32 SPI-based MMC/SD block driver. @@ -60,14 +60,14 @@ ****************************************************************************/ /**************************************************************************** - * Name: composite_archinitialize + * Name: board_composite_initialize * * Description: - * Perform architecture specific initialization + * Perform architecture specific initialization of a composite USB device. * ****************************************************************************/ -int composite_archinitialize(void) +int board_composite_initialize(int port) { /* If system/composite is built as an NSH command, then SD slot should * already have been initialized in board_app_initialize() (see diff --git a/configs/shenzhou/src/stm32_usbmsc.c b/configs/shenzhou/src/stm32_usbmsc.c index 96606cf0a3..3c9911c723 100644 --- a/configs/shenzhou/src/stm32_usbmsc.c +++ b/configs/shenzhou/src/stm32_usbmsc.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/shenzhou/src/stm32_usbmsc.c * - * Copyright (C) 2012, 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2012, 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Configure and register the STM32 SPI-based MMC/SD block driver. @@ -45,6 +45,8 @@ #include #include +#include + #include "stm32.h" /**************************************************************************** @@ -61,14 +63,15 @@ ****************************************************************************/ /**************************************************************************** - * Name: usbmsc_archinitialize + * Name: board_usbmsc_initialize * * Description: - * Perform architecture specific initialization + * Perform architecture specific initialization as needed to establish + * the mass storage device that will be exported by the USB MSC device. * ****************************************************************************/ -int usbmsc_archinitialize(void) +int board_usbmsc_initialize(int port) { /* If system/usbmsc is built as an NSH command, then SD slot should * already have been initialized in board_app_initialize() (see diff --git a/configs/spark/composite/defconfig b/configs/spark/composite/defconfig index 112f95e933..0d5207bd3d 100644 --- a/configs/spark/composite/defconfig +++ b/configs/spark/composite/defconfig @@ -528,6 +528,7 @@ CONFIG_SPARK_FLASH_MINOR=0 CONFIG_LIB_BOARDCTL=y # CONFIG_BOARDCTL_RESET is not set # CONFIG_BOARDCTL_UNIQUEID is not set +CONFIG_BOARDCTL_USBDEVCTRL=y # CONFIG_BOARDCTL_TSCTEST is not set # CONFIG_BOARDCTL_ADCTEST is not set # CONFIG_BOARDCTL_PWMTEST is not set diff --git a/configs/spark/src/stm32_appinit.c b/configs/spark/src/stm32_appinit.c index 339cf3f0ac..64b253fd09 100644 --- a/configs/spark/src/stm32_appinit.c +++ b/configs/spark/src/stm32_appinit.c @@ -120,6 +120,8 @@ * Private Data ****************************************************************************/ +static bool g_app_initialzed; + /**************************************************************************** * Public Functions ****************************************************************************/ @@ -134,76 +136,84 @@ int board_app_initialize(void) { + /* Check if already initialized */ + + if (g_app_initialzed) + { + return OK; + } + #ifdef HAVE_SST25 - FAR struct spi_dev_s *spi; - FAR struct mtd_dev_s *mtd; - int ret; + { + FAR struct spi_dev_s *spi; + FAR struct mtd_dev_s *mtd; + int ret; - /* Configure SPI-based devices */ + /* Configure SPI-based devices */ + /* Get the SPI port */ - /* Get the SPI port */ + syslog(LOG_INFO, "Initializing SPI port %d\n", + CONFIG_SPARK_FLASH_SPI); - syslog(LOG_INFO, "Initializing SPI port %d\n", - CONFIG_SPARK_FLASH_SPI); + spi = stm32_spibus_initialize(CONFIG_SPARK_FLASH_SPI); + if (!spi) + { + syslog(LOG_ERR, "ERROR: Failed to initialize SPI port %d\n", + CONFIG_SPARK_FLASH_SPI); + return -ENODEV; + } - spi = stm32_spibus_initialize(CONFIG_SPARK_FLASH_SPI); - if (!spi) - { - syslog(LOG_ERR, "ERROR: Failed to initialize SPI port %d\n", - CONFIG_SPARK_FLASH_SPI); - return -ENODEV; - } + syslog(LOG_INFO, "Successfully initialized SPI port %d\n", + CONFIG_SPARK_FLASH_SPI); - syslog(LOG_INFO, "Successfully initialized SPI port %d\n", - CONFIG_SPARK_FLASH_SPI); + /* Now bind the SPI interface to the SST25 SPI FLASH driver */ - /* Now bind the SPI interface to the SST25 SPI FLASH driver */ + syslog(LOG_INFO, "Bind SPI to the SPI flash driver\n"); - syslog(LOG_INFO, "Bind SPI to the SPI flash driver\n"); - - mtd = sst25_initialize(spi); - if (!mtd) - { - syslog(LOG_ERR, "ERROR: Failed to bind SPI port %d to the SPI FLASH driver\n", - CONFIG_SPARK_FLASH_SPI); - } - else - { - syslog(LOG_INFO, "Successfully bound SPI port %d to the SPI FLASH driver\n", - CONFIG_SPARK_FLASH_SPI); - } + mtd = sst25_initialize(spi); + if (!mtd) + { + syslog(LOG_ERR, "ERROR: Failed to bind SPI port %d to the SPI FLASH driver\n", + CONFIG_SPARK_FLASH_SPI); + } + else + { + syslog(LOG_INFO, "Successfully bound SPI port %d to the SPI FLASH driver\n", + CONFIG_SPARK_FLASH_SPI); + } #ifndef CONFIG_SPARK_FLASH_PART - /* Use the FTL layer to wrap the MTD driver as a block driver */ + /* Use the FTL layer to wrap the MTD driver as a block driver */ - ret = ftl_initialize(CONFIG_SPARK_FLASH_MINOR, mtd); - if (ret < 0) - { - fdbg("ERROR: Initialize the FTL layer\n"); - return ret; - } + ret = ftl_initialize(CONFIG_SPARK_FLASH_MINOR, mtd); + if (ret < 0) + { + fdbg("ERROR: Initialize the FTL layer\n"); + return ret; + } #ifdef CONFIG_SPARK_MOUNT_FLASH - char partname[16]; - char mntpoint[16]; - - /* mount -t vfat /dev/mtdblock0 /mnt/p0 */ - - snprintf(partname, sizeof(partname), "/dev/mtdblock%d", - CONFIG_SPARK_FLASH_MINOR); - snprintf(mntpoint, sizeof(mntpoint)-1, CONFIG_SPARK_FLASH_MOUNT_POINT, - CONFIG_SPARK_FLASH_MINOR); - - /* Mount the file system at /mnt/pn */ - - ret = mount(partname, mntpoint, "vfat", 0, NULL); - if (ret < 0) { - fdbg("ERROR: Failed to mount the FAT volume: %d\n", errno); - return ret; - } + char partname[16]; + char mntpoint[16]; + /* mount -t vfat /dev/mtdblock0 /mnt/p0 */ + + snprintf(partname, sizeof(partname), "/dev/mtdblock%d", + CONFIG_SPARK_FLASH_MINOR); + snprintf(mntpoint, sizeof(mntpoint)-1, CONFIG_SPARK_FLASH_MOUNT_POINT, + CONFIG_SPARK_FLASH_MINOR); + + /* Mount the file system at /mnt/pn */ + + ret = mount(partname, mntpoint, "vfat", 0, NULL); + if (ret < 0) + { + fdbg("ERROR: Failed to mount the FAT volume: %d\n", errno); + return ret; + } + } #endif #else { @@ -269,27 +279,39 @@ int board_app_initialize(void) } } #endif /* CONFIG_SPARK_FLASH_PART */ - + } #endif /* HAVE_SST25 */ #ifdef HAVE_USBMONITOR - /* Start the USB Monitor */ + { + int ret; - ret = usbmonitor_start(0, NULL); - if (ret != OK) - { - syslog(LOG_ERR, "ERROR: Failed to start USB monitor: %d\n", ret); - } + /* Start the USB Monitor */ + + ret = usbmonitor_start(0, NULL); + if (ret != OK) + { + syslog(LOG_ERR, "ERROR: Failed to start USB monitor: %d\n", ret); + } + } #endif + g_app_initialzed = true; return OK; } -int usbmsc_archinitialize(void) +/**************************************************************************** + * Name: board_usbmsc_initialize + * + * Description: + * Perform architecture specific initialization as needed to establish + * the mass storage device that will be exported by the USB MSC device. + * + ****************************************************************************/ + +#ifdef CONFIG_BOARDCTL_USBDEVCTRL +int board_usbmsc_initialize(int port) { -#if defined(CONFIG_LIB_BOARDCTL) - return OK; -#else return board_app_initialize(); -#endif } +#endif \ No newline at end of file diff --git a/configs/spark/src/stm32_composite.c b/configs/spark/src/stm32_composite.c index c4a3f8fdb3..2720de1af4 100644 --- a/configs/spark/src/stm32_composite.c +++ b/configs/spark/src/stm32_composite.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/spark/src/stm32_composite.c * - * Copyright (C) 2012-2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2012-2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * David_s5 * @@ -46,6 +46,7 @@ #include #include +#include #ifdef CONFIG_MTD_SST25 # include @@ -120,15 +121,15 @@ ****************************************************************************/ /**************************************************************************** - * Name: do_composite_archinitialize + * Name: stm32_composite_initialize * * Description: * Perform architecture specific initialization * ****************************************************************************/ -#if !defined(CONFIG_LIB_BOARDCTL) || !defined(CONFIG_NSH_BUILTIN_APPS) -static int do_composite_archinitialize(void) +#ifndef CONFIG_NSH_BUILTIN_APPS +static int stm32_composite_initialize(void) { #ifdef HAVE_SST25 FAR struct spi_dev_s *spi; @@ -284,18 +285,18 @@ static int do_composite_archinitialize(void) ****************************************************************************/ /**************************************************************************** - * Name: board_app_initialize + * Name: board_composite_initialize * * Description: - * Perform architecture specific initialization + * Perform architecture specific initialization of a composite USB device. * ****************************************************************************/ -int composite_archinitialize(void) +int board_composite_initialize(int port) { -#if defined(CONFIG_LIB_BOARDCTL) && defined(CONFIG_NSH_BUILTIN_APPS) +#ifdef CONFIG_NSH_BUILTIN_APPS return OK; #else - return do_composite_archinitialize(); + return stm32_composite_initialize(); #endif } diff --git a/configs/spark/usbmsc/defconfig b/configs/spark/usbmsc/defconfig index 7288f66f16..338b2eb40a 100644 --- a/configs/spark/usbmsc/defconfig +++ b/configs/spark/usbmsc/defconfig @@ -528,6 +528,7 @@ CONFIG_SPARK_FLASH_MINOR=0 CONFIG_LIB_BOARDCTL=y # CONFIG_BOARDCTL_RESET is not set # CONFIG_BOARDCTL_UNIQUEID is not set +CONFIG_BOARDCTL_USBDEVCTRL=y # CONFIG_BOARDCTL_TSCTEST is not set # CONFIG_BOARDCTL_ADCTEST is not set # CONFIG_BOARDCTL_PWMTEST is not set diff --git a/configs/spark/usbnsh/defconfig b/configs/spark/usbnsh/defconfig index 31ad041781..0764706f73 100644 --- a/configs/spark/usbnsh/defconfig +++ b/configs/spark/usbnsh/defconfig @@ -524,7 +524,8 @@ CONFIG_SPARK_FLASH=y CONFIG_SPARK_FLASH_SPI=2 CONFIG_SPARK_FLASH_MINOR=0 # CONFIG_SPARK_FLASH_PART is not set -# CONFIG_LIB_BOARDCTL is not set +CONFIG_LIB_BOARDCTL=y +CONFIG_BOARDCTL_USBDEVCTRL=y # # RTOS Features diff --git a/configs/spark/usbserial/defconfig b/configs/spark/usbserial/defconfig index 7155230ebe..bb66a0eb6d 100644 --- a/configs/spark/usbserial/defconfig +++ b/configs/spark/usbserial/defconfig @@ -524,7 +524,8 @@ CONFIG_SPARK_FLASH=y CONFIG_SPARK_FLASH_SPI=2 CONFIG_SPARK_FLASH_MINOR=0 # CONFIG_SPARK_FLASH_PART is not set -# CONFIG_LIB_BOARDCTL is not set +CONFIG_LIB_BOARDCTL=y +CONFIG_BOARDCTL_USBDEVCTRL=y # # RTOS Features diff --git a/configs/stm3210e-eval/composite/defconfig b/configs/stm3210e-eval/composite/defconfig index c50a245a28..76bf2ecdc3 100644 --- a/configs/stm3210e-eval/composite/defconfig +++ b/configs/stm3210e-eval/composite/defconfig @@ -535,7 +535,8 @@ CONFIG_ARCH_HAVE_IRQBUTTONS=y # STM3210E-EVAL LCD Hardware Configuration # # CONFIG_STM3210E_LCD is not set -# CONFIG_LIB_BOARDCTL is not set +CONFIG_LIB_BOARDCTL=y +CONFIG_BOARDCTL_USBDEVCTRL=y # # RTOS Features diff --git a/configs/stm3210e-eval/nsh2/defconfig b/configs/stm3210e-eval/nsh2/defconfig index 893275dfc6..02c9c3db2f 100644 --- a/configs/stm3210e-eval/nsh2/defconfig +++ b/configs/stm3210e-eval/nsh2/defconfig @@ -557,6 +557,7 @@ CONFIG_STM3210E_R61580_DISABLE=y CONFIG_LIB_BOARDCTL=y # CONFIG_BOARDCTL_RESET is not set # CONFIG_BOARDCTL_UNIQUEID is not set +CONFIG_BOARDCTL_USBDEVCTRL=y # CONFIG_BOARDCTL_TSCTEST is not set # CONFIG_BOARDCTL_ADCTEST is not set # CONFIG_BOARDCTL_PWMTEST is not set diff --git a/configs/stm3210e-eval/src/stm32_composite.c b/configs/stm3210e-eval/src/stm32_composite.c index 2753f9a0d6..d38a3f6a52 100644 --- a/configs/stm3210e-eval/src/stm32_composite.c +++ b/configs/stm3210e-eval/src/stm32_composite.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/stm3210e-eval/src/stm32_composite.c * - * Copyright (C) 2009, 2011 Gregory Nutt. All rights reserved. + * Copyright (C) 2009, 2011, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Configure and register the STM32 MMC/SD SDIO block driver. @@ -47,13 +47,14 @@ #include #include +#include #include #include "stm32.h" /* There is nothing to do here if SDIO support is not selected. */ -#ifdef CONFIG_STM32_SDIO +#if defined(CONFIG_STM32_SDIO) && defined(CONFIG_USBDEV_COMPOSITE) /**************************************************************************** * Pre-processor Definitions @@ -80,14 +81,14 @@ ****************************************************************************/ /**************************************************************************** - * Name: composite_archinitialize + * Name: board_composite_initialize * * Description: - * Perform architecture specific initialization + * Perform architecture specific initialization of a composite USB device. * ****************************************************************************/ -int composite_archinitialize(void) +int board_composite_initialize(int port) { /* If system/composite is built as an NSH command, then SD slot should * already have been initialized in board_app_initialize() (see @@ -141,4 +142,4 @@ int composite_archinitialize(void) return OK; } -#endif /* CONFIG_STM32_SDIO */ +#endif /* CONFIG_STM32_SDIO && CONFIG_USBDEV_COMPOSITE */ diff --git a/configs/stm3210e-eval/src/stm32_idle.c b/configs/stm3210e-eval/src/stm32_idle.c index 30d2e1c01a..7620735f22 100644 --- a/configs/stm3210e-eval/src/stm32_idle.c +++ b/configs/stm3210e-eval/src/stm32_idle.c @@ -126,9 +126,6 @@ #if defined(CONFIG_PM) && defined(CONFIG_RTC_ALARM) static volatile bool g_alarmwakeup; /* Wakeup Alarm indicator */ #endif -/**************************************************************************** - * Private Functions - ****************************************************************************/ /**************************************************************************** * Private Functions diff --git a/configs/stm3210e-eval/src/stm32_usbmsc.c b/configs/stm3210e-eval/src/stm32_usbmsc.c index 18ee15415a..f9e65878aa 100644 --- a/configs/stm3210e-eval/src/stm32_usbmsc.c +++ b/configs/stm3210e-eval/src/stm32_usbmsc.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/stm3210e-eval/src/stm32_usbmsc.c * - * Copyright (C) 2009, 2011, 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2009, 2011, 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Configure and register the STM32 MMC/SD SDIO block driver. @@ -45,6 +45,7 @@ #include #include +#include #include #include @@ -79,14 +80,15 @@ ****************************************************************************/ /**************************************************************************** - * Name: usbmsc_archinitialize + * Name: board_usbmsc_initialize * * Description: - * Perform architecture specific initialization + * Perform architecture specific initialization as needed to establish + * the mass storage device that will be exported by the USB MSC device. * ****************************************************************************/ -int usbmsc_archinitialize(void) +int board_usbmsc_initialize(int port) { /* If system/usbmsc is built as an NSH command, then SD slot should * already have been initialized in board_app_initialize() (see stm32_appinit.c). diff --git a/configs/stm3210e-eval/usbmsc/defconfig b/configs/stm3210e-eval/usbmsc/defconfig index dd2232dd9b..c3aa35d640 100644 --- a/configs/stm3210e-eval/usbmsc/defconfig +++ b/configs/stm3210e-eval/usbmsc/defconfig @@ -528,7 +528,8 @@ CONFIG_ARCH_HAVE_IRQBUTTONS=y # STM3210E-EVAL LCD Hardware Configuration # # CONFIG_STM3210E_LCD is not set -# CONFIG_LIB_BOARDCTL is not set +CONFIG_LIB_BOARDCTL=y +CONFIG_BOARDCTL_USBDEVCTRL=y # # RTOS Features diff --git a/configs/stm3210e-eval/usbserial/defconfig b/configs/stm3210e-eval/usbserial/defconfig index ebb524481e..8ab750521f 100644 --- a/configs/stm3210e-eval/usbserial/defconfig +++ b/configs/stm3210e-eval/usbserial/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -121,6 +123,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -520,7 +523,15 @@ CONFIG_ARCH_HAVE_IRQBUTTONS=y # STM3210E-EVAL LCD Hardware Configuration # # CONFIG_STM3210E_LCD is not set -# CONFIG_LIB_BOARDCTL is not set +CONFIG_LIB_BOARDCTL=y +# CONFIG_BOARDCTL_RESET is not set +# CONFIG_BOARDCTL_UNIQUEID is not set +CONFIG_BOARDCTL_USBDEVCTRL=y +# CONFIG_BOARDCTL_TSCTEST is not set +# CONFIG_BOARDCTL_ADCTEST is not set +# CONFIG_BOARDCTL_PWMTEST is not set +# CONFIG_BOARDCTL_GRAPHICS is not set +# CONFIG_BOARDCTL_IOCTL is not set # # RTOS Features @@ -892,6 +903,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # diff --git a/configs/stm32_tiny/usbnsh/defconfig b/configs/stm32_tiny/usbnsh/defconfig index b6c8465265..a481b03737 100644 --- a/configs/stm32_tiny/usbnsh/defconfig +++ b/configs/stm32_tiny/usbnsh/defconfig @@ -507,7 +507,8 @@ CONFIG_NSH_MMCSDMINOR=0 # # Board-Specific Options # -# CONFIG_LIB_BOARDCTL is not set +CONFIG_LIB_BOARDCTL=y +CONFIG_BOARDCTL_USBDEVCTRL=y # # RTOS Features diff --git a/configs/stm32f3discovery/nsh/defconfig b/configs/stm32f3discovery/nsh/defconfig index f8620fb02f..68eecba137 100644 --- a/configs/stm32f3discovery/nsh/defconfig +++ b/configs/stm32f3discovery/nsh/defconfig @@ -524,7 +524,8 @@ CONFIG_NSH_MMCSDMINOR=0 # # Board-Specific Options # -# CONFIG_LIB_BOARDCTL is not set +CONFIG_LIB_BOARDCTL=y +CONFIG_BOARDCTL_USBDEVCTRL=y # # RTOS Features diff --git a/configs/stm32f3discovery/usbnsh/defconfig b/configs/stm32f3discovery/usbnsh/defconfig index f38bbfe8ab..07b1061312 100644 --- a/configs/stm32f3discovery/usbnsh/defconfig +++ b/configs/stm32f3discovery/usbnsh/defconfig @@ -80,6 +80,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -98,6 +99,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -126,6 +128,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -534,6 +537,7 @@ CONFIG_NSH_MMCSDMINOR=0 CONFIG_LIB_BOARDCTL=y # CONFIG_BOARDCTL_RESET is not set # CONFIG_BOARDCTL_UNIQUEID is not set +CONFIG_BOARDCTL_USBDEVCTRL=y # CONFIG_BOARDCTL_TSCTEST is not set # CONFIG_BOARDCTL_ADCTEST is not set # CONFIG_BOARDCTL_PWMTEST is not set @@ -784,8 +788,8 @@ CONFIG_CDCACM_EPBULKOUT_HSSIZE=512 CONFIG_CDCACM_EPBULKIN=2 CONFIG_CDCACM_EPBULKIN_FSSIZE=64 CONFIG_CDCACM_EPBULKIN_HSSIZE=512 -CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_NRDREQS=4 +CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_BULKIN_REQLEN=96 CONFIG_CDCACM_RXBUFSIZE=256 CONFIG_CDCACM_TXBUFSIZE=256 @@ -915,6 +919,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # diff --git a/configs/stm32f429i-disco/usbnsh/defconfig b/configs/stm32f429i-disco/usbnsh/defconfig index 89a208c2cf..ef6f4296b8 100644 --- a/configs/stm32f429i-disco/usbnsh/defconfig +++ b/configs/stm32f429i-disco/usbnsh/defconfig @@ -550,6 +550,7 @@ CONFIG_NSH_MMCSDMINOR=0 CONFIG_LIB_BOARDCTL=y # CONFIG_BOARDCTL_RESET is not set # CONFIG_BOARDCTL_UNIQUEID is not set +CONFIG_BOARDCTL_USBDEVCTRL=y # CONFIG_BOARDCTL_TSCTEST is not set # CONFIG_BOARDCTL_ADCTEST is not set # CONFIG_BOARDCTL_PWMTEST is not set diff --git a/configs/stm32f4discovery/usbnsh/defconfig b/configs/stm32f4discovery/usbnsh/defconfig index 090a7c7d10..226452e5c2 100644 --- a/configs/stm32f4discovery/usbnsh/defconfig +++ b/configs/stm32f4discovery/usbnsh/defconfig @@ -559,6 +559,7 @@ CONFIG_NSH_MMCSDMINOR=0 CONFIG_LIB_BOARDCTL=y # CONFIG_BOARDCTL_RESET is not set # CONFIG_BOARDCTL_UNIQUEID is not set +CONFIG_BOARDCTL_USBDEVCTRL=y # CONFIG_BOARDCTL_TSCTEST is not set # CONFIG_BOARDCTL_ADCTEST is not set # CONFIG_BOARDCTL_PWMTEST is not set diff --git a/configs/stm32l476vg-disco/include/board.h b/configs/stm32l476vg-disco/include/board.h index 2aecdc73ec..1c4d5fa334 100644 --- a/configs/stm32l476vg-disco/include/board.h +++ b/configs/stm32l476vg-disco/include/board.h @@ -1,7 +1,7 @@ /************************************************************************************ * configs/stm32l476vg-disco/include/board.h * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2016 Gregory Nutt. All rights reserved. * Author: dev@ziggurat29.com * * Redistribution and use in source and binary forms, with or without @@ -55,7 +55,6 @@ #include - /* DMA Channel/Stream Selections ****************************************************/ /* Stream selections are arbitrary for now but might become important in the future * is we set aside more DMA channels/streams. @@ -63,7 +62,7 @@ /* Values defined in arch/arm/src/stm32l4/chip/stm32l4x6xx_dma.h */ -/*XXX are these used on disco? */ +/* XXX are these used on disco? */ #if 0 @@ -125,7 +124,7 @@ /* * XXX Is I2C2 used on Disco? -*/ + */ #if 0 @@ -143,7 +142,7 @@ /* * XXX is SPI1 used on Disco? -*/ + */ #if 0 @@ -154,19 +153,17 @@ #endif -/* - * SPI2 is used for several peripherals on the Discovery board, including +/* SPI2 is used for several peripherals on the Discovery board, including * L3GD20 - 3 axis Gyroscope * LSM303CTR - eCompass, comprising an accelerometer and magnetometer -*/ + */ #define GPIO_SPI2_MISO GPIO_SPI2_MISO_3 #define GPIO_SPI2_MOSI GPIO_SPI2_MOSI_3 #define GPIO_SPI2_SCK GPIO_SPI2_SCK_3 -/* - * PD7; gyroscope CS -*/ +/* PD7; gyroscope CS */ + #define GPIO_SPI_CS_GYRO_OFF \ (GPIO_INPUT | GPIO_PULLDOWN | GPIO_SPEED_2MHz | \ GPIO_PORTD | GPIO_PIN7) @@ -174,9 +171,8 @@ (GPIO_OUTPUT | GPIO_PUSHPULL | GPIO_SPEED_2MHz | \ GPIO_OUTPUT_SET | GPIO_PORTD | GPIO_PIN7) -/* - * PE0; accelerometer CS -*/ +/* PE0; accelerometer CS */ + #define GPIO_SPI_CS_ACCEL_OFF \ (GPIO_INPUT | GPIO_PULLDOWN | GPIO_SPEED_2MHz | \ GPIO_PORTE | GPIO_PIN0) @@ -184,9 +180,8 @@ (GPIO_OUTPUT | GPIO_PUSHPULL | GPIO_SPEED_2MHz | \ GPIO_OUTPUT_SET | GPIO_PORTE | GPIO_PIN0) -/* - * PC0; magnetometer CS -*/ +/* PC0; magnetometer CS */ + #define GPIO_SPI_CS_MAGNETO_OFF \ (GPIO_INPUT | GPIO_PULLDOWN | GPIO_SPEED_2MHz | \ GPIO_PORTC | GPIO_PIN0) @@ -194,16 +189,14 @@ (GPIO_OUTPUT | GPIO_PUSHPULL | GPIO_SPEED_2MHz | \ GPIO_OUTPUT_SET | GPIO_PORTC | GPIO_PIN0) - -/* - XXX these will need to be set up when these get implemented: - PD2 gyro INT1 - PB8 gyro INT2/DRDY - - PE1 accel INT - PC2 magneto DRDY - PC1 magneto INT -*/ +/* XXX these will need to be set up when these get implemented: + * PD2 gyro INT1 + * PB8 gyro INT2/DRDY + * + * PE1 accel INT + * PC2 magneto DRDY + * PC1 magneto INT + */ /* LEDs * @@ -233,13 +226,13 @@ * * SYMBOL Meaning BOARD_LED_GRN BOARD_LED_RED * ------------------- ----------------------- ----------- ------------ - * LED_STARTED NuttX has been started - * LED_HEAPALLOCATE Heap has been allocated - * LED_IRQSENABLED Interrupts enabled - * LED_STACKCREATED Idle stack created - * LED_INIRQ In an interrupt - * LED_SIGNAL In a signal handler - * LED_ASSERTION An assertion failed + * LED_STARTED NuttX has been started + * LED_HEAPALLOCATE Heap has been allocated + * LED_IRQSENABLED Interrupts enabled + * LED_STACKCREATED Idle stack created + * LED_INIRQ In an interrupt + * LED_SIGNAL In a signal handler + * LED_ASSERTION An assertion failed * LED_PANIC The system has crashed Blinking * LED_IDLE MCU is is sleep mode ON * diff --git a/configs/stm32l476vg-disco/include/stm32l476vg-disco-clocking.h b/configs/stm32l476vg-disco/include/stm32l476vg-disco-clocking.h index 5e476e42c3..c4eee60967 100644 --- a/configs/stm32l476vg-disco/include/stm32l476vg-disco-clocking.h +++ b/configs/stm32l476vg-disco/include/stm32l476vg-disco-clocking.h @@ -1,7 +1,7 @@ /************************************************************************************ * configs/stm32l476vg-disco/include/stm32l476vg-disco-clocking.h * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2016 Gregory Nutt. All rights reserved. * Author: dev@ziggurat29.com * * Redistribution and use in source and binary forms, with or without @@ -68,12 +68,12 @@ #define STM32L4_LSE_FREQUENCY 32768 /* XXX review the STM32L4_BOARD_USEHSI usage, it has too much influence in - stm32l4x6xx_rcc.c. I suspect it is fine for it to turn on and off that - ocillator, but really that's all it should do (e.g. it also controls - input of teh PLLs. Also, it should be fine/desireable to support things - like turning on both HSI and MSI, because they plausibly can both be - used at the same time; currently those choices HSE/HSI16/MSI are - mutually exclusive. + * stm32l4x6xx_rcc.c. I suspect it is fine for it to turn on and off that + * ocillator, but really that's all it should do (e.g. it also controls + * input of teh PLLs. Also, it should be fine/desireable to support things + * like turning on both HSI and MSI, because they plausibly can both be + * used at the same time; currently those choices HSE/HSI16/MSI are + * mutually exclusive. */ #define STM32L4_BOARD_USEHSI 1 @@ -84,11 +84,11 @@ #define STM32L4_PLLCFG_PLLM RCC_PLLCFG_PLLM(1) /* 'main' PLL config; we use this to generate our system clock via the R - output. We set it up as - 16 MHz / 1 * 10 / 2 = 80 MHz - XXX NOTE: currently the main PLL is implicitly turned on and is implicitly - the system clock; this should be configurable since not all applications may - want things done this way. + * output. We set it up as 16 MHz / 1 * 10 / 2 = 80 MHz + * + * XXX NOTE: currently the main PLL is implicitly turned on and is implicitly + * the system clock; this should be configurable since not all applications may + * want things done this way. */ #define STM32L4_PLLCFG_PLLN RCC_PLLCFG_PLLN(10) @@ -100,14 +100,15 @@ #define STM32L4_PLLCFG_PLLR_ENABLED /* 'SAIPLL1' is used to generate the 48 MHz clock, since we can't - do that with the main PLL's N value. We set N = 13, and enable - the Q output (ultimately for CLK48) with /4. So, - 16 MHz / 1 * 12 / 4 = 48 MHz - XXX NOTE: currently the SAIPLL /must/ be explicitly selected in the - menuconfig, or else all this is a moot point, and the various 48 MHz - peripherals will not work (RNG at present). I would suggest removing - that option from Kconfig altogether, and simply making it an option - that is selected via a #define here, like all these other params. + * do that with the main PLL's N value. We set N = 13, and enable + * the Q output (ultimately for CLK48) with /4. So, + * 16 MHz / 1 * 12 / 4 = 48 MHz + * + * XXX NOTE: currently the SAIPLL /must/ be explicitly selected in the + * menuconfig, or else all this is a moot point, and the various 48 MHz + * peripherals will not work (RNG at present). I would suggest removing + * that option from Kconfig altogether, and simply making it an option + * that is selected via a #define here, like all these other params. */ #define STM32L4_PLLSAI1CFG_PLLN RCC_PLLSAI1CFG_PLLN(12) @@ -171,7 +172,6 @@ */ /* REVISIT : this can be configured */ - /************************************************************************************ * Public Data ************************************************************************************/ diff --git a/configs/stm32l476vg-disco/nsh/Make.defs b/configs/stm32l476vg-disco/nsh/Make.defs index 2657b17a25..eac292a8bd 100644 --- a/configs/stm32l476vg-disco/nsh/Make.defs +++ b/configs/stm32l476vg-disco/nsh/Make.defs @@ -1,7 +1,7 @@ ############################################################################ # configs/stm32l476vg-disco/nsh/Make.defs # -# Copyright (C) 2014 Gregory Nutt. All rights reserved. +# Copyright (C) 2016 Gregory Nutt. All rights reserved. # Author: dev@ziggurat29.com # # Redistribution and use in source and binary forms, with or without diff --git a/configs/stm32l476vg-disco/nsh/setenv.sh b/configs/stm32l476vg-disco/nsh/setenv.sh index 0ddf91c968..d94f2f9066 100644 --- a/configs/stm32l476vg-disco/nsh/setenv.sh +++ b/configs/stm32l476vg-disco/nsh/setenv.sh @@ -1,7 +1,7 @@ #!/bin/bash # configs/stm32l476vg-disco/nsh/setenv.sh # -# Copyright (C) 2014 Gregory Nutt. All rights reserved. +# Copyright (C) 2016 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without diff --git a/configs/stm32l476vg-disco/scripts/ld.script b/configs/stm32l476vg-disco/scripts/ld.script index 4803de83ee..b412f80076 100644 --- a/configs/stm32l476vg-disco/scripts/ld.script +++ b/configs/stm32l476vg-disco/scripts/ld.script @@ -1,7 +1,7 @@ /**************************************************************************** * configs/stm32l476vg-disco/scripts/l476rg.ld * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * Sebastien Lorquet * dev@ziggurat29.com diff --git a/configs/stm32l476vg-disco/src/Makefile b/configs/stm32l476vg-disco/src/Makefile index d76cf3710a..64e8fa360c 100644 --- a/configs/stm32l476vg-disco/src/Makefile +++ b/configs/stm32l476vg-disco/src/Makefile @@ -46,10 +46,6 @@ ifeq ($(CONFIG_STM32_OTGFS),y) CSRCS += stm32_usb.c endif -ifeq ($(CONFIG_HAVE_CXX),y) -CSRCS += stm32_cxxinitialize.c -endif - ifeq ($(CONFIG_ARCH_LEDS),y) CSRCS += stm32_autoleds.c else @@ -67,8 +63,8 @@ ifeq ($(CONFIG_AJOYSTICK),y) endif endif -ifeq ($(CONFIG_NSH_LIBRARY),y) -CSRCS += stm32_nsh.c +ifeq ($(CONFIG_LIB_BOARDCTL),y) +CSRCS += stm32_appinit.c endif include $(TOPDIR)/configs/Board.mk diff --git a/configs/stm32l476vg-disco/src/stm32_nsh.c b/configs/stm32l476vg-disco/src/stm32_appinit.c similarity index 78% rename from configs/stm32l476vg-disco/src/stm32_nsh.c rename to configs/stm32l476vg-disco/src/stm32_appinit.c index 324a6b1003..1b9056b75d 100644 --- a/configs/stm32l476vg-disco/src/stm32_nsh.c +++ b/configs/stm32l476vg-disco/src/stm32_appinit.c @@ -1,90 +1,77 @@ -/**************************************************************************** - * configs/stm32l476vg-disco/src/stm32_nsh.c - * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * 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 -#include -#include - -#include -#include - -#include -#include - -#include - -#include "stm32l476vg-disco.h" - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: board_app_initialize - * - * Description: - * Perform architecture specific initialization - * - ****************************************************************************/ - -int board_app_initialize(void) -{ - - /* Configure CPU load estimation */ - -#ifdef CONFIG_SCHED_INSTRUMENTATION - cpuload_initialize_once(); -#endif - - return OK; -} +/**************************************************************************** + * configs/stm32l476vg-disco/src/stm32_appinit.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * 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 +#include +#include + +#include +#include + +#include +#include + +#include + +#include "stm32l476vg-disco.h" + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: board_app_initialize + * + * Description: + * Perform architecture specific initialization + * + ****************************************************************************/ + +int board_app_initialize(void) +{ + /* Configure CPU load estimation */ + +#ifdef CONFIG_SCHED_INSTRUMENTATION + cpuload_initialize_once(); +#endif + + return OK; +} diff --git a/configs/stm32l476vg-disco/src/stm32_autoleds.c b/configs/stm32l476vg-disco/src/stm32_autoleds.c index d5389c4987..22ee677176 100644 --- a/configs/stm32l476vg-disco/src/stm32_autoleds.c +++ b/configs/stm32l476vg-disco/src/stm32_autoleds.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/stm32l476vg-disco/src/stm32_autoleds.c * - * Copyright (C) 2014-2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2016 Gregory Nutt. All rights reserved. * Author: dev@ziggurat29.com * * Redistribution and use in source and binary forms, with or without @@ -70,14 +70,6 @@ # define ledvdbg(x...) #endif -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ @@ -89,6 +81,7 @@ void board_autoled_initialize(void) { /* Configure LD4,5 GPIO for output */ + stm32l4_configgpio(GPIO_LED_RED); stm32l4_configgpio(GPIO_LED_GRN); } @@ -106,6 +99,7 @@ void board_autoled_on(int led) * Since the LEDs were initially all OFF and since this state only * occurs one time, nothing need be done. */ + default: case LED_STARTED: case LED_HEAPALLOCATE: @@ -116,6 +110,7 @@ void board_autoled_on(int led) * * This case will also occur only once. */ + case LED_STACKCREATED: break; @@ -123,6 +118,7 @@ void board_autoled_on(int led) * * This case will occur many times. */ + case LED_INIRQ: case LED_SIGNAL: case LED_ASSERTION: @@ -133,11 +129,12 @@ void board_autoled_on(int led) * * This case will also occur many times. */ + case LED_PANIC: stm32l4_gpiowrite(GPIO_LED_GRN, false); stm32l4_gpiowrite(GPIO_LED_RED, true); break; - + case LED_IDLE: stm32l4_gpiowrite(GPIO_LED_GRN, true); stm32l4_gpiowrite(GPIO_LED_RED, false); @@ -158,6 +155,7 @@ void board_autoled_off(int led) * * These cases should never happen. */ + default: case LED_STARTED: case LED_HEAPALLOCATE: @@ -169,6 +167,7 @@ void board_autoled_off(int led) * * This case will occur many times. */ + case LED_INIRQ: case LED_SIGNAL: case LED_ASSERTION: @@ -179,11 +178,12 @@ void board_autoled_off(int led) * * This case will also occur many times. */ + case LED_PANIC: stm32l4_gpiowrite(GPIO_LED_GRN, false); stm32l4_gpiowrite(GPIO_LED_RED, false); break; - + case LED_IDLE: stm32l4_gpiowrite(GPIO_LED_GRN, false); stm32l4_gpiowrite(GPIO_LED_RED, false); diff --git a/configs/stm32l476vg-disco/src/stm32_boot.c b/configs/stm32l476vg-disco/src/stm32_boot.c index e3fde9ed25..5886183380 100644 --- a/configs/stm32l476vg-disco/src/stm32_boot.c +++ b/configs/stm32l476vg-disco/src/stm32_boot.c @@ -1,7 +1,7 @@ /************************************************************************************ * configs/stm32l476vg-disco/src/stm32_boot.c * - * Copyright (C) 2014-2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * dev@ziggurat29.com * @@ -51,14 +51,6 @@ #include "up_arch.h" #include "stm32l476vg-disco.h" -/************************************************************************************ - * Pre-processor Definitions - ************************************************************************************/ - -/************************************************************************************ - * Private Data - ************************************************************************************/ - /************************************************************************************ * Public Functions ************************************************************************************/ @@ -123,6 +115,5 @@ void board_initialize(void) #if defined(CONFIG_NSH_LIBRARY) && !defined(CONFIG_NSH_ARCHINIT) board_app_initialize(); #endif - } #endif diff --git a/configs/stm32l476vg-disco/src/stm32_buttons.c b/configs/stm32l476vg-disco/src/stm32_buttons.c index c5ff1daa15..7317f54168 100644 --- a/configs/stm32l476vg-disco/src/stm32_buttons.c +++ b/configs/stm32l476vg-disco/src/stm32_buttons.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/stm32l476vg-disco/src/stm32_buttons.c * - * Copyright (C) 2014-2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2016 Gregory Nutt. All rights reserved. * Author: dev@ziggurat29.com * * Redistribution and use in source and binary forms, with or without @@ -73,8 +73,8 @@ static int button_pm_prepare(struct pm_callback_s *cb, enum pm_state_e pmstate); * Private Data ****************************************************************************/ -/* Pin configuration for each STM32L476 Discovery button. This array is indexed by - * the BUTTON_* definitions in board.h +/* Pin configuration for each STM32L476 Discovery button. This array is + * indexed by the BUTTON_* definitions in board.h */ static const uint32_t g_buttons[NUM_BUTTONS] = @@ -100,7 +100,7 @@ static struct pm_callback_s g_buttonscb = /**************************************************************************** * Private Functions ****************************************************************************/ - + /**************************************************************************** * Name: button_pm_notify * @@ -161,13 +161,14 @@ static void button_pm_notify(struct pm_callback_s *cb , enum pm_state_e pmstate) * ****************************************************************************/ /* XXX it's not completely clear to me if this is appropriate; on the one - hand, it seems to make sense that this would be the module to have the ISR - for the buttons. On the other hand, it will conflict with things done in - the buttons example, which registers it's own ISR, and warns if it sees - one already there. I don't know if 'buttons' is overstepping it's bounds - in the interst of providing a compact example, (like the I2C app directly - talking to the bus), or if really that should be an expected thing to do. + * hand, it seems to make sense that this would be the module to have the ISR + * for the buttons. On the other hand, it will conflict with things done in + * the buttons example, which registers it's own ISR, and warns if it sees + * one already there. I don't know if 'buttons' is overstepping it's bounds + * in the interst of providing a compact example, (like the I2C app directly + * talking to the bus), or if really that should be an expected thing to do. */ + #if 0 #ifdef CONFIG_ARCH_IRQBUTTONS static int button_handler(int irq, FAR void *context) @@ -237,8 +238,10 @@ void board_button_initialize(void) { stm32l4_configgpio(g_buttons[i]); -//It's not clear if this is correct; I think so, but then there are -//conflicts with the 'buttons' sample app. + /* It's not clear if this is correct; I think so, but then there are + * conflicts with the 'buttons' sample app. + */ + #if 0 #ifdef CONFIG_ARCH_IRQBUTTONS xcpt_t oldhandler = board_button_irq(i, button_handler); @@ -250,10 +253,7 @@ void board_button_initialize(void) } #endif #endif - } - - } /**************************************************************************** @@ -269,26 +269,27 @@ uint8_t board_buttons(void) for (i = 0; i < NUM_BUTTONS; i++) { - /* A HIGH value means that the key is pressed. - */ + /* A HIGH value means that the key is pressed. */ - bool pressed = stm32l4_gpioread(g_buttons[i]); + bool pressed = stm32l4_gpioread(g_buttons[i]); - /* Accumulate the set of depressed (not released) keys */ + /* Accumulate the set of depressed (not released) keys */ - if (pressed) - { - ret |= (1 << i); - } + if (pressed) + { + ret |= (1 << i); + } } - - /* if the user pressed any buttons, notify power management system we are active - */ + + /* if the user pressed any buttons, notify power management system we are + * active + */ + #ifdef CONFIG_PM if ( 0 != ret ) - { - pm_activity ( CONFIG_PM_BUTTON_ACTIVITY ); - } + { + pm_activity(CONFIG_PM_BUTTON_ACTIVITY); + } #endif return ret; @@ -328,6 +329,7 @@ xcpt_t board_button_irq(int id, xcpt_t irqhandler) { oldhandler = stm32l4_gpiosetevent(g_buttons[id], true, true, true, irqhandler); } + return oldhandler; } #endif diff --git a/configs/stm32l476vg-disco/src/stm32_clockconfig.c b/configs/stm32l476vg-disco/src/stm32_clockconfig.c index 23bc8a60c4..e6eff7bc01 100644 --- a/configs/stm32l476vg-disco/src/stm32_clockconfig.c +++ b/configs/stm32l476vg-disco/src/stm32_clockconfig.c @@ -1,7 +1,7 @@ /************************************************************************************ * configs/stm32l476vg-disco/src/stm32_clockconfig.c * - * Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. + * Copyright (C) 2016 Gregory Nutt. All rights reserved. * Author: dev@ziggurat29.com * * Redistribution and use in source and binary forms, with or without @@ -44,18 +44,9 @@ #include #include - #include "up_arch.h" #include "stm32l476vg-disco.h" -/************************************************************************************ - * Pre-processor Definitions - ************************************************************************************/ - -/************************************************************************************ - * Private Functions - ************************************************************************************/ - /************************************************************************************ * Public Functions ************************************************************************************/ @@ -79,7 +70,7 @@ void stm32l4_board_clockconfig(void) uint32_t regval; /* Enable Internal High-Speed Clock (HSI) */ - + regval = getreg32(STM32L4_RCC_CR); regval |= RCC_CR_HSION; /* Enable HSI */ putreg32(regval, STM32L4_RCC_CR); @@ -91,7 +82,7 @@ void stm32l4_board_clockconfig(void) } /* Set the HCLK source/divider */ - + regval = getreg32(STM32L4_RCC_CFGR); regval &= ~RCC_CFGR_HPRE_MASK; regval |= STM32L4_RCC_CFGR_HPRE; @@ -126,7 +117,8 @@ void stm32l4_board_clockconfig(void) /* XXX The choice of clock source to PLL (all three) is independent * of the sys clock source choice, review the STM32L4_BOARD_USEHSI * name; probably split it into two, one for PLL source and one - * for sys clock source */ + * for sys clock source. + */ regval |= RCC_PLLCFG_PLLSRC_HSI; putreg32(regval, STM32L4_RCC_PLLCFG); @@ -229,16 +221,17 @@ void stm32l4_board_clockconfig(void) stm32l4_rcc_enablelse(); #endif - /*XXX sanity if sdmmc1 or usb or rng, then we need to set the clk48 source + /* XXX sanity if sdmmc1 or usb or rng, then we need to set the clk48 source * and then we can also do away with STM32L4_USE_CLK48, and give better - * warning messages */ - /*XXX sanity if our STM32L4_CLK48_SEL is YYY then we need to have already - * enabled ZZZ */ + * warning messages + * + * XXX sanity if our STM32L4_CLK48_SEL is YYY then we need to have already + * enabled ZZZ + */ regval = getreg32(STM32L4_RCC_CCIPR); regval &= RCC_CCIPR_CLK48SEL_MASK; regval |= STM32L4_CLK48_SEL; putreg32(regval, STM32L4_RCC_CCIPR); - } #endif diff --git a/configs/stm32l476vg-disco/src/stm32_cxxinitialize.c b/configs/stm32l476vg-disco/src/stm32_cxxinitialize.c deleted file mode 100644 index 2df032264b..0000000000 --- a/configs/stm32l476vg-disco/src/stm32_cxxinitialize.c +++ /dev/null @@ -1,154 +0,0 @@ -/************************************************************************************ - * configs/stm32l476vg-disco/src/stm32_cxxinitialize.c - * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * 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 - -#include - -#include -#include "chip.h" - -#if defined(CONFIG_HAVE_CXX) && defined(CONFIG_HAVE_CXXINITIALIZE) - -/************************************************************************************ - * Pre-processor Definitions - ************************************************************************************/ -/* Debug ****************************************************************************/ -/* Non-standard debug that may be enabled just for testing the static constructors */ - -#ifndef CONFIG_DEBUG -# undef CONFIG_DEBUG_CXX -#endif - -#ifdef CONFIG_DEBUG_CXX -# define cxxdbg dbg -# define cxxlldbg lldbg -# ifdef CONFIG_DEBUG_VERBOSE -# define cxxvdbg vdbg -# define cxxllvdbg llvdbg -# else -# define cxxvdbg(x...) -# define cxxllvdbg(x...) -# endif -#else -# define cxxdbg(x...) -# define cxxlldbg(x...) -# define cxxvdbg(x...) -# define cxxllvdbg(x...) -#endif - -/************************************************************************************ - * Private Types - ************************************************************************************/ -/* This type defines one entry in initialization array */ - -typedef void (*initializer_t)(void); - -/************************************************************************************ - * External references - ************************************************************************************/ -/* _sinit and _einit are symbols exported by the linker script that mark the - * beginning and the end of the C++ initialization section. - */ - -extern initializer_t _sinit; -extern initializer_t _einit; - -/* _stext and _etext are symbols exported by the linker script that mark the - * beginning and the end of text. - */ - -extern uint32_t _stext; -extern uint32_t _etext; - -/************************************************************************************ - * Private Functions - ************************************************************************************/ - -/************************************************************************************ - * Public Functions - ************************************************************************************/ - -/**************************************************************************** - * Name: up_cxxinitialize - * - * Description: - * If C++ and C++ static constructors are supported, then this function - * must be provided by board-specific logic in order to perform - * initialization of the static C++ class instances. - * - * This function should then be called in the application-specific - * user_start logic in order to perform the C++ initialization. NOTE - * that no component of the core NuttX RTOS logic is involved; This - * function defintion only provides the 'contract' between application - * specific C++ code and platform-specific toolchain support - * - ****************************************************************************/ - -void up_cxxinitialize(void) -{ - initializer_t *initp; - - cxxdbg("_sinit: %p _einit: %p _stext: %p _etext: %p\n", - &_sinit, &_einit, &_stext, &_etext); - - /* Visit each entry in the initialzation table */ - - for (initp = &_sinit; initp != &_einit; initp++) - { - initializer_t initializer = *initp; - cxxdbg("initp: %p initializer: %p\n", initp, initializer); - - /* Make sure that the address is non-NULL and lies in the text region - * defined by the linker script. Some toolchains may put NULL values - * or counts in the initialization table - */ - - if ((void*)initializer > (void*)&_stext && (void*)initializer < (void*)&_etext) - { - cxxdbg("Calling %p\n", initializer); - initializer(); - } - } -} - -#endif /* CONFIG_HAVE_CXX && CONFIG_HAVE_CXXINITIALIZE */ - diff --git a/configs/stm32l476vg-disco/src/stm32_spi.c b/configs/stm32l476vg-disco/src/stm32_spi.c index 205a6a5e60..c37d3a7a7c 100644 --- a/configs/stm32l476vg-disco/src/stm32_spi.c +++ b/configs/stm32l476vg-disco/src/stm32_spi.c @@ -1,271 +1,271 @@ -/**************************************************************************** - * configs/stm32l476vg-disco/src/stm32_spi.c - * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * 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 -#include -#include -#include - -#include -#include - -#include -#include -#include - -#include "stm32l476vg-disco.h" - -#if defined(CONFIG_STM32_SPI1) || defined(CONFIG_STM32_SPI2) || defined(CONFIG_STM32_SPI3) - -/************************************************************************************ - * Pre-processor Definitions - ************************************************************************************/ - -/* Enables debug output from this file */ - -#ifndef CONFIG_DEBUG -# undef CONFIG_DEBUG_SPI -# undef CONFIG_DEBUG_VERBOSE -#endif - -#ifdef CONFIG_DEBUG_SPI -# define spidbg lldbg -# ifdef CONFIG_DEBUG_VERBOSE -# define spivdbg lldbg -# else -# define spivdbg(x...) -# endif -#else -# define spidbg(x...) -# define spivdbg(x...) -#endif - -/************************************************************************************ - * Public Data - ************************************************************************************/ -/* Global driver instances */ - -#ifdef CONFIG_STM32_SPI1 -xxx -struct spi_dev_s *g_spi1; -#endif -#ifdef CONFIG_STM32_SPI2 -yyy -struct spi_dev_s *g_spi2; -#endif - -/************************************************************************************ - * Public Functions - ************************************************************************************/ - -/************************************************************************************ - * Name: stm32_spiinitialize - * - * Description: - * Called to configure SPI chip select GPIO pins for the Nucleo-F401RE and - * Nucleo-F411RE boards. - * - ************************************************************************************/ - -void weak_function stm32_spiinitialize(void) -{ -#ifdef CONFIG_STM32_SPI1 - /* Configure SPI-based devices */ - - g_spi1 = up_spiinitialize(1); - if (!g_spi1) - { - spidbg("[boot] FAILED to initialize SPI port 1\n"); - } - -#ifdef CONFIG_WL_CC3000 - stm32_configgpio(GPIO_SPI_CS_WIFI); -#endif - -#ifdef HAVE_MMCSD - stm32_configgpio(GPIO_SPI_CS_SD_CARD); -#endif -#endif - -#ifdef CONFIG_STM32_SPI2 - /* Configure SPI-based devices */ - - g_spi2 = up_spiinitialize(2); - - /* Setup CS, EN & IRQ line IOs */ - -#ifdef CONFIG_WL_CC3000 - stm32_configgpio(GPIO_WIFI_CS); - stm32_configgpio(GPIO_WIFI_EN); - stm32_configgpio(GPIO_WIFI_INT); -#endif -#endif -} - -/**************************************************************************** - * Name: stm32_spi1/2/3select and stm32_spi1/2/3status - * - * Description: - * The external functions, stm32_spi1/2/3select and stm32_spi1/2/3status must be - * provided by board-specific logic. They are implementations of the select - * and status methods of the SPI interface defined by struct spi_ops_s (see - * include/nuttx/spi/spi.h). All other methods (including up_spiinitialize()) - * are provided by common STM32 logic. To use this common SPI logic on your - * board: - * - * 1. Provide logic in stm32_boardinitialize() to configure SPI chip select - * pins. - * 2. Provide stm32_spi1/2/3select() and stm32_spi1/2/3status() functions in your - * board-specific logic. These functions will perform chip selection and - * status operations using GPIOs in the way your board is configured. - * 3. Add a calls to up_spiinitialize() in your low level application - * initialization logic - * 4. The handle returned by up_spiinitialize() may then be used to bind the - * SPI driver to higher level logic (e.g., calling - * mmcsd_spislotinitialize(), for example, will bind the SPI driver to - * the SPI MMC/SD driver). - * - ****************************************************************************/ - -#ifdef CONFIG_STM32_SPI1 -void stm32_spi1select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected) -{ - spidbg("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert"); - -#ifdef CONFIG_WL_CC3000 - if (devid == SPIDEV_WIRELESS) - { - stm32_gpiowrite(GPIO_SPI_CS_WIFI, !selected); - } - else -#endif -#ifdef HAVE_MMCSD - if (devid == SPIDEV_MMCSD) - { - stm32_gpiowrite(GPIO_SPI_CS_SD_CARD, !selected); - } -#endif -} - -uint8_t stm32_spi1status(FAR struct spi_dev_s *dev, enum spi_dev_e devid) -{ - return 0; -} -#endif - -#ifdef CONFIG_STM32_SPI2 -void stm32_spi2select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected) -{ - spidbg("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert"); - -#ifdef CONFIG_WL_CC3000 - if (devid == SPIDEV_WIRELESS) - { - stm32_gpiowrite(GPIO_WIFI_CS, !selected); - } -#endif -} - -uint8_t stm32_spi2status(FAR struct spi_dev_s *dev, enum spi_dev_e devid) -{ - return 0; -} -#endif - -#ifdef CONFIG_STM32_SPI3 -void stm32_spi3select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected) - - spidbg("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert"); -} - -uint8_t stm32_spi3status(FAR struct spi_dev_s *dev, enum spi_dev_e devid) -{ - return 0; -} -#endif - -/**************************************************************************** - * Name: stm32_spi1cmddata - * - * Description: - * Set or clear the SH1101A A0 or SD1306 D/C n bit to select data (true) - * or command (false). This function must be provided by platform-specific - * logic. This is an implementation of the cmddata method of the SPI - * interface defined by struct spi_ops_s (see include/nuttx/spi/spi.h). - * - * Input Parameters: - * - * spi - SPI device that controls the bus the device that requires the CMD/ - * DATA selection. - * devid - If there are multiple devices on the bus, this selects which one - * to select cmd or data. NOTE: This design restricts, for example, - * one one SPI display per SPI bus. - * cmd - true: select command; false: select data - * - * Returned Value: - * None - * - ****************************************************************************/ - -#ifdef CONFIG_SPI_CMDDATA -#ifdef CONFIG_STM32_SPI1 -int stm32_spi1cmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd) -{ - return OK; -} -#endif - -#ifdef CONFIG_STM32_SPI2 -int stm32_spi2cmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd) -{ - return OK; -} -#endif - -#ifdef CONFIG_STM32_SPI3 -int stm32_spi3cmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd) -{ - return OK; -} -#endif -#endif /* CONFIG_SPI_CMDDATA */ - -#endif /* CONFIG_STM32_SPI1 || CONFIG_STM32_SPI2 || CONFIG_STM32_SPI3 */ +/**************************************************************************** + * configs/stm32l476vg-disco/src/stm32_spi.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * 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 +#include +#include +#include + +#include +#include + +#include +#include +#include + +#include "stm32l476vg-disco.h" + +#if defined(CONFIG_STM32_SPI1) || defined(CONFIG_STM32_SPI2) || defined(CONFIG_STM32_SPI3) + +/************************************************************************************ + * Pre-processor Definitions + ************************************************************************************/ + +/* Enables debug output from this file */ + +#ifndef CONFIG_DEBUG +# undef CONFIG_DEBUG_SPI +# undef CONFIG_DEBUG_VERBOSE +#endif + +#ifdef CONFIG_DEBUG_SPI +# define spidbg lldbg +# ifdef CONFIG_DEBUG_VERBOSE +# define spivdbg lldbg +# else +# define spivdbg(x...) +# endif +#else +# define spidbg(x...) +# define spivdbg(x...) +#endif + +/************************************************************************************ + * Public Data + ************************************************************************************/ +/* Global driver instances */ + +#ifdef CONFIG_STM32_SPI1 +xxx +struct spi_dev_s *g_spi1; +#endif +#ifdef CONFIG_STM32_SPI2 +yyy +struct spi_dev_s *g_spi2; +#endif + +/************************************************************************************ + * Public Functions + ************************************************************************************/ + +/************************************************************************************ + * Name: stm32_spiinitialize + * + * Description: + * Called to configure SPI chip select GPIO pins for the Nucleo-F401RE and + * Nucleo-F411RE boards. + * + ************************************************************************************/ + +void weak_function stm32_spiinitialize(void) +{ +#ifdef CONFIG_STM32_SPI1 + /* Configure SPI-based devices */ + + g_spi1 = up_spiinitialize(1); + if (!g_spi1) + { + spidbg("[boot] FAILED to initialize SPI port 1\n"); + } + +#ifdef CONFIG_WL_CC3000 + stm32_configgpio(GPIO_SPI_CS_WIFI); +#endif + +#ifdef HAVE_MMCSD + stm32_configgpio(GPIO_SPI_CS_SD_CARD); +#endif +#endif + +#ifdef CONFIG_STM32_SPI2 + /* Configure SPI-based devices */ + + g_spi2 = up_spiinitialize(2); + + /* Setup CS, EN & IRQ line IOs */ + +#ifdef CONFIG_WL_CC3000 + stm32_configgpio(GPIO_WIFI_CS); + stm32_configgpio(GPIO_WIFI_EN); + stm32_configgpio(GPIO_WIFI_INT); +#endif +#endif +} + +/**************************************************************************** + * Name: stm32_spi1/2/3select and stm32_spi1/2/3status + * + * Description: + * The external functions, stm32_spi1/2/3select and stm32_spi1/2/3status must be + * provided by board-specific logic. They are implementations of the select + * and status methods of the SPI interface defined by struct spi_ops_s (see + * include/nuttx/spi/spi.h). All other methods (including up_spiinitialize()) + * are provided by common STM32 logic. To use this common SPI logic on your + * board: + * + * 1. Provide logic in stm32_boardinitialize() to configure SPI chip select + * pins. + * 2. Provide stm32_spi1/2/3select() and stm32_spi1/2/3status() functions in your + * board-specific logic. These functions will perform chip selection and + * status operations using GPIOs in the way your board is configured. + * 3. Add a calls to up_spiinitialize() in your low level application + * initialization logic + * 4. The handle returned by up_spiinitialize() may then be used to bind the + * SPI driver to higher level logic (e.g., calling + * mmcsd_spislotinitialize(), for example, will bind the SPI driver to + * the SPI MMC/SD driver). + * + ****************************************************************************/ + +#ifdef CONFIG_STM32_SPI1 +void stm32_spi1select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected) +{ + spidbg("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert"); + +#ifdef CONFIG_WL_CC3000 + if (devid == SPIDEV_WIRELESS) + { + stm32_gpiowrite(GPIO_SPI_CS_WIFI, !selected); + } + else +#endif +#ifdef HAVE_MMCSD + if (devid == SPIDEV_MMCSD) + { + stm32_gpiowrite(GPIO_SPI_CS_SD_CARD, !selected); + } +#endif +} + +uint8_t stm32_spi1status(FAR struct spi_dev_s *dev, enum spi_dev_e devid) +{ + return 0; +} +#endif + +#ifdef CONFIG_STM32_SPI2 +void stm32_spi2select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected) +{ + spidbg("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert"); + +#ifdef CONFIG_WL_CC3000 + if (devid == SPIDEV_WIRELESS) + { + stm32_gpiowrite(GPIO_WIFI_CS, !selected); + } +#endif +} + +uint8_t stm32_spi2status(FAR struct spi_dev_s *dev, enum spi_dev_e devid) +{ + return 0; +} +#endif + +#ifdef CONFIG_STM32_SPI3 +void stm32_spi3select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected) + + spidbg("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert"); +} + +uint8_t stm32_spi3status(FAR struct spi_dev_s *dev, enum spi_dev_e devid) +{ + return 0; +} +#endif + +/**************************************************************************** + * Name: stm32_spi1cmddata + * + * Description: + * Set or clear the SH1101A A0 or SD1306 D/C n bit to select data (true) + * or command (false). This function must be provided by platform-specific + * logic. This is an implementation of the cmddata method of the SPI + * interface defined by struct spi_ops_s (see include/nuttx/spi/spi.h). + * + * Input Parameters: + * + * spi - SPI device that controls the bus the device that requires the CMD/ + * DATA selection. + * devid - If there are multiple devices on the bus, this selects which one + * to select cmd or data. NOTE: This design restricts, for example, + * one one SPI display per SPI bus. + * cmd - true: select command; false: select data + * + * Returned Value: + * None + * + ****************************************************************************/ + +#ifdef CONFIG_SPI_CMDDATA +#ifdef CONFIG_STM32_SPI1 +int stm32_spi1cmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd) +{ + return OK; +} +#endif + +#ifdef CONFIG_STM32_SPI2 +int stm32_spi2cmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd) +{ + return OK; +} +#endif + +#ifdef CONFIG_STM32_SPI3 +int stm32_spi3cmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd) +{ + return OK; +} +#endif +#endif /* CONFIG_SPI_CMDDATA */ + +#endif /* CONFIG_STM32_SPI1 || CONFIG_STM32_SPI2 || CONFIG_STM32_SPI3 */ diff --git a/configs/stm32l476vg-disco/src/stm32_userleds.c b/configs/stm32l476vg-disco/src/stm32_userleds.c index bd5b38cba0..bc1f52797a 100644 --- a/configs/stm32l476vg-disco/src/stm32_userleds.c +++ b/configs/stm32l476vg-disco/src/stm32_userleds.c @@ -1,240 +1,241 @@ -/**************************************************************************** - * configs/stm32l476vg-disco/src/stm32_userleds.c - * - * Copyright (C) 2014-2015 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * 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 -#include -#include - -#include -#include - -#include "chip.h" -#include "up_arch.h" -#include "up_internal.h" -#include "stm32l4.h" -#include "stm32l476vg-disco.h" - -#ifndef CONFIG_ARCH_LEDS - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/* CONFIG_DEBUG_LEDS enables debug output from this file (needs CONFIG_DEBUG - * with CONFIG_DEBUG_VERBOSE too) - */ - -#ifdef CONFIG_DEBUG_LEDS -# define leddbg lldbg -# define ledvdbg llvdbg -#else -# define leddbg(x...) -# define ledvdbg(x...) -#endif - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/* LED Power Management */ - -#ifdef CONFIG_PM -static void led_pm_notify(struct pm_callback_s *cb, enum pm_state_e pmstate); -static int led_pm_prepare(struct pm_callback_s *cb, enum pm_state_e pmstate); -#endif - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -#ifdef CONFIG_PM -static struct pm_callback_s g_ledscb = -{ - .notify = led_pm_notify, - .prepare = led_pm_prepare, -}; -#endif - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: led_pm_notify - * - * Description: - * Notify the driver of new power state. This callback is called after - * all drivers have had the opportunity to prepare for the new power state. - * - ****************************************************************************/ - -#ifdef CONFIG_PM -static void led_pm_notify(struct pm_callback_s *cb , enum pm_state_e pmstate) -{ - switch (pmstate) - { - case(PM_NORMAL): - { - /* Restore normal LEDs operation */ - //stm32l4_gpiowrite(GPIO_LED_RED, (ledset & BOARD_LED_RED_BIT) != 0); - //stm32l4_gpiowrite(GPIO_LED_GRN, (ledset & BOARD_LED_GRN_BIT) != 0); - } - break; - - case(PM_IDLE): - { - /* Entering IDLE mode - Turn leds off */ - stm32l4_gpiowrite(GPIO_LED_RED, 0); - stm32l4_gpiowrite(GPIO_LED_GRN, 0); - } - break; - - case(PM_STANDBY): - { - /* Entering STANDBY mode - Logic for PM_STANDBY goes here */ - stm32l4_gpiowrite(GPIO_LED_RED, 0); - stm32l4_gpiowrite(GPIO_LED_GRN, 0); - } - break; - - case(PM_SLEEP): - { - /* Entering SLEEP mode - Logic for PM_SLEEP goes here */ - stm32l4_gpiowrite(GPIO_LED_RED, 0); - stm32l4_gpiowrite(GPIO_LED_GRN, 0); - } - break; - - default: - { - /* Should not get here */ - - } - break; - } -} -#endif - -/**************************************************************************** - * Name: led_pm_prepare - * - * Description: - * Request the driver to prepare for a new power state. This is a warning - * that the system is about to enter into a new power state. The driver - * should begin whatever operations that may be required to enter power - * state. The driver may abort the state change mode by returning a - * non-zero value from the callback function. - * - ****************************************************************************/ - -#ifdef CONFIG_PM -static int led_pm_prepare(struct pm_callback_s *cb , enum pm_state_e pmstate) -{ - /* No preparation to change power modes is required by the LEDs driver. - * We always accept the state change by returning OK. - */ - - return OK; -} -#endif - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: board_userled_initialize - ****************************************************************************/ - -void board_userled_initialize(void) -{ - /* Configure LD4,5 GPIO for output */ - stm32l4_configgpio(GPIO_LED_RED); - stm32l4_configgpio(GPIO_LED_GRN); -} - -/**************************************************************************** - * Name: board_userled - ****************************************************************************/ - -void board_userled(int led, bool ledon) -{ - switch ( led ) - { - case BOARD_LED_RED: - stm32l4_gpiowrite(GPIO_LED_RED, ldeon); - break; - case BOARD_LED_GRN: - stm32l4_gpiowrite(GPIO_LED_GRN, ldeon); - break; - } -} - -/**************************************************************************** - * Name: board_userled_all - ****************************************************************************/ - -void board_userled_all(uint8_t ledset) -{ - stm32l4_gpiowrite(GPIO_LED_RED, (ledset & BOARD_LED_RED_BIT) != 0); - stm32l4_gpiowrite(GPIO_LED_GRN, (ledset & BOARD_LED_GRN_BIT) != 0); -} - -/**************************************************************************** - * Name: stm32_led_pminitialize - ****************************************************************************/ - -#ifdef CONFIG_PM -void stm32_led_pminitialize(void) -{ - /* Register to receive power management callbacks */ - - int ret = pm_register(&g_ledscb); - DEBUGASSERT(ret == OK); - UNUSED(ret); -} -#endif /* CONFIG_PM */ - -#endif /* !CONFIG_ARCH_LEDS */ +/**************************************************************************** + * configs/stm32l476vg-disco/src/stm32_userleds.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * 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 +#include +#include + +#include +#include + +#include "chip.h" +#include "up_arch.h" +#include "up_internal.h" +#include "stm32l4.h" +#include "stm32l476vg-disco.h" + +#ifndef CONFIG_ARCH_LEDS + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +/* CONFIG_DEBUG_LEDS enables debug output from this file (needs CONFIG_DEBUG + * with CONFIG_DEBUG_VERBOSE too) + */ + +#ifdef CONFIG_DEBUG_LEDS +# define leddbg lldbg +# define ledvdbg llvdbg +#else +# define leddbg(x...) +# define ledvdbg(x...) +#endif + +/**************************************************************************** + * Private Function Prototypes + ****************************************************************************/ + +/* LED Power Management */ + +#ifdef CONFIG_PM +static void led_pm_notify(struct pm_callback_s *cb, enum pm_state_e pmstate); +static int led_pm_prepare(struct pm_callback_s *cb, enum pm_state_e pmstate); +#endif + +/**************************************************************************** + * Private Data + ****************************************************************************/ + +#ifdef CONFIG_PM +static struct pm_callback_s g_ledscb = +{ + .notify = led_pm_notify, + .prepare = led_pm_prepare, +}; +#endif + +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: led_pm_notify + * + * Description: + * Notify the driver of new power state. This callback is called after + * all drivers have had the opportunity to prepare for the new power state. + * + ****************************************************************************/ + +#ifdef CONFIG_PM +static void led_pm_notify(struct pm_callback_s *cb , enum pm_state_e pmstate) +{ + switch (pmstate) + { + case(PM_NORMAL): + { + /* Restore normal LEDs operation */ + + //stm32l4_gpiowrite(GPIO_LED_RED, (ledset & BOARD_LED_RED_BIT) != 0); + //stm32l4_gpiowrite(GPIO_LED_GRN, (ledset & BOARD_LED_GRN_BIT) != 0); + } + break; + + case(PM_IDLE): + { + /* Entering IDLE mode - Turn leds off */ + + stm32l4_gpiowrite(GPIO_LED_RED, 0); + stm32l4_gpiowrite(GPIO_LED_GRN, 0); + } + break; + + case(PM_STANDBY): + { + /* Entering STANDBY mode - Logic for PM_STANDBY goes here */ + + stm32l4_gpiowrite(GPIO_LED_RED, 0); + stm32l4_gpiowrite(GPIO_LED_GRN, 0); + } + break; + + case(PM_SLEEP): + { + /* Entering SLEEP mode - Logic for PM_SLEEP goes here */ + + stm32l4_gpiowrite(GPIO_LED_RED, 0); + stm32l4_gpiowrite(GPIO_LED_GRN, 0); + } + break; + + default: + { + /* Should not get here */ + } + break; + } +} +#endif + +/**************************************************************************** + * Name: led_pm_prepare + * + * Description: + * Request the driver to prepare for a new power state. This is a warning + * that the system is about to enter into a new power state. The driver + * should begin whatever operations that may be required to enter power + * state. The driver may abort the state change mode by returning a + * non-zero value from the callback function. + * + ****************************************************************************/ + +#ifdef CONFIG_PM +static int led_pm_prepare(struct pm_callback_s *cb , enum pm_state_e pmstate) +{ + /* No preparation to change power modes is required by the LEDs driver. + * We always accept the state change by returning OK. + */ + + return OK; +} +#endif + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: board_userled_initialize + ****************************************************************************/ + +void board_userled_initialize(void) +{ + /* Configure LD4,5 GPIO for output */ + + stm32l4_configgpio(GPIO_LED_RED); + stm32l4_configgpio(GPIO_LED_GRN); +} + +/**************************************************************************** + * Name: board_userled + ****************************************************************************/ + +void board_userled(int led, bool ledon) +{ + switch (led) + { + case BOARD_LED_RED: + stm32l4_gpiowrite(GPIO_LED_RED, ldeon); + break; + + case BOARD_LED_GRN: + stm32l4_gpiowrite(GPIO_LED_GRN, ldeon); + break; + } +} + +/**************************************************************************** + * Name: board_userled_all + ****************************************************************************/ + +void board_userled_all(uint8_t ledset) +{ + stm32l4_gpiowrite(GPIO_LED_RED, (ledset & BOARD_LED_RED_BIT) != 0); + stm32l4_gpiowrite(GPIO_LED_GRN, (ledset & BOARD_LED_GRN_BIT) != 0); +} + +/**************************************************************************** + * Name: stm32_led_pminitialize + ****************************************************************************/ + +#ifdef CONFIG_PM +void stm32_led_pminitialize(void) +{ + /* Register to receive power management callbacks */ + + int ret = pm_register(&g_ledscb); + DEBUGASSERT(ret == OK); + UNUSED(ret); +} +#endif /* CONFIG_PM */ + +#endif /* !CONFIG_ARCH_LEDS */ diff --git a/configs/stm32l476vg-disco/src/stm32l476vg-disco.h b/configs/stm32l476vg-disco/src/stm32l476vg-disco.h index d70857ceea..ba184d19e6 100644 --- a/configs/stm32l476vg-disco/src/stm32l476vg-disco.h +++ b/configs/stm32l476vg-disco/src/stm32l476vg-disco.h @@ -1,7 +1,7 @@ /************************************************************************************ * configs/stm32l476vg-disco/src/stm32l476vg-disco.h * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2016 Gregory Nutt. All rights reserved. * Authors: Frank Bennett * Gregory Nutt * Sebastien Lorquet @@ -53,7 +53,6 @@ ************************************************************************************/ /* Configuration ********************************************************************/ - /* LED. * LD4: the red LED on PB2 * LD5: the green LED on PE8 @@ -63,19 +62,19 @@ */ #define GPIO_LED_RED \ - (GPIO_PORTB | GPIO_PIN2 | GPIO_OUTPUT_CLEAR | GPIO_OUTPUT | GPIO_PUSHPULL | GPIO_PULLUP | \ - GPIO_SPEED_50MHz) + (GPIO_PORTB | GPIO_PIN2 | GPIO_OUTPUT_CLEAR | GPIO_OUTPUT | GPIO_PUSHPULL | \ + GPIO_PULLUP | GPIO_SPEED_50MHz) #define GPIO_LED_GRN \ - (GPIO_PORTE | GPIO_PIN8 | GPIO_OUTPUT_CLEAR | GPIO_OUTPUT | GPIO_PUSHPULL | GPIO_PULLUP | \ - GPIO_SPEED_50MHz) + (GPIO_PORTE | GPIO_PIN8 | GPIO_OUTPUT_CLEAR | GPIO_OUTPUT | GPIO_PUSHPULL | \ + GPIO_PULLUP | GPIO_SPEED_50MHz) /* Buttons * -* There is a 4 way d-pad 'joystick' with center button + * There is a 4 way d-pad 'joystick' with center button * connected to PA0,1,5,2,3 * C L D R U - */ + */ #define MIN_IRQBUTTON BUTTON_CENTER #define MAX_IRQBUTTON BUTTON_UP @@ -92,10 +91,9 @@ #define GPIO_BTN_UP \ (GPIO_INPUT |GPIO_PULLDOWN |GPIO_EXTI | GPIO_PORTA | GPIO_PIN3) - - /* SPI1 off */ /* XXX is this used on disco? */ + #define GPIO_SPI1_MOSI_OFF (GPIO_INPUT | GPIO_PULLDOWN | \ GPIO_PORTE | GPIO_PIN15) #define GPIO_SPI1_MISO_OFF (GPIO_INPUT | GPIO_PULLDOWN | \ @@ -105,18 +103,15 @@ #define GPIO_SPI1_NSS_OFF (GPIO_INPUT | GPIO_PULLDOWN | \ GPIO_PORTE | GPIO_PIN12) - - /* Devices on the onboard I2C bus. * * Note that these are unshifted addresses. */ /* XXX IS this 'unshifted'? */ + #define NUCLEO_I2C_OBDEV_CS43L22 0x94 - - /************************************************************************************ * Public Data ************************************************************************************/ @@ -166,5 +161,4 @@ void stm32_usbinitialize(void); int board_adc_initialize(void); #endif - #endif /* __CONFIGS_STM32L476VG_DISCO_SRC_STM32L476VG_DISCO_H */ diff --git a/configs/sure-pic32mx/usbnsh/defconfig b/configs/sure-pic32mx/usbnsh/defconfig index 3548ba6bc9..caecc358e8 100644 --- a/configs/sure-pic32mx/usbnsh/defconfig +++ b/configs/sure-pic32mx/usbnsh/defconfig @@ -333,6 +333,7 @@ CONFIG_NSH_MMCSDMINOR=0 CONFIG_ARCH_DBDP11215=y # CONFIG_ARCH_DBDP11212 is not set CONFIG_LIB_BOARDCTL=y +CONFIG_BOARDCTL_USBDEVCTRL=y # CONFIG_BOARDCTL_TSCTEST is not set # CONFIG_BOARDCTL_ADCTEST is not set # CONFIG_BOARDCTL_PWMTEST is not set diff --git a/configs/teensy-2.0/src/at90usb_usbmsc.c b/configs/teensy-2.0/src/at90usb_usbmsc.c index 21ec1b6131..d519c5d429 100644 --- a/configs/teensy-2.0/src/at90usb_usbmsc.c +++ b/configs/teensy-2.0/src/at90usb_usbmsc.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/teens-2.0/src/at90usb_usbmsc.c * - * Copyright (C) 2011 Gregory Nutt. All rights reserved. + * Copyright (C) 2011, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Configure and register the AVR MMC/SD SPI block driver. @@ -45,8 +45,9 @@ #include #include -#include +#include #include +#include #include "at90usb.h" #include "teensy-20.h" @@ -78,14 +79,15 @@ ****************************************************************************/ /**************************************************************************** - * Name: usbmsc_archinitialize + * Name: board_usbmsc_initialize * * Description: - * Perform architecture specific initialization + * Perform architecture specific initialization as needed to establish + * the mass storage device that will be exported by the USB MSC device. * ****************************************************************************/ -int usbmsc_archinitialize(void) +int board_usbmsc_initialize(int port) { FAR struct spi_dev_s *spi; int ret; diff --git a/configs/teensy-2.0/usbmsc/defconfig b/configs/teensy-2.0/usbmsc/defconfig index 2608a76e8d..da139bd8c0 100644 --- a/configs/teensy-2.0/usbmsc/defconfig +++ b/configs/teensy-2.0/usbmsc/defconfig @@ -171,7 +171,8 @@ CONFIG_ARCH_LEDS=y # # Board-Specific Options # -# CONFIG_LIB_BOARDCTL is not set +CONFIG_LIB_BOARDCTL=y +CONFIG_BOARDCTL_USBDEVCTRL=y # # RTOS Features diff --git a/configs/twr-k60n512/src/k60_usbmsc.c b/configs/twr-k60n512/src/k60_usbmsc.c index 1b658a6d08..c180faae74 100644 --- a/configs/twr-k60n512/src/k60_usbmsc.c +++ b/configs/twr-k60n512/src/k60_usbmsc.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/twr-k60n512/src/k60_usbmsc.c * - * Copyright (C) 2011, 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2011, 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Configure and register the Kinetis MMC/SD block driver. @@ -45,6 +45,7 @@ #include #include +#include #include #include @@ -75,14 +76,15 @@ ****************************************************************************/ /**************************************************************************** - * Name: usbmsc_archinitialize + * Name: board_usbmsc_initialize * * Description: - * Perform architecture specific initialization + * Perform architecture specific initialization as needed to establish + * the mass storage device that will be exported by the USB MSC device. * ****************************************************************************/ -int usbmsc_archinitialize(void) +int board_usbmsc_initialize(int port) { /* If system/usbmsc is built as an NSH command, then SD slot should * already have been initialized in board_app_initialize() (see k60_appinit.c). diff --git a/configs/u-blox-c027/src/lpc17_usbmsc.c b/configs/u-blox-c027/src/lpc17_usbmsc.c index 8403320e0a..3a4f54d419 100644 --- a/configs/u-blox-c027/src/lpc17_usbmsc.c +++ b/configs/u-blox-c027/src/lpc17_usbmsc.c @@ -45,8 +45,9 @@ #include #include -#include +#include #include +#include #include "lpc17_ssp.h" @@ -78,14 +79,15 @@ ****************************************************************************/ /**************************************************************************** - * Name: usbmsc_archinitialize + * Name: board_usbmsc_initialize * * Description: - * Perform architecture specific initialization + * Perform architecture specific initialization as needed to establish + * the mass storage device that will be exported by the USB MSC device. * ****************************************************************************/ -int usbmsc_archinitialize(void) +int board_usbmsc_initialize(int port) { FAR struct spi_dev_s *spi; int ret; diff --git a/configs/viewtool-stm32f107/src/stm32_usbmsc.c b/configs/viewtool-stm32f107/src/stm32_usbmsc.c index 370c4bd3c5..f8462b4687 100644 --- a/configs/viewtool-stm32f107/src/stm32_usbmsc.c +++ b/configs/viewtool-stm32f107/src/stm32_usbmsc.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/viewtool-stm32f107/src/stm32_usbmsc.c * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Configure and register the STM32 SPI-based MMC/SD block driver. @@ -45,6 +45,8 @@ #include #include +#include + #include "stm32.h" #include "viewtool_stm32f107.h" @@ -62,14 +64,15 @@ ****************************************************************************/ /**************************************************************************** - * Name: usbmsc_archinitialize + * Name: board_usbmsc_initialize * * Description: - * Perform architecture specific initialization + * Perform architecture specific initialization as needed to establish + * the mass storage device that will be exported by the USB MSC device. * ****************************************************************************/ -int usbmsc_archinitialize(void) +int board_usbmsc_initialize(int port) { /* If system/usbmsc is built as an NSH command, then SD slot should * already have been initialized in board_app_initialize() (see stm32_appinit.c). diff --git a/configs/vsn/src/usbmsc.c b/configs/vsn/src/usbmsc.c index fa6078b852..979f176feb 100644 --- a/configs/vsn/src/usbmsc.c +++ b/configs/vsn/src/usbmsc.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/vsn/src/usbmsc.c * - * Copyright (C) 2009 Gregory Nutt. All rights reserved. + * Copyright (C) 2009, 2016 Gregory Nutt. All rights reserved. * Copyright (c) 2011 Uros Platise. All rights reserved. * * Authors: Gregory Nutt @@ -48,6 +48,7 @@ #include #include +#include #include #include @@ -80,14 +81,15 @@ ****************************************************************************/ /**************************************************************************** - * Name: usbmsc_archinitialize + * Name: board_usbmsc_initialize * * Description: - * Perform architecture specific initialization + * Perform architecture specific initialization as needed to establish + * the mass storage device that will be exported by the USB MSC device. * ****************************************************************************/ -int usbmsc_archinitialize(void) +int board_usbmsc_initialize(int port) { FAR struct sdio_dev_s *sdio; int ret; diff --git a/configs/zkit-arm-1769/src/lpc17_usbmsc.c b/configs/zkit-arm-1769/src/lpc17_usbmsc.c index 9ad569a874..3d51560056 100644 --- a/configs/zkit-arm-1769/src/lpc17_usbmsc.c +++ b/configs/zkit-arm-1769/src/lpc17_usbmsc.c @@ -50,8 +50,9 @@ #include #include -#include +#include #include +#include #include "lpc17_spi.h" #include "zkit-arm-1769.h" @@ -83,14 +84,15 @@ ****************************************************************************/ /**************************************************************************** - * Name: usbmsc_archinitialize + * Name: board_usbmsc_initialize * * Description: - * Perform architecture specific initialization + * Perform architecture specific initialization as needed to establish + * the mass storage device that will be exported by the USB MSC device. * ****************************************************************************/ -int usbmsc_archinitialize(void) +int board_usbmsc_initialize(int port) { FAR struct spi_dev_s *spi; int ret;