You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
364 lines
11 KiB
364 lines
11 KiB
# |
|
# For a description of the syntax of this configuration file, |
|
# see misc/tools/kconfig-language.txt. |
|
# |
|
|
|
comment "Standard C Library Options" |
|
|
|
config STDIO_BUFFER_SIZE |
|
int "C STDIO buffer size" |
|
default 64 |
|
---help--- |
|
Size of buffers using within the C buffered I/O interfaces. |
|
(printf, putchar, fwrite, etc.). |
|
|
|
config STDIO_LINEBUFFER |
|
bool "STDIO line buffering" |
|
default y |
|
---help--- |
|
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 LIB_HOMEDIR |
|
string "Home directory" |
|
default "/" |
|
depends on !DISABLE_ENVIRON |
|
---help--- |
|
The home directory to use with operations like such as 'cd ~' |
|
|
|
source libc/math/Kconfig |
|
|
|
config NOPRINTF_FIELDWIDTH |
|
bool "Disable sprintf support fieldwidth" |
|
default n |
|
---help--- |
|
sprintf-related logic is a |
|
little smaller if we do not support fieldwidthes |
|
|
|
config LIBC_FLOATINGPOINT |
|
bool "Enable floating point in printf" |
|
default n |
|
---help--- |
|
By default, floating point |
|
support in printf, sscanf, etc. is disabled. |
|
|
|
choice |
|
prompt "Newline Options" |
|
default EOL_IS_EITHER_CRLF |
|
---help--- |
|
This selection determines the line terminating character that is used. |
|
Some environments may return CR as end-of-line, others LF, and others |
|
both. If not specified, the default is either CR or LF (but not both) |
|
as the line terminating charactor. |
|
|
|
config EOL_IS_CR |
|
bool "EOL is CR" |
|
|
|
config EOL_IS_LF |
|
bool "EOL is LF" |
|
|
|
config EOL_IS_BOTH_CRLF |
|
bool "EOL is CR and LF" |
|
|
|
config EOL_IS_EITHER_CRLF |
|
bool "EOL is CR or LF" |
|
|
|
endchoice |
|
|
|
config LIBC_EXECFUNCS |
|
bool "Enable exec[l|v] / posix_spawn() Support" |
|
default n |
|
depends on !BINFMT_DISABLE |
|
---help--- |
|
Enable support for the exec[l|v] family of functions that can be |
|
used to start other programs, terminating the current program and |
|
the posix_spawn() familty of functions that can be used start other |
|
programs without terminating the current program. The typical |
|
usage of the exec[l|v] functions is (1) first call vfork() to create |
|
a new thread, then (2) call exec[l|v] to replace the new thread with |
|
a program from the file system. |
|
|
|
NOTE 1: This two step process start is completely unnecessary in |
|
NuttX and is provided only for compatibily with Unix systems. These |
|
functions are essentially just wrapper functions that (1) call the |
|
non-standard binfmt function 'exec', and then (2) exit(0). Since |
|
the new thread will be terminated by the exec[l|v] call, it really |
|
served no purpose other than to suport Unix compatility. |
|
|
|
The posix_spawn() functions do not have this inefficiency. |
|
|
|
NOTE 2: Support for exec[l|v] and posix_spawn() is conditional |
|
because they require additional support for symbol tables that |
|
will not be available in the typical system. |
|
|
|
if LIBC_EXECFUNCS |
|
|
|
config EXECFUNCS_SYMTAB |
|
string "Symbol table used by exec[l|v]" |
|
default "g_symtab" |
|
---help--- |
|
The exec[l|v] and posix_spawn() functions are wrapper functions that |
|
call the non-standard binfmt function 'exec'). The binfmt |
|
function 'exec' needs to have (1) a symbol table that provides the |
|
list of symbols exported by the base code, and (2) the number of |
|
symbols in that table. This selection provides the name of that |
|
symbol table. |
|
|
|
config EXECFUNCS_NSYMBOLS |
|
int "Number of Symbols in the Table" |
|
default 0 |
|
---help--- |
|
The exec[l|v] and posix_spawn() functions are wrapper functions that |
|
call the non-standard binfmt function 'exec'). The binfmt |
|
function 'exec' needs to have (1) a symbol table that provides the |
|
list of symbols exported by the base code, and (2) the number of |
|
symbols in that table. This selection provides the number of |
|
symbols in the symbol table. |
|
|
|
config POSIX_SPAWN_STACKSIZE |
|
int "posix_spawn Stack Size" |
|
default 1024 |
|
---help--- |
|
If posix_spawn[p] uses I/O redirection options, then it will require |
|
an intermediary/proxy task to muck with the file descriptors. This |
|
configuration item specifies the stack size used for the proxy. Default: |
|
1024 bytes. |
|
|
|
endif |
|
|
|
config LIBC_STRERROR |
|
bool "Enable strerror" |
|
default n |
|
---help--- |
|
strerror() is useful because it decodes 'errno' values into a human readable |
|
strings. But it can also require a lot of memory. If this option is selected, |
|
strerror() will still exist in the build but it will not decode error values. |
|
This option should be used by other logic to decide if it should use strerror() |
|
or not. For example, the NSH application will not use strerror() if this |
|
option is not selected; perror() will not use strerror() is this option is not |
|
selected (see also NSH_STRERROR). |
|
|
|
config LIBC_STRERROR_SHORT |
|
bool "Use short error descriptions in strerror()" |
|
default n |
|
depends on LIBC_STRERROR |
|
---help--- |
|
If this option is selected, then strerror() will use a shortened string when |
|
it decodes the error. Specifically, strerror() is simply use the string that |
|
is the common name for the error. For example, the 'errno' value of 2 will |
|
produce the string "No such file or directory" is LIBC_STRERROR_SHORT |
|
is not defined but the string "ENOENT" is LIBC_STRERROR_SHORT is defined. |
|
|
|
config LIBC_PERROR_STDOUT |
|
bool "perror() to stdout" |
|
default n |
|
---help--- |
|
POSIX requires that perror() provide its output on stderr. This option may |
|
be defined, however, to provide perror() output that is serialized with |
|
other stdout messages. |
|
|
|
config ARCH_LOWPUTC |
|
bool "Low-level console output" |
|
default "y" |
|
---help--- |
|
architecture supports low-level, boot time console output |
|
|
|
config LIB_SENDFILE_BUFSIZE |
|
int "sendfile() buffer size" |
|
default 512 |
|
---help--- |
|
Size of the I/O buffer to allocate in sendfile(). Default: 512b |
|
|
|
config ARCH_ROMGETC |
|
bool "Support for ROM string access" |
|
default n |
|
---help--- |
|
In Harvard architectures, data accesses and instruction accesses |
|
occur on different busses, perhaps concurrently. All data accesses |
|
are performed on the data bus unless special machine instructions |
|
are used to read data from the instruction address space. Also, in |
|
the typical MCU, the available SRAM data memory is much smaller that |
|
the non-volatile FLASH instruction memory. So if the application |
|
requires many constant strings, the only practical solution may be |
|
to store those constant strings in FLASH memory where they can only |
|
be accessed using architecture-specific machine instructions. |
|
|
|
If ARCH_ROMGETC is defined, then the architecture logic must export |
|
the function up_romgetc(). up_romgetc() will simply read one byte |
|
of data from the instruction space. |
|
|
|
If ARCH_ROMGETC, certain C stdio functions are effected: (1) All |
|
format strings in printf, fprintf, sprintf, etc. are assumed to lie |
|
in FLASH (string arguments for %s are still assumed to reside in SRAM). |
|
And (2), the string argument to puts and fputs is assumed to reside |
|
in FLASH. Clearly, these assumptions may have to modified for the |
|
particular needs of your environment. There is no "one-size-fits-all" |
|
solution for this problem. |
|
|
|
config ARCH_OPTIMIZED_FUNCTIONS |
|
bool "Enable arch optimized functions" |
|
default n |
|
---help--- |
|
Allow for architecture optimized implementations of certain library |
|
functions. Architecture-specific implementations can improve overall |
|
system performance. |
|
|
|
if ARCH_OPTIMIZED_FUNCTIONS |
|
config ARCH_MEMCPY |
|
bool "memcpy()" |
|
default n |
|
---help--- |
|
Select this option if the architecture provides an optimized version |
|
of memcpy(). |
|
|
|
config MEMCPY_VIK |
|
bool "Vik memcpy()" |
|
default n |
|
depends on !ARCH_MEMCPY |
|
---help--- |
|
Select this option to use the optimized memcpy() function by Daniel Vik. |
|
Select this option for improved performance at the expense of increased |
|
size. See licensing information in the top-level COPYING file. |
|
|
|
if MEMCPY_VIK |
|
config MEMCPY_PRE_INC_PTRS |
|
bool "Pre-increment pointers" |
|
default n |
|
---help--- |
|
Use pre-increment of pointers. Default is post increment of pointers. |
|
|
|
config MEMCPY_INDEXED_COPY |
|
bool "Array indexing" |
|
default y |
|
---help--- |
|
Copying data using array indexing. Using this option, disables the |
|
MEMCPY_PRE_INC_PTRS option. |
|
|
|
config MEMCPY_64BIT |
|
bool "64-bit memcpy()" |
|
default n |
|
---help--- |
|
Compiles memcpy() for architectures that suppport 64-bit operations |
|
efficiently. |
|
|
|
endif |
|
|
|
config ARCH_MEMCMP |
|
bool "memcmp()" |
|
default n |
|
---help--- |
|
Select this option if the architecture provides an optimized version |
|
of memcmp(). |
|
|
|
config ARCH_MEMMOVE |
|
bool "memmove()" |
|
default n |
|
---help--- |
|
Select this option if the architecture provides an optimized version |
|
of memmove(). |
|
|
|
config ARCH_MEMSET |
|
bool "memset()" |
|
default n |
|
---help--- |
|
Select this option if the architecture provides an optimized version |
|
of memset(). |
|
|
|
config MEMSET_OPTSPEED |
|
bool "Optimize memset() for speed" |
|
default n |
|
depends on !ARCH_MEMSET |
|
---help--- |
|
Select this option to use a version of memcpy() optimized for speed. |
|
Default: memcpy() is optimized for size. |
|
|
|
config MEMSET_64BIT |
|
bool "64-bit memset()" |
|
default n |
|
depends on MEMSET_OPTSPEED |
|
---help--- |
|
Compiles memset() for architectures that suppport 64-bit operations |
|
efficiently. |
|
|
|
config ARCH_STRCHR |
|
bool "strchr()" |
|
default n |
|
---help--- |
|
Select this option if the architecture provides an optimized version |
|
of strchr(). |
|
|
|
config ARCH_STRCMP |
|
bool "strcmp()" |
|
default n |
|
---help--- |
|
Select this option if the architecture provides an optimized version |
|
of strcmp(). |
|
|
|
config ARCH_STRCPY |
|
bool "strcpy()" |
|
default n |
|
---help--- |
|
Select this option if the architecture provides an optimized version |
|
of strcpy(). |
|
|
|
config ARCH_STRNCPY |
|
bool "strncpy()" |
|
default n |
|
---help--- |
|
Select this option if the architecture provides an optimized version |
|
of strncpy(). |
|
|
|
config ARCH_STRLEN |
|
bool "strlen" |
|
default n |
|
---help--- |
|
Select this option if the architecture provides an optimized version |
|
of strlen(). |
|
|
|
config ARCH_STRNLEN |
|
bool "strlen()" |
|
default n |
|
---help--- |
|
Select this option if the architecture provides an optimized version |
|
of strnlen(). |
|
|
|
config ARCH_BZERO |
|
bool "bzero()" |
|
default n |
|
---help--- |
|
Select this option if the architecture provides an optimized version |
|
of bzero(). |
|
|
|
endif |
|
|
|
comment "Non-standard Helper Functions" |
|
|
|
config LIB_KBDCODEC |
|
bool "Keyboard CODEC" |
|
default n |
|
---help--- |
|
In NuttX, a keyboard/keypad driver is simply a character driver that |
|
may have an (optional) encoding/decoding layer on the data returned |
|
by the character driver. A keyboard may return simple text data |
|
(alphabetic, numeric, and punctuaction) or control characters |
|
(enter, control-C, etc.). We can think about this the normal |
|
"in-band" keyboard data stream. However, in addition, most |
|
keyboards support actions that cannot be represented as text data. |
|
Such actions include things like cursor controls (home, up arrow, |
|
page down, etc.), editing functions (insert, delete, etc.), volume |
|
controls, (mute, volume up, etc.) and other special functions. We |
|
can think about this as special, "out-of-band" keyboard commands. |
|
In this case, some special encoding may be required to multiplex |
|
the in-band text data and out-of-band command streams. |
|
|
|
This option enables the functions that implement the encoding and |
|
decoding of keyboard data. These are the interfaces prototyped in |
|
include/nuttx/input/kbd_codec.h. While not correctly a part of |
|
the C library, it is included here because the decoding side of this |
|
interface must be accessible by end user programs.
|
|
|