nuttx/drivers/segger/Kconfig
yinshengkai 9c6f48e57b drivers/segger: add RTT serial support
usage:
  1. Connect Jlink, start JLinkGDBServer
     JLinkGDBServer -if SWD -device stm32h743zi -speed 16000
  2. Listen to the RTT port data and forward it to the virtual serial port
     sudo socat -d -d PTY,link=/dev/ttyRTT0,raw,ignoreeof TCP:127.0.0.1:19021,reuseaddr
  3. Read serial data
     minicom -D /dev/ttyRTT0

Performance:(STM32H743, 400MHZ)
time "dd if=/dev/zero of=/dev/console bs=512 count=2048"
6.67 sec  157KB/s

Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-07-12 09:54:50 +08:00

213 lines
5.8 KiB
Plaintext

#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#
menu "Segger RTT drivers"
config SEGGER_RTT
bool
---help---
Enable Segger J-Link RTT libraries for platforms that support it.
Selection of this option enables use of RTT for various subsystems.
Note that by enabling this option, RTT buffers consume more RAM.
if SEGGER_RTT
config SEGGER_RTT_SECTION
string "Segger RTT Control Block Section"
default ""
---help---
Declare _SEGGER_RTT global variable in the specific data section.
config SEGGER_RTT_BUFFER_SECTION
string "Segger RTT Buffer Block Section"
default SEGGER_RTT_SECTION
---help---
Declare _acUpBuffer/_acDownBuffer global variables in the specific
data section.
config SEGGER_RTT_CPU_CACHE_LINE_SIZE
int "Segger RTT Cache Line Size"
default 0
---help---
Largest cache line size (in bytes) in the target system.
config SEGGER_RTT_UNCACHED_OFF
int "Segger RTT uncached offset"
default 0
---help---
Address alias where RTT CB and buffers can be accessed uncached
config SEGGER_RTT_MAX_NUM_UP_BUFFERS
int "Segger RTT Maximum Number of UP Buffers"
default 3
---help---
Number of up-buffers (T->H) available on this target
config SEGGER_RTT_MAX_NUM_DOWN_BUFFERS
int "Segger RTT Maximum Number of Down Buffers"
default SEGGER_RTT_MAX_NUM_UP_BUFFERS
---help---
Number of down-buffers (H->T) available on this target
config SEGGER_RTT_BUFFER_SIZE_UP
int "Segger RTT UP Buffer Size"
default 1024
---help---
Size of the buffer for terminal output of target, up to host
config SEGGER_RTT_BUFFER_SIZE_DOWN
int "Segger RTT Down Buffer Size"
default 16
---help---
Size of the buffer for terminal input to target from host (Usually keyboard input)
config SEGGER_RTT1_BUFFER_SIZE_UP
int "Segger RTT Channel 1 UP Buffer Size"
depends on SEGGER_RTT_MAX_NUM_UP_BUFFERS >= 2
default SEGGER_RTT_BUFFER_SIZE_UP
---help---
Size of the buffer for channel 1 output of target, up to host
config SEGGER_RTT1_BUFFER_SIZE_DOWN
int "Segger RTT Channel 1 DOWN Buffer Size"
depends on SEGGER_RTT_MAX_NUM_DOWN_BUFFERS >= 2
default SEGGER_RTT_BUFFER_SIZE_DOWN
---help---
Size of the buffer for channel 1 input to target from host
config SEGGER_RTT2_BUFFER_SIZE_UP
int "Segger RTT Channel 2 UP Buffer Size"
depends on SEGGER_RTT_MAX_NUM_UP_BUFFERS >= 3
default SEGGER_RTT_BUFFER_SIZE_UP
---help---
Size of the buffer for channel 2 output of target, up to host
config SEGGER_RTT2_BUFFER_SIZE_DOWN
int "Segger RTT Channel 2 Down Buffer Size"
depends on SEGGER_RTT_MAX_NUM_DOWN_BUFFERS >= 3
default SEGGER_RTT_BUFFER_SIZE_DOWN
---help---
Size of the buffer for channel 2 input to target from host
choice
prompt "SEGGER_RTT_MODE"
default SEGGER_RTT_MODE_NO_BLOCK_SKIP
config SEGGER_RTT_MODE_NO_BLOCK_SKIP
bool "Skip. Do not block, output nothing. (Default)"
config SEGGER_RTT_MODE_NO_BLOCK_TRIM
bool "Trim: Do not block, output as much as fits."
config SEGGER_RTT_MODE_BLOCK_IF_FIFO_FULL
bool "Block: Wait until there is space in the buffer."
endchoice # SEGGER_RTT_MODE
endif # SEGGER_RTT
config STREAM_RTT
bool "Stream to/from Segger J-Link RTT"
select SEGGER_RTT
default n
---help---
Use Segger J-Link RTT as a stream input and output.
config SYSLOG_RTT
bool "Log to Segger J-Link RTT"
select SEGGER_RTT
default n
---help---
Use Segger J-Link RTT as a SYSLOG output device.
config SERIAL_RTT
bool "Segger RTT serial driver"
select SEGGER_RTT
select SERIAL_RXDMA
select SERIAL_TXDMA
depends on SERIAL
default n
---help---
This option is used to enable RTT serial device
In Segger RTT serial driver, RTT channel buffer and serial DMA buffer are shared,
So you cannot use RTT stream to operate it
if SERIAL_RTT
config SERIAL_RTT_POLLING_INTERVAL
int "Segger RTT serial pilling interval (us)"
default USEC_PER_TICK
---help---
This option is used to configure the RTT serial polling interval
config SERIAL_RTT0
bool "Segger RTT serial for channel 0"
default n
---help---
This option is used to enable the serial driver of channel 0
config SERIAL_RTT1
bool "Segger RTT serial for channel 1"
default n
depends on SEGGER_RTT_MAX_NUM_DOWN_BUFFERS >= 2
---help---
This option is used to enable the serial driver of channel 1
config SERIAL_RTT2
bool "Segger RTT serial for channel 2"
default n
depends on SEGGER_RTT_MAX_NUM_DOWN_BUFFERS >= 3
---help---
This option is used to enable the serial driver of channel 2
config SERIAL_RTT_CONSOLE
int "Segger RTT console channel"
default 0 if SERIAL_RTT0
default -1
---help---
Select RTT console channel, using RTT channel 0 by default.
The buffer size of RTT channel 0 is configured by SEGGER_RTT_BUFFER_SIZE_UP/DOWN
You need to turn off other console devices before using Segger RTT console
endif # SERIAL_RTT
if DRIVERS_NOTE
config SEGGER_SYSVIEW
bool "Note SEGGER SystemView driver"
select SEGGER_RTT
---help---
SystemView is a real-time recording and visualization tool for embedded
systems that reveals the true runtime behavior of an application,
going far deeper than the system insights provided by debuggers. This is
particularly effective when developing and working with complex embedded
systems comprising multiple threads and interrupts. SystemView can ensure
unintended interactions and resource conflicts.
endif # DRIVERS_NOTE
if SEGGER_SYSVIEW
config SEGGER_SYSVIEW_RTT_CHANNEL
int "Segger System View RTT channel"
default 0
---help---
The RTT channel number for SystemView, zero find the unused one.
config SEGGER_SYSVIEW_RTT_BUFFER_SIZE
int "Segger System View buffer size"
default SEGGER_RTT_BUFFER_SIZE_UP
---help---
Number of bytes that SystemView uses for the RTT buffer.
config SEGGER_SYSVIEW_RAM_BASE
int "Segger System View Ram Base"
default 0
---help---
The lowest RAM address used for IDs
endif
endmenu # Segger RTT drivers