mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
6d729033e5
While testing examples/micropython I notice that the default of miniterm.py is actually miniterm. To simplify user setups, this checks for miniterm.py first then falls back to miniterm.
84 lines
3.0 KiB
Makefile
84 lines
3.0 KiB
Makefile
# Select the most recently attached tty interface
|
|
ifeq (1,$(MOST_RECENT_PORT))
|
|
ifneq (,$(filter stdio_cdc_acm,$(USEMODULE)))
|
|
TTY_BOARD_FILTER ?= --model $(BOARD) --vendor 'RIOT-os\.org'
|
|
endif
|
|
TTY_SELECT_CMD ?= $(RIOTTOOLS)/usb-serial/ttys.py \
|
|
--most-recent \
|
|
--format path serial \
|
|
$(TTY_BOARD_FILTER)
|
|
TTY_DETECTED := $(shell $(TTY_SELECT_CMD) || echo 'no-tty-detected no-serial-detected')
|
|
PORT_DETECTED := $(firstword $(TTY_DETECTED))
|
|
PORT_SERIAL_DETECTED := $(lastword $(TTY_DETECTED))
|
|
PORT ?= $(firstword $(TTY_DETECTED))
|
|
ifeq (1,$(DEBUG_ADAPTER_ID_IS_TTY_SERIAL))
|
|
DEBUG_ADAPTER_ID ?= $(PORT_SERIAL_DETECTED)
|
|
endif
|
|
endif
|
|
# Otherwise, use as default the most commonly used ports on Linux and OSX
|
|
PORT_LINUX ?= /dev/ttyACM0
|
|
PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.usbmodem*)))
|
|
|
|
# set default port depending on operating system
|
|
ifeq ($(OS),Linux)
|
|
PORT ?= $(PORT_LINUX)
|
|
else ifeq ($(OS),Darwin)
|
|
PORT ?= $(PORT_DARWIN)
|
|
endif
|
|
|
|
# Default PROG_DEV is the same as PORT
|
|
PROG_DEV ?= $(PORT)
|
|
|
|
export BAUD ?= 115200
|
|
|
|
ifneq (,$(filter stdio_rtt,$(USEMODULE)))
|
|
ifeq (${PROGRAMMER},openocd)
|
|
RIOT_TERMINAL ?= openocd-rtt
|
|
else ifeq (${PROGRAMMER},jlink)
|
|
RIOT_TERMINAL ?= jlink
|
|
else ifeq (${RIOT_TERMINAL},)
|
|
$(warning "Warning: No RIOT_TERMINAL set, but using stdio_rtt: The default terminal is likely not to work.")
|
|
endif
|
|
endif
|
|
|
|
RIOT_TERMINAL ?= pyterm
|
|
ifeq ($(RIOT_TERMINAL),pyterm)
|
|
TERMPROG ?= $(RIOTTOOLS)/pyterm/pyterm
|
|
TERMFLAGS ?= -p "$(PORT)" -b "$(BAUD)" $(PYTERMFLAGS)
|
|
else ifeq ($(RIOT_TERMINAL),socat)
|
|
SOCAT_OUTPUT ?= -
|
|
TERMPROG ?= $(RIOT_TERMINAL)
|
|
TERMFLAGS ?= $(SOCAT_OUTPUT) open:$(PORT),b$(BAUD),echo=0,raw,cs8,parenb=0,cstopb=0
|
|
else ifeq ($(RIOT_TERMINAL),picocom)
|
|
TERMPROG ?= picocom
|
|
TERMFLAGS ?= --nolock --imap lfcrlf --baud "$(BAUD)" "$(PORT)"
|
|
else ifeq ($(RIOT_TERMINAL),miniterm)
|
|
# Check if miniterm.py is available in the path, if not use just miniterm
|
|
# since new versions will only have miniterm and not miniterm.py
|
|
ifeq (,$(shell command -v miniterm.py 2>/dev/null))
|
|
TERMPROG ?= miniterm
|
|
else
|
|
TERMPROG ?= miniterm.py
|
|
endif
|
|
# The RIOT shell will still transmit back a CRLF, but at least with --eol LF
|
|
# we avoid sending two lines on every "enter".
|
|
TERMFLAGS ?= --eol LF "$(PORT)" "$(BAUD)" $(MINITERMFLAGS)
|
|
else ifeq ($(RIOT_TERMINAL),jlink)
|
|
TERMPROG = $(RIOTTOOLS)/jlink/jlink.sh
|
|
TERMFLAGS = term-rtt
|
|
else ifeq ($(RIOT_TERMINAL),semihosting)
|
|
TERMPROG = $(DEBUGGER)
|
|
TERMFLAGS = $(DEBUGGER_FLAGS)
|
|
OPENOCD_DBG_EXTRA_CMD += -c 'arm semihosting enable'
|
|
$(call target-export-variables,term cleanterm,OPENOCD_DBG_EXTRA_CMD)
|
|
else ifeq (${RIOT_TERMINAL},openocd-rtt)
|
|
TERMENV = RAM_START_ADDR=${RAM_START_ADDR} RAM_LEN=${RAM_LEN}
|
|
TERMPROG = $(RIOTTOOLS)/openocd/openocd.sh
|
|
TERMFLAGS = term-rtt
|
|
else ifeq (${RIOT_TERMINAL},bootterm)
|
|
TERMENV = BT_PORT_CRLF=1
|
|
TERMPROG = $(RIOTTOOLS)/bootterm/bt
|
|
TERMFLAGS = $(BOOTTERMFLAGS) -a -b $(BAUD) $(PORT)
|
|
TERMDEPS += $(TERMPROG)
|
|
endif
|