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
This commit is contained in:
patacongo 2012-04-11 17:13:04 +00:00
parent 41f3401979
commit 35a50c6eb2
5 changed files with 257 additions and 181 deletions

106
Kconfig
View file

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

View file

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

View file

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

View file

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

View file

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