2017-02-10 16:32:55 +01:00
|
|
|
#
|
|
|
|
# For a description of the syntax of this configuration file,
|
|
|
|
# see the file kconfig-language.txt in the NuttX tools repository.
|
|
|
|
#
|
|
|
|
|
2017-02-10 17:04:56 +01:00
|
|
|
menu "Standard C I/O"
|
2017-02-10 16:32:55 +01:00
|
|
|
|
|
|
|
config STDIO_DISABLE_BUFFERING
|
|
|
|
bool "Disable STDIO Buffering"
|
|
|
|
default n
|
|
|
|
---help---
|
|
|
|
Tiny systems may need to disable all support for I/O buffering in
|
|
|
|
order to minimize the memory footprint.
|
|
|
|
|
|
|
|
NOTE that even if STDIO buffering is enabled, you can still disable
|
|
|
|
buffering by setting CONFIG_STDIO_BUFFER_SIZE=0 or dynamically
|
|
|
|
through the setvbuf() interface. In this case, however, memory
|
|
|
|
used for buffering will be eliminated, of course, but there will be
|
|
|
|
no reduction in static code size. Only setting
|
|
|
|
CONFIG_STDIO_DISABLE_BUFFERING will reduce static code size.
|
|
|
|
|
|
|
|
The setvbuf() interface is not available if
|
|
|
|
CONFIG_STDIO_DISABLE_BUFFERING is selected.
|
|
|
|
|
|
|
|
if !STDIO_DISABLE_BUFFERING
|
|
|
|
|
|
|
|
config STDIO_BUFFER_SIZE
|
|
|
|
int "STDIO buffer size"
|
|
|
|
default 64
|
|
|
|
---help---
|
|
|
|
Size of buffers using within the C buffered I/O interfaces (printf,
|
|
|
|
putchar, fwrite, etc.). This function sets the initial I/O buffer
|
|
|
|
size. Zero disables I/O buffering initially. Any buffer size may
|
|
|
|
be subsequently modified using setvbuf().
|
|
|
|
|
|
|
|
config STDIO_LINEBUFFER
|
|
|
|
bool "STDIO line buffering"
|
|
|
|
default y
|
|
|
|
---help---
|
|
|
|
Sets the default behavior to flush buffered I/O whenever a newline
|
|
|
|
character is found in the output data stream. This setting just
|
|
|
|
sets the initial default behavior of all streams. The behavior of
|
|
|
|
an individual stream can be changed via setvbuf().
|
|
|
|
|
|
|
|
endif # !STDIO_DISABLE_BUFFERING
|
|
|
|
|
|
|
|
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 LIBC_FLOATINGPOINT
|
|
|
|
bool "Enable floating point in printf"
|
|
|
|
default n
|
|
|
|
---help---
|
2019-02-08 01:47:27 +01:00
|
|
|
By default, floating point support in printf, sscanf, etc. is
|
|
|
|
disabled. This option will enable floating point support.
|
|
|
|
|
|
|
|
if CONFIG_NANO_PRINTF is enabled, tnen this option works a
|
|
|
|
little differently. You still have to select
|
|
|
|
CONFIG_NANO_PRINTLEVEL=3 to get floating point support. In
|
|
|
|
case, this option extends the range of acceptable
|
|
|
|
values that will permit selection of CONFIG_NANO_PRINTLEVEL=3.
|
2017-02-10 16:32:55 +01:00
|
|
|
|
|
|
|
config LIBC_LONG_LONG
|
|
|
|
bool "Enable long long support in printf"
|
|
|
|
default y if !DEFAULT_SMALL
|
|
|
|
default n if DEFAULT_SMALL
|
|
|
|
---help---
|
|
|
|
Enables support for long long formats in printf, sscanf, etc. is
|
|
|
|
enabled. This is enabled by default but if you are trying to
|
|
|
|
reduce the FLASH footprint, then disabling this feature is one
|
|
|
|
option. The FLASH saves comes not from disabling the long long
|
|
|
|
formats, but rather from omitting the large long long arithmetic
|
|
|
|
libraries that will be drawn into the build if long long support
|
|
|
|
is enabled.
|
|
|
|
|
|
|
|
config LIBC_SCANSET
|
|
|
|
bool "Scanset support"
|
|
|
|
default n
|
|
|
|
---help---
|
|
|
|
Add scanset support to sscanf().
|
|
|
|
|
|
|
|
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)
|
2018-07-09 02:24:45 +02:00
|
|
|
as the line terminating character.
|
2017-02-10 16:32:55 +01:00
|
|
|
|
|
|
|
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 MEMCPY_VIK
|
|
|
|
bool "Vik memcpy()"
|
|
|
|
default n
|
|
|
|
depends on !LIBC_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.
|
2017-02-10 17:04:56 +01:00
|
|
|
|
2019-02-06 22:50:52 +01:00
|
|
|
config NANO_PRINTF
|
|
|
|
bool "Use nano printf code"
|
2019-02-08 00:37:32 +01:00
|
|
|
default y if DEFAULT_SMALL
|
|
|
|
default n if !DEFAULT_SMALL
|
2019-02-06 22:50:52 +01:00
|
|
|
---help---
|
2019-02-15 18:45:25 +01:00
|
|
|
Replace printf code with version from newlib-nano. Can be
|
|
|
|
signifcantly smaller, especially if floating support is enabled.
|
|
|
|
However, it does not include 'long long' support.
|
2019-02-06 22:50:52 +01:00
|
|
|
|
|
|
|
config NANO_PRINTLEVEL
|
|
|
|
int "Nano printf support level"
|
2019-02-09 19:19:32 +01:00
|
|
|
default 2 if !LIBC_FLOATINGPOINT
|
|
|
|
default 3 if LIBC_FLOATINGPOINT
|
2019-02-16 02:10:40 +01:00
|
|
|
range 1 2 if !LIBC_FLOATINGPOINT && !LIBC_LONG_LONG
|
|
|
|
range 1 3 if LIBC_FLOATINGPOINT && !LIBC_LONG_LONG
|
|
|
|
range 2 2 if !LIBC_FLOATINGPOINT && LIBC_LONG_LONG
|
|
|
|
range 2 3 if LIBC_FLOATINGPOINT && LIBC_LONG_LONG
|
2019-02-06 22:50:52 +01:00
|
|
|
depends on NANO_PRINTF
|
|
|
|
---help---
|
|
|
|
Nano printf can be built into more than one support level. The
|
|
|
|
default is to offer the usual modifiers and integer formatting
|
|
|
|
support (level 2). Level 1 maintains a minimal version that just
|
|
|
|
offers integer formatting, but no modifier support whatsoever.
|
|
|
|
Level 3 is intented for floating point support.
|
|
|
|
|
2017-02-10 17:04:56 +01:00
|
|
|
endmenu #Standard C I/O
|