c48a617cd2
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5197 42af7a65-404d-4744-a932-0658087f49c3
387 lines
11 KiB
Plaintext
387 lines
11 KiB
Plaintext
#
|
|
# For a description of the syntax of this configuration file,
|
|
# see misc/tools/kconfig-language.txt.
|
|
#
|
|
|
|
mainmenu "Nuttx/$ARCH Configuration"
|
|
|
|
config APPSDIR
|
|
string
|
|
option env="APPSDIR"
|
|
|
|
# This is a temporary kludge to let the build system know that we are using the new
|
|
# configuration system
|
|
|
|
config NUTTX_NEWCONFIG
|
|
bool
|
|
default y
|
|
|
|
menu "Build Setup"
|
|
config EXPERIMENTAL
|
|
bool "Prompt for development and/or incomplete code/drivers"
|
|
|
|
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"
|
|
default n
|
|
---help---
|
|
Create nuttx.rr in the rrload binary format used with
|
|
BSPs from www.ridgerun.com using the tools/mkimage.sh script.
|
|
|
|
config INTELHEX_BINARY
|
|
bool "Intel HEX binary format"
|
|
default n
|
|
---help---
|
|
Create the nuttx.hex in the Intel HEX binary format that is
|
|
used with many different loaders. This option will use the GNU objcopy program
|
|
and should not be selected if you are not using the GNU toolchain.
|
|
|
|
config MOTOROLA_SREC
|
|
bool "Motorola S-Record binary format"
|
|
default n
|
|
---help---
|
|
Create the nuttx.srec in the Motorola S-Record binary format that is
|
|
used with many different loaders. This option will use the GNU objcopy program
|
|
and should not be selected if you are not using the GNU toolchain.
|
|
|
|
config RAW_BINARY
|
|
bool "Raw binary format"
|
|
default n
|
|
---help---
|
|
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
|
|
|
|
menu "Customize Header Files"
|
|
|
|
config ARCH_STDBOOL_H
|
|
bool "stdbool.h"
|
|
default n
|
|
---help---
|
|
The stdbool.h header file can be found at nuttx/include/stdbool.h.
|
|
However, that header includes logic to redirect the inclusion of an
|
|
architecture specific header file like:
|
|
|
|
#ifdef CONFIG_ARCH_STDBOOL_H
|
|
# include <arch/stdbool.h>
|
|
#else
|
|
...
|
|
#endif
|
|
|
|
Recall that that include path, include/arch, is a symbolic link and
|
|
will refer to a version of stdbool.h at nuttx/arch/<architecture>/include/stdbool.h.
|
|
|
|
config ARCH_MATH_H
|
|
bool "math.h"
|
|
default n
|
|
---help---
|
|
There is also a re-directing version of math.h in the source tree.
|
|
However, it resides out-of-the-way at include/nuttx/math.h because it
|
|
conflicts too often with the system math.h. If ARCH_MATH_H=y is
|
|
defined, however, the top-level makefile will copy the redirecting
|
|
math.h header file from include/nuttx/math.h to include/math.h. math.h
|
|
will then include the architecture-specific version of math.h that you
|
|
must provide at nuttx/arch/>architecture</include/math.h.
|
|
|
|
#ifdef CONFIG_ARCH_MATH_H
|
|
# include <arch/math.h>
|
|
#endif
|
|
|
|
So for the architectures that define ARCH_MATH_H=y, include/math.h
|
|
will be the redirecting math.h header file; for the architectures
|
|
that don't select ARCH_MATH_H, the redirecting math.h header file
|
|
will stay out-of-the-way in include/nuttx/.
|
|
|
|
config ARCH_STDARG_H
|
|
bool "stdarg.h"
|
|
default n
|
|
---help---
|
|
There is also a redirecting version of stdarg.h in the source tree
|
|
as well. It also resides out-of-the-way at include/nuttx/stdarg.h.
|
|
This is because you should normally use your toolchain's stdarg.h
|
|
file. But sometimes, your toolchain's stdarg.h file may have other
|
|
header file dependencies and so may not be usable in the NuttX build
|
|
environment. In those cases, you may have to create a architecture-
|
|
specific stdarg.h header file at nuttx/arch/<architecture>/include/stdarg.h
|
|
|
|
If ARCH_STDARG_H=y is defined, the top-level makefile will copy the
|
|
re-directing stdarg.h header file from include/nuttx/stdarg.h to
|
|
include/stdarg.h. So for the architectures that cannot use their
|
|
toolchain's stdarg.h file, they can use this alternative by defining
|
|
ARCH_STDARG_H=y and providing. If ARCH_STDARG_H, is not defined, then
|
|
the stdarg.h header file will stay out-of-the-way in include/nuttx/.
|
|
|
|
endmenu
|
|
|
|
menu "Debug Options"
|
|
|
|
config DEBUG
|
|
bool "Enable Debug Features"
|
|
default n
|
|
---help---
|
|
Enables built-in debug features. Selecting this option will (1) Enable
|
|
debug assertions in the code, (2) enable extended parameter testing in
|
|
many functions, and (3) enable support for debug output. Note that enabling
|
|
this option by itself does not produce debug output. Debug output must
|
|
also be selected on a subsystem-by-subsystem basis.
|
|
|
|
if DEBUG
|
|
config DEBUG_VERBOSE
|
|
bool "Enable Debug Verbose Output"
|
|
default n
|
|
---help---
|
|
Enables verbose debug output (assuming debug output is enabled). As a
|
|
general rule, when DEBUG is enabled only errors will be reported in the debug
|
|
output. But if you also enable DEBUG_VERBOSE, then very chatty (and
|
|
often annoying) output will be generated. This means there are two levels
|
|
of debug output: errors-only and everything.
|
|
|
|
config DEBUG_ENABLE
|
|
bool "Enable Debug Controls"
|
|
default n
|
|
---help---
|
|
Support an interface to dynamically enable or disable debug output.
|
|
|
|
comment "Subsystem Debug Options"
|
|
|
|
config DEBUG_SCHED
|
|
bool "Enable Scheduler Debug Output"
|
|
default n
|
|
---help---
|
|
Enable OS debug output (disabled by default)
|
|
|
|
config DEBUG_MM
|
|
bool "Enable Memory Manager Debug Output"
|
|
default n
|
|
---help---
|
|
Enable memory management debug output (disabled by default)
|
|
|
|
config DEBUG_NET
|
|
bool "Enable Network Debug Output"
|
|
default n
|
|
depends on NET
|
|
---help---
|
|
Enable network debug output (disabled by default)
|
|
|
|
config DEBUG_USB
|
|
bool "Enable USB Debug Output"
|
|
default n
|
|
depends on USBDEV || USBHOST
|
|
---help---
|
|
Enable usb debug output (disabled by default)
|
|
|
|
config DEBUG_FS
|
|
bool "Enable File System Debug Output"
|
|
default n
|
|
---help---
|
|
Enable file system debug output (disabled by default)
|
|
|
|
config DEBUG_LIB
|
|
bool "Enable C Library Debug Output"
|
|
default n
|
|
---help---
|
|
Enable C library debug output (disabled by default)
|
|
|
|
config DEBUG_BINFMT
|
|
bool "Enable Binary Loader Debug Output"
|
|
default n
|
|
---help---
|
|
Enable binary loader debug output (disabled by default)
|
|
|
|
config DEBUG_GRAPHICS
|
|
bool "Enable Graphics Debug Output"
|
|
default n
|
|
---help---
|
|
Enable NX graphics debug output (disabled by default)
|
|
|
|
comment "Driver Debug Options"
|
|
|
|
config DEBUG_LCD
|
|
bool "Enable Low-level LCD Debug Output"
|
|
default n
|
|
depends on LCD
|
|
---help---
|
|
Enable low level debug output from the LCD driver (disabled by default)
|
|
|
|
config DEBUG_INPUT
|
|
bool "Enable Input Device Debug Output"
|
|
default n
|
|
depends on INPUT
|
|
---help---
|
|
Enable low level debug output from the input device drivers such as
|
|
mice and touchscreens (disabled by default)
|
|
|
|
config DEBUG_I2C
|
|
bool "Enable I2C Debug Output"
|
|
default n
|
|
depends on I2C
|
|
---help---
|
|
Enable I2C driver debug output (disabled by default)
|
|
|
|
config DEBUG_SPI
|
|
bool "Enable SPI Debug Output"
|
|
default n
|
|
depends on SPI
|
|
---help---
|
|
Enable I2C driver debug output (disabled by default)
|
|
|
|
config DEBUG_WATCHDOG
|
|
bool "Enable Watchdog Timer Debug Output"
|
|
default n
|
|
depends on WATCHDOG
|
|
---help---
|
|
Enable watchdog timer debug output (disabled by default)
|
|
|
|
endif
|
|
|
|
config DEBUG_SYMBOLS
|
|
bool "Enable Debug Symbols"
|
|
default n
|
|
---help---
|
|
Build without optimization and with debug symbols (needed
|
|
for use with a debugger).
|
|
endmenu
|
|
endmenu
|
|
|
|
menu "System Type"
|
|
source "arch/Kconfig"
|
|
endmenu
|
|
|
|
menu "Board Selection"
|
|
source "configs/Kconfig"
|
|
endmenu
|
|
|
|
menu "RTOS Features"
|
|
source sched/Kconfig
|
|
endmenu
|
|
|
|
menu "Device Drivers"
|
|
source drivers/Kconfig
|
|
endmenu
|
|
|
|
menu "Networking Support"
|
|
source net/Kconfig
|
|
endmenu
|
|
|
|
menu "File Systems"
|
|
source fs/Kconfig
|
|
endmenu
|
|
|
|
menu "Graphics Support"
|
|
source graphics/Kconfig
|
|
endmenu
|
|
|
|
menu "Memory Management"
|
|
source mm/Kconfig
|
|
endmenu
|
|
|
|
menu "Library Routines"
|
|
source lib/Kconfig
|
|
source libxx/Kconfig
|
|
endmenu
|
|
|
|
menu "Application Configuration"
|
|
source "$APPSDIR/Kconfig"
|
|
endmenu
|
|
|