mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
c94860d8fc
CDC ACM, ethos, Semihosting and SLIP all benefit from sending data out in larger chunks and will benefit from stdout buffering. `stdio_rtt` does have an internal TX buffer, so we don't need to do any buffering on top. With plain UART there was a slight advantage *without* buffering when testing with `tests/periph_uart_nonblocking` (with the non-blocking feature disabled). Since the removal of the buffering saves us some RAM and ROM, disable it by default there. This will be different with DMA enabled UARTs.
65 lines
1.5 KiB
Makefile
65 lines
1.5 KiB
Makefile
STDIO_MODULES = \
|
|
slipdev_stdio \
|
|
stdio_cdc_acm \
|
|
stdio_ethos \
|
|
stdio_null \
|
|
stdio_rtt \
|
|
stdio_semihosting \
|
|
stdio_uart \
|
|
#
|
|
|
|
ifneq (,$(filter newlib picolibc,$(USEMODULE)))
|
|
ifeq (,$(filter $(STDIO_MODULES),$(USEMODULE)))
|
|
USEMODULE += stdio_uart
|
|
endif
|
|
endif
|
|
|
|
ifneq (,$(filter stdio_cdc_acm,$(USEMODULE)))
|
|
USEMODULE += usbus_cdc_acm
|
|
USEMODULE += isrpipe
|
|
endif
|
|
|
|
ifneq (,$(filter stdio_rtt,$(USEMODULE)))
|
|
USEMODULE += xtimer
|
|
endif
|
|
|
|
ifneq (,$(filter stdio_ethos,$(USEMODULE)))
|
|
USEMODULE += ethos
|
|
USEMODULE += stdin
|
|
USEMODULE += stdio_uart
|
|
endif
|
|
|
|
ifneq (,$(filter stdin,$(USEMODULE)))
|
|
ifneq (,$(filter stdio_uart,$(USEMODULE)))
|
|
USEMODULE += stdio_uart_rx
|
|
endif
|
|
endif
|
|
|
|
ifneq (,$(filter stdio_uart_rx,$(USEMODULE)))
|
|
USEMODULE += isrpipe
|
|
USEMODULE += stdio_uart
|
|
endif
|
|
|
|
ifneq (,$(filter stdio_uart,$(USEMODULE)))
|
|
FEATURES_REQUIRED += periph_uart
|
|
endif
|
|
|
|
ifeq (,$(filter stdio_cdc_acm,$(USEMODULE)))
|
|
# The arduino and nrfutil bootloader features cannot be used if the
|
|
# stdio_cdc_acm module is not used
|
|
FEATURES_BLACKLIST += bootloader_arduino
|
|
FEATURES_BLACKLIST += bootloader_nrfutil
|
|
endif
|
|
|
|
ifneq (,$(filter stdio_semihosting,$(USEMODULE)))
|
|
USEMODULE += xtimer
|
|
FEATURES_REQUIRED += cpu_core_cortexm
|
|
endif
|
|
|
|
# enable stdout buffering for modules that benefit from sending out buffers in larger chunks
|
|
ifneq (,$(filter picolibc,$(USEMODULE)))
|
|
ifneq (,$(filter stdio_cdc_acm stdio_ethos slipdev_stdio stdio_semihosting,$(USEMODULE)))
|
|
USEMODULE += picolibc_stdout_buffered
|
|
endif
|
|
endif
|