summaryrefslogtreecommitdiff
path: root/nuttx
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-04-11 17:13:04 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-04-11 17:13:04 +0000
commit36e82d637fffd680dfa0e4bbb245231640ac0ba1 (patch)
treee6ebf397e8ec882c2ce2c0c5221d463c0a5bee5b /nuttx
parentb13201fd362ff1dca9719d2f6ff1c8527b3074f6 (diff)
downloadpx4-nuttx-36e82d637fffd680dfa0e4bbb245231640ac0ba1.tar.gz
px4-nuttx-36e82d637fffd680dfa0e4bbb245231640ac0ba1.tar.bz2
px4-nuttx-36e82d637fffd680dfa0e4bbb245231640ac0ba1.zip
Misc STM32 OTF FS driver fixes + More Kconfig files
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4590 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx')
-rw-r--r--nuttx/Kconfig106
-rwxr-xr-xnuttx/arch/arm/src/stm32/stm32_otgfsdev.c16
-rw-r--r--nuttx/drivers/usbdev/usbmsc.h2
-rw-r--r--nuttx/lib/Kconfig6
-rw-r--r--nuttx/sched/Kconfig308
5 files changed, 257 insertions, 181 deletions
diff --git a/nuttx/Kconfig b/nuttx/Kconfig
index ccb8e994f..7bc036be3 100644
--- a/nuttx/Kconfig
+++ b/nuttx/Kconfig
@@ -9,11 +9,109 @@ config APPSDIR
string
option env="APPSDIR"
-menu "General setup"
+menu "General Setup"
config EXPERIMENTAL
bool "Prompt for development and/or incomplete code/drivers"
-comment "General build options"
+menu "Build Configuration"
+config APPS_DIR
+ string "Application directory"
+ default "../apps"
+ ---help---
+ Identifies the directory that builds the
+ application to link with NuttX. Default: ../apps This symbol must be assigned
+ to the path to the application build directory *relative* to
+ the NuttX top build direcory. If you had an application
+ directory and the NuttX directory each in separate directory
+ trees like this:
+
+ build
+ |-nuttx
+ | |
+ | `- Makefile
+ `-application
+ |
+ `- Makefile
+
+ Then you would set CONFIG_APPS_DIR=../application.
+
+ The application direction must contain Makefile and this make
+ file must support the following targets:
+
+ libapps$(LIBEXT) (usually libapps.a). libapps.a is a static
+ library ( an archive) that contains all of application object
+ files.
+
+ clean. Do whatever is appropriate to clean the application
+ directories for a fresh build.
+
+ distclean. Clean everthing -- auto-generated files, symbolic
+ links etc. -- so that the directory contents are the same as
+ the contents in your configuration management system.
+ This is only done when you change the NuttX configuration.
+
+ depend. Make or update the application build dependencies.
+
+ When this application is invoked it will receive the setting TOPDIR like:
+
+ $(MAKE) -C $(CONFIG_APPS_DIR) TOPDIR="$(TOPDIR)" <target>
+
+ TOPDIR is the full path to the NuttX directory. It can be used, for
+ example, to include makefile fragments (e.g., .config or Make.defs)
+ or to set up include file paths.
+
+config BUILD_2PASS
+ bool "Two pass build"
+ default n
+ ---help---
+ Enables the two pass build options.
+
+ Two-pass build options. If the 2 pass build option is selected, then these
+ options configure the make system build a extra link object. This link object
+ is assumed to be an incremental (relative) link object, but could be a static
+ library (archive) (some modification to this Makefile would be required if
+ CONFIG_PASS1_TARGET generates an archive). Pass 1 1ncremental (relative) link
+ objects should be put into the processor-specific source directory (where other
+ link objects will be created). If the pass1 obect is an archive, it could
+ go anywhere.
+
+if BUILD_2PASS
+config PASS1_TARGET
+ string "Pass one target"
+ default ""
+ ---help---
+ The name of the first pass build target. This
+ can be specific build target, a special build target (all, default, etc.)
+ or may just be left undefined.
+
+config PASS1_BUILDIR
+ string "Pass one build directory"
+ default "build"
+ ---help---
+ The path, relative to the top NuttX build
+ directory to directory that contains the Makefile to build the
+ first pass object. The Makefile must support the following targets:
+ The special target CONFIG_PASS1_TARGET (if defined)
+ and the usual depend, clean, and distclean targets.
+
+config PASS1_OBJECT
+ string "Pass one object"
+ default ""
+ ---help---
+ May be used to include an extra, pass1 object
+ into the final link. This would probably be the object generated
+ from the CONFIG_PASS1_TARGET. It may be available at link time
+ in the arch/<architecture>/src directory.
+
+config NUTTX_KERNEL
+ bool "NuttX kernel build"
+ default n
+ ---help---
+ Builds NuttX as a separately compiled kernel.
+endif
+endmenu
+
+menu "Binary Output Formats"
config RRLOAD_BINARY
bool "rrload binary format"
@@ -45,8 +143,9 @@ config RAW_BINARY
Create the nuttx.bin in the raw binary format that is used with many
different loaders using the GNU objcopy program. This option
should not be selected if you are not using the GNU toolchain.
+endmenu
-comment "General debug options"
+menu "Debug Options"
config DEBUG
bool "Enable debug output"
@@ -136,6 +235,7 @@ config DEBUG_SYMBOLS
Build without optimization and with debug symbols (needed
for use with a debugger).
endmenu
+endmenu
menu "System Type"
source "arch/Kconfig"
diff --git a/nuttx/arch/arm/src/stm32/stm32_otgfsdev.c b/nuttx/arch/arm/src/stm32/stm32_otgfsdev.c
index 587dd4bca..2f297d09f 100755
--- a/nuttx/arch/arm/src/stm32/stm32_otgfsdev.c
+++ b/nuttx/arch/arm/src/stm32/stm32_otgfsdev.c
@@ -1020,6 +1020,16 @@ static void stm32_epin_request(FAR struct stm32_usbdev_s *priv,
privep->epphy, privreq, privreq->req.len,
privreq->req.xfrd, privep->zlp);
+ /* Check for a special case: If we are just starting a request (xfrd==0) and
+ * the class driver is trying to send a zero-length packet (len==0). Then set
+ * the ZLP flag so that the packet will be sent.
+ */
+
+ if (privreq->req.len == 0)
+ {
+ privep->zlp = true;
+ }
+
/* Loop while there are still bytes to be transferred (or a zero-length-
* packet, ZLP, to be sent). The loop will also be terminated if there
* is insufficient space remaining in the TxFIFO to send a complete
@@ -1043,7 +1053,7 @@ static void stm32_epin_request(FAR struct stm32_usbdev_s *priv,
* the request.
*/
- privep->zlp = 0;
+ privep->zlp = false;
if (nbytes >= privep->ep.maxpacket)
{
nbytes = privep->ep.maxpacket;
@@ -1056,7 +1066,7 @@ static void stm32_epin_request(FAR struct stm32_usbdev_s *priv,
if (bytesleft == privep->ep.maxpacket &&
(privreq->req.flags & USBDEV_REQFLAGS_NULLPKT) != 0)
{
- privep->zlp = 1;
+ privep->zlp = true;
}
}
}
@@ -1127,7 +1137,7 @@ static void stm32_epin_request(FAR struct stm32_usbdev_s *priv,
usbtrace(TRACE_COMPLETE(privep->epphy), privreq->req.xfrd);
stm32_req_complete(privep, OK);
- privep->zlp = 0;
+ privep->zlp = false;
privep->active = false;
}
}
diff --git a/nuttx/drivers/usbdev/usbmsc.h b/nuttx/drivers/usbdev/usbmsc.h
index 4b0817248..6a5530d9d 100644
--- a/nuttx/drivers/usbdev/usbmsc.h
+++ b/nuttx/drivers/usbdev/usbmsc.h
@@ -312,7 +312,7 @@
#define USBMSC_NINTERFACES (1) /* Number of interfaces in the configuration */
#define USBMSC_INTERFACEID (CONFIG_USBMSC_IFNOBASE+0)
-#define USBMSC_ALTINTERFACEID USBMSC_INTERFACEID
+#define USBMSC_ALTINTERFACEID (0)
#define USBMSC_CONFIGIDNONE (0) /* Config ID means to return to address mode */
#define USBMSC_CONFIGID (1) /* The only supported configuration ID */
diff --git a/nuttx/lib/Kconfig b/nuttx/lib/Kconfig
index 6c2bd3f1c..9e60201c2 100644
--- a/nuttx/lib/Kconfig
+++ b/nuttx/lib/Kconfig
@@ -17,6 +17,12 @@ config STDIO_LINEBUFFER
Flush buffer I/O whenever a newline character is found in
the output data stream.
+config NUNGET_CHARS
+ int "Number unget() characters"
+ default 2
+ ---help---
+ Number of characters that can be buffered by ungetc() (Only if NFILE_STREAMS > 0)
+
config CONFIG_LIB_HOMEDIR
string "Home directory"
default "/"
diff --git a/nuttx/sched/Kconfig b/nuttx/sched/Kconfig
index c8fc0413d..ee8486dbe 100644
--- a/nuttx/sched/Kconfig
+++ b/nuttx/sched/Kconfig
@@ -2,58 +2,46 @@
# For a description of the syntax of this configuration file,
# see misc/tools/kconfig-language.txt.
#
-config MM_REGIONS
- int "number of memory regions"
- default 1
- ---help---
- If the architecture includes multiple
- regions of memory to allocate from, this specifies the
- number of memory regions that the memory manager must
- handle and enables the API mm_addregion(start, end);
-
+
config MSEC_PER_TICK
int "tick timer"
default 10
---help---
- The default system timer is 100Hz
- or MSEC_PER_TICK=10. This setting may be defined to
- inform NuttX that the processor hardware is providing
- system timer interrupts at some interrupt interval other
- than 10 msec.
-
+ The default system timer is 100Hz or MSEC_PER_TICK=10. This setting
+ may be defined to inform NuttX that the processor hardware is providing
+ system timer interrupts at some interrupt interval other than 10 msec.
+
config RR_INTERVAL
int "round robin timeslice"
default 0
---help---
- The round robin timeslice will be set
- this number of milliseconds; Round robin scheduling can
- be disabled by setting this value to zero.
-
+ The round robin timeslice will be set this number of milliseconds;
+ Round robin scheduling can be disabled by setting this value to zero.
+
config SCHED_INSTRUMENTATION
- bool "monitor system performance"
+ bool "Monitor system performance"
default n
---help---
- enables instrumentation in
- scheduler to monitor system performance
-
+ enables instrumentation in scheduler to monitor system performance.
+
config TASK_NAME_SIZE
- int "task name size"
+ int "Maximum task name size"
default 32
---help---
- Spcifies that maximum size of a
- task name to save in the TCB. Useful if scheduler
- instrumentation is selected. Set to zero to disable.
-
+ Spcifies that maximum size of a task name to save in the TCB.
+ Useful if scheduler instrumentation is selected. Set to zero to
+ disable.
+
config JULIAN_TIME
bool "Enables Julian time conversions"
default n
---help---
- Enables Julian time conversions
-
+ Enables Julian time conversions
+
config START_YEAR
int "start year"
default 2010
-
+
config START_MONTH
int "start month"
default 1
@@ -63,79 +51,73 @@ config START_DAY
default 1
config DEV_CONSOLE
- bool "enable /dev/console"
+ bool "Enable /dev/console"
default y
---help---
- Set if architecture-specific logic
- provides /dev/console. Enables stdout, stderr, stdin.
-
+ Set if architecture-specific logic provides /dev/console. Enables
+ stdout, stderr, stdin.
+
config DEV_LOWCONSOLE
bool "enable low-level serial console"
default n
---help---
- Use the simple, low-level serial console
- driver (minimul support)
-
+ Use the simple, low-level, write-only serial console driver (minimul support)
+
config MUTEX_TYPES:
- bool "enable mutex types"
+ bool "Enable mutex types"
default n
---help---
- Set to enable support for recursive and
- errorcheck mutexes. Enables pthread_mutexattr_settype().
-
+ Set to enable support for recursive and errorcheck mutexes. Enables
+ pthread_mutexattr_settype().
+
config PRIORITY_INHERITANCE
- bool "enable priority inheritance "
+ bool "Enable priority inheritance "
default n
---help---
- Set to enable support for priority
- inheritance on mutexes and semaphores.
-
+ Set to enable support for priority inheritance on mutexes and semaphores.
+
config SEM_PREALLOCHOLDERS
- int "pre alloc holders"
+ int "Pre-allocated holders"
default 16
depends on PRIORITY_INHERITANCE
---help---
- This setting is only used if priority
- inheritance is enabled. It defines the maximum number of
- different threads (minus one) that can take counts on a
- semaphore with priority inheritance support. This may be
- set to zero if priority inheritance is disabled OR if you
- are only using semaphores as mutexes (only one holder) OR
- if no more than two threads participate using a counting
- semaphore.
+ This setting is only used if priority inheritance is enabled.
+ It defines the maximum number of different threads (minus one) that
+ can take counts on a semaphore with priority inheritance support.
+ This may be set to zero if priority inheritance is disabled OR if you
+ are only using semaphores as mutexes (only one holder) OR if no more
+ than two threads participate using a counting semaphore.
config SEM_NNESTPRIO
- int "maximum number of higher priority threads"
+ int "Maximum number of higher priority threads"
default 16
depends on PRIORITY_INHERITANCE
---help---
- If priority inheritance is enabled,
- then this setting is the maximum number of higher priority
- threads (minus 1) than can be waiting for another thread
- to release a count on a semaphore. This value may be set
- to zero if no more than one thread is expected to wait for
- a semaphore.
-
+ If priority inheritance is enabled, then this setting is the
+ maximum number of higher priority threads (minus 1) than can be
+ waiting for another thread to release a count on a semaphore.
+ This value may be set to zero if no more than one thread is
+ expected to wait for a semaphore.
+
config FDCLONE_DISABLE
- bool "disable clone all file descriptors"
+ bool "Disable cloning of file descriptors"
default n
---help---
Disable cloning of all file descriptors
by task_create() when a new task is started. If set, all
files/drivers will appear to be closed in the new task.
-
+
config FDCLONE_STDIO
- bool "disable clone file descriptors without stdio"
+ bool "Disable clone file descriptors without stdio"
default n
---help---
- Disable cloning of all but the first
- three file descriptors (stdin, stdout, stderr) by task_create()
- when a new task is started. If set, all files/drivers will
- appear to be closed in the new task except for stdin, stdout,
- and stderr.
-
+ Disable cloning of all but the first three file descriptors (stdin,
+ stdout, stderr) by task_create() when a new task is started. If set,
+ all files/drivers will appear to be closed in the new task except
+ for stdin, stdout, and stderr.
+
config SDCLONE_DISABLE
- bool "disable cloning of all socket"
+ bool "Disable cloning of socket descriptors"
default n
---help---
Disable cloning of all socket
@@ -143,7 +125,7 @@ config SDCLONE_DISABLE
set, all sockets will appear to be closed in the new task.
config DISABLE_OS_API
- bool "disable os api"
+ bool "Disable NuttX interfaces"
default n
---help---
The following can be used to disable categories of
@@ -151,153 +133,132 @@ config DISABLE_OS_API
weak functions, then it should not be necessary to
disable functions unless you want to restrict usage
of those APIs.
-
+
There are certain dependency relationships in these
features.
-
+
o mq_notify logic depends on signals to awaken tasks
waiting for queues to become full or empty.
o pthread_condtimedwait() depends on signals to wake
up waiting tasks.
-
+
config DISABLE_CLOCK
- bool "disable clock"
+ bool "Disable clock interfaces"
depends on DISABLE_OS_API
default n
config DISABLE_POSIX_TIMERS
- bool "disable posix timers"
+ bool "Disable POSIX timers"
depends on DISABLE_OS_API
default n
config DISABLE_PTHREAD
- bool "disable pthread"
+ bool "Disable pthread support"
depends on DISABLE_OS_API
default n
config DISABLE_SIGNALS
- bool "disable signals"
+ bool "Disable signal support"
depends on DISABLE_OS_API
default n
config DISABLE_MQUEUE
- bool "disable mqueue"
+ bool "Disable POSIX message queue support"
depends on DISABLE_OS_API
default n
config DISABLE_MOUNTPOINT
- bool "disable mount point"
+ bool "Disable support for mount points"
depends on DISABLE_OS_API
default n
config DISABLE_ENVIRON
- bool "disable environ"
+ bool "Disable environment variable support"
depends on DISABLE_OS_API
default n
config DISABLE_POLL
- bool "disable poll"
+ bool "Disable driver poll interfaces"
depends on DISABLE_OS_API
default n
comment "Sizes of configurable things (0 disables)"
config MAX_TASKS
- int "max tasks"
+ int "Max tasks"
default 32
---help---
- The maximum number of simultaneously
- active tasks. This value must be a power of two.
-
+ The maximum number of simultaneously active tasks. This value must be
+ a power of two.
+
config MAX_TASK_ARGS
- int "max task args"
+ int "Maximum number of task arguments"
default 4
---help---
- This controls the maximum number of
- of parameters that a task may receive (i.e., maxmum value
- of 'argc')
-
+ This controls the maximum number of of parameters that a task may
+ receive (i.e., maxmum value of 'argc')
+
config NPTHREAD_KEYS
- int "number pthread keys"
+ int "Number of pthread keys"
default 4
---help---
- The number of items of thread-
- specific data that can be retained
-
+ The number of items of thread-
+ specific data that can be retained
+
config NFILE_DESCRIPTORS
- int "max file descriptors"
+ int "Max file descriptors"
default 16
---help---
- The maximum number of file
- descriptors (one for each open)
-
+ The maximum number of file
+ descriptors (one for each open)
+
config NFILE_STREAMS
- int "max file streams"
+ int "Max file streams"
default 16
---help---
- The maximum number of streams that
- can be fopen'ed
-
+ The maximum number of streams that can be fopen'ed
+
config NAME_MAX
int "name max"
default 32
---help---
The maximum size of a file name.
-
-config STDIO_BUFFER_SIZE
- int "stdio buffer size"
- default 256
- ---help---
- Size of the buffer to allocate
- on fopen. (Only if config _NFILE_STREAMS > 0)
-
-config NUNGET_CHARS
- int "number get chars"
- default 2
- ---help---
- Number of characters that can be
- buffered by ungetc() (Only if config _NFILE_STREAMS > 0)
-
+
config PREALLOC_MQ_MSGS
- int "pre alloc mq_msgs"
+ int "Pre-allocated messages"
default 32
---help---
- The number of pre-allocated message
- structures. The system manages a pool of preallocated
- message structures to minimize dynamic allocations
-
+ The number of pre-allocated message structures. The system manages
+ a pool of preallocated message structures to minimize dynamic allocations
+
config MQ_MAXMSGSIZE
- int "mq max message size"
+ int "Maximum message size"
default 32
---help---
- Message structures are allocated with
- a fixed payload size given by this settin (does not include
- other message structure overhead.
-
+ Message structures are allocated with a fixed payload size given by this
+ setting (does not include other message structure overhead.
+
config MAX_WDOGPARMS
int "max watchdog parms"
default 4
---help---
- Maximum number of parameters that
- can be passed to a watchdog handler
-
+ Maximum number of parameters that
+ can be passed to a watchdog handler
+
config PREALLOC_WDOGS
- int "pre alloc watchdogs"
+ int "Pre-allocated watchdogs"
default 32
---help---
- The number of pre-allocated watchdog
- structures. The system manages a pool of preallocated
- watchdog structures to minimize dynamic allocations
+ The number of pre-allocated watchdog structures. The system manages a
+ pool of preallocated watchdog structures to minimize dynamic allocations
config PREALLOC_TIMERS
- int "pre alloc timers"
+ int "Pre-allocated timers"
default 8
---help---
- The number of pre-allocated POSIX
- timer structures. The system manages a pool of preallocated
- timer structures to minimize dynamic allocations. Set to
- zero for all dynamic allocations.
-
+ The number of pre-allocated POSIX timer structures. The system manages a
+ pool of preallocated timer structures to minimize dynamic allocations. Set to
+ zero for all dynamic allocations.
comment "Stack and heap information"
@@ -305,56 +266,55 @@ config BOOT_RUNFROMFLASH
bool "boot run from flash"
default n
---help---
- Some configurations support XIP
- operation from FLASH but must copy initialized .data sections to RAM.
- (should also be =n for the LPC17xx which always runs from flash)
-
+ Some configurations support XIP operation from FLASH but must copy
+ initialized .data sections to RAM
+
config BOOT_COPYTORAM
bool "boot copy to ram"
default n
---help---
- Some configurations boot in FLASH
- but copy themselves entirely into RAM for better performance.
-
+ Some configurations boot in FLASH
+ but copy themselves entirely into RAM for better performance.
+
config CUSTOM_STACK
- bool "enable custom stack"
+ bool "Enable custom stack"
default n
---help---
- The up_ implementation will handle
- all stack operations outside of the nuttx model.
-
+ The up_ implementation will handle all stack operations outside of the
+ nuttx model. This is necessary for certain architectures that have
+ have hardware stacks (such as the 8051 family).
+
config STACK_POINTER
hex ""
default 0
---help---
- The initial stack pointer (arm7tdmi only)
-
+ The initial stack pointer (arm7tdmi only)
+
config IDLETHREAD_STACKSIZE
- int "idle thread stack size"
+ int "Idle thread stack size"
default 1024
---help---
- The size of the initial stack.
- This is the thread that (1) performs the inital boot of the system up
- to the point where user_start() is spawned, and (2) there after is the
- IDLE thread that executes only when there is no other thread ready to
- run.
-
+ The size of the initial stack used by the IDLE thread. The IDLE thread
+ is the thread that (1) performs the inital boot of the system up to the
+ point where user_start() is spawned, and (2) there after is the IDLE
+ thread that executes only when there is no other thread ready to run.
+
config USERMAIN_STACKSIZE
- int "main thread stack size"
+ int "Main thread stack size"
default 2048
---help---
- The size of the stack to allocate
- for the main user thread that begins at the user_start() entry point.
-
+ The size of the stack to allocate for the main user thread that begins at
+ the user_start() entry point.
+
config PTHREAD_STACK_MIN
- int "minimum thrad stack size"
+ int "Minimum pthread stack size"
default 256
---help---
- Minimum pthread stack size
-
+ Minimum pthread stack size
+
config PTHREAD_STACK_DEFAULT
- int "default stack size"
+ int "Default pthread stack size"
default 2048
---help---
- Default pthread stack size
-
+ Default pthread stack size
+