2019-04-30 06:51:55 -04:00
|
|
|
menu "Newlib"
|
|
|
|
|
|
|
|
choice NEWLIB_STDOUT_LINE_ENDING
|
|
|
|
prompt "Line ending for UART output"
|
|
|
|
default NEWLIB_STDOUT_LINE_ENDING_CRLF
|
|
|
|
help
|
|
|
|
This option allows configuring the desired line endings sent to UART
|
|
|
|
when a newline ('\n', LF) appears on stdout.
|
|
|
|
Three options are possible:
|
|
|
|
|
|
|
|
CRLF: whenever LF is encountered, prepend it with CR
|
|
|
|
|
|
|
|
LF: no modification is applied, stdout is sent as is
|
|
|
|
|
|
|
|
CR: each occurence of LF is replaced with CR
|
|
|
|
|
|
|
|
This option doesn't affect behavior of the UART driver (drivers/uart.h).
|
|
|
|
|
|
|
|
config NEWLIB_STDOUT_LINE_ENDING_CRLF
|
|
|
|
bool "CRLF"
|
|
|
|
config NEWLIB_STDOUT_LINE_ENDING_LF
|
|
|
|
bool "LF"
|
|
|
|
config NEWLIB_STDOUT_LINE_ENDING_CR
|
|
|
|
bool "CR"
|
|
|
|
endchoice
|
|
|
|
|
|
|
|
choice NEWLIB_STDIN_LINE_ENDING
|
|
|
|
prompt "Line ending for UART input"
|
|
|
|
default NEWLIB_STDIN_LINE_ENDING_CR
|
|
|
|
help
|
|
|
|
This option allows configuring which input sequence on UART produces
|
|
|
|
a newline ('\n', LF) on stdin.
|
|
|
|
Three options are possible:
|
|
|
|
|
|
|
|
CRLF: CRLF is converted to LF
|
|
|
|
|
|
|
|
LF: no modification is applied, input is sent to stdin as is
|
|
|
|
|
|
|
|
CR: each occurence of CR is replaced with LF
|
|
|
|
|
|
|
|
This option doesn't affect behavior of the UART driver (drivers/uart.h).
|
|
|
|
|
|
|
|
config NEWLIB_STDIN_LINE_ENDING_CRLF
|
|
|
|
bool "CRLF"
|
|
|
|
config NEWLIB_STDIN_LINE_ENDING_LF
|
|
|
|
bool "LF"
|
|
|
|
config NEWLIB_STDIN_LINE_ENDING_CR
|
|
|
|
bool "CR"
|
|
|
|
endchoice
|
|
|
|
|
|
|
|
config NEWLIB_NANO_FORMAT
|
|
|
|
bool "Enable 'nano' formatting options for printf/scanf family"
|
2022-01-12 04:29:57 -05:00
|
|
|
default y if IDF_TARGET_ESP32C2
|
2019-04-30 06:51:55 -04:00
|
|
|
help
|
2023-02-02 04:24:31 -05:00
|
|
|
In most chips the ROM contains parts of newlib C library, including printf/scanf family
|
2019-04-30 06:51:55 -04:00
|
|
|
of functions. These functions have been compiled with so-called "nano"
|
|
|
|
formatting option. This option doesn't support 64-bit integer formats and C99
|
|
|
|
features, such as positional arguments.
|
|
|
|
|
|
|
|
For more details about "nano" formatting option, please see newlib readme file,
|
|
|
|
search for '--enable-newlib-nano-formatted-io':
|
|
|
|
https://sourceware.org/newlib/README
|
|
|
|
|
2023-02-02 04:24:31 -05:00
|
|
|
If this option is enabled and the ROM contains functions from newlib-nano, the build system
|
|
|
|
will use functions available in ROM, reducing the application binary size.
|
|
|
|
Functions available in ROM run faster than functions which run from flash. Functions available
|
|
|
|
in ROM can also run when flash instruction cache is disabled.
|
|
|
|
|
|
|
|
Some chips (e.g. ESP32-C6) has the full formatting versions of printf/scanf in ROM instead of
|
|
|
|
the nano versions and in this building with newlib nano might actually increase the size of
|
|
|
|
the binary. Which functions are present in ROM can be seen from ROM caps:
|
|
|
|
ESP_ROM_HAS_NEWLIB_NANO_FORMAT and ESP_ROM_HAS_NEWLIB_NORMAL_FORMAT.
|
2019-04-30 06:51:55 -04:00
|
|
|
|
|
|
|
If you need 64-bit integer formatting support or C99 features, keep this
|
|
|
|
option disabled.
|
|
|
|
|
2022-03-02 02:49:31 -05:00
|
|
|
choice NEWLIB_TIME_SYSCALL
|
|
|
|
prompt "Timers used for gettimeofday function"
|
|
|
|
default NEWLIB_TIME_SYSCALL_USE_RTC_HRT
|
|
|
|
help
|
|
|
|
This setting defines which hardware timers are used to
|
|
|
|
implement 'gettimeofday' and 'time' functions in C library.
|
|
|
|
|
|
|
|
- If both high-resolution (systimer for all targets except ESP32)
|
|
|
|
and RTC timers are used, timekeeping will continue in deep sleep.
|
|
|
|
Time will be reported at 1 microsecond resolution.
|
|
|
|
This is the default, and the recommended option.
|
|
|
|
- If only high-resolution timer (systimer) is used, gettimeofday will
|
|
|
|
provide time at microsecond resolution.
|
|
|
|
Time will not be preserved when going into deep sleep mode.
|
|
|
|
- If only RTC timer is used, timekeeping will continue in
|
|
|
|
deep sleep, but time will be measured at 6.(6) microsecond
|
|
|
|
resolution. Also the gettimeofday function itself may take
|
|
|
|
longer to run.
|
|
|
|
- If no timers are used, gettimeofday and time functions
|
|
|
|
return -1 and set errno to ENOSYS.
|
|
|
|
- When RTC is used for timekeeping, two RTC_STORE registers are
|
|
|
|
used to keep time in deep sleep mode.
|
|
|
|
|
|
|
|
config NEWLIB_TIME_SYSCALL_USE_RTC_HRT
|
|
|
|
bool "RTC and high-resolution timer"
|
|
|
|
select ESP_TIME_FUNCS_USE_RTC_TIMER
|
|
|
|
select ESP_TIME_FUNCS_USE_ESP_TIMER
|
|
|
|
config NEWLIB_TIME_SYSCALL_USE_RTC
|
|
|
|
bool "RTC"
|
|
|
|
select ESP_TIME_FUNCS_USE_RTC_TIMER
|
|
|
|
config NEWLIB_TIME_SYSCALL_USE_HRT
|
|
|
|
bool "High-resolution timer"
|
|
|
|
select ESP_TIME_FUNCS_USE_ESP_TIMER
|
|
|
|
config NEWLIB_TIME_SYSCALL_USE_NONE
|
|
|
|
bool "None"
|
|
|
|
select ESP_TIME_FUNCS_USE_NONE
|
|
|
|
endchoice
|
|
|
|
|
2019-04-30 06:51:55 -04:00
|
|
|
endmenu # Newlib
|
2024-01-01 05:13:02 -05:00
|
|
|
|
|
|
|
config STDATOMIC_S32C1I_SPIRAM_WORKAROUND
|
|
|
|
bool
|
|
|
|
default SPIRAM && (IDF_TARGET_ESP32 || IDF_TARGET_ESP32S3) && !IDF_TOOLCHAIN_CLANG # TODO IDF-9032
|