mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
73 lines
2.2 KiB
Markdown
73 lines
2.2 KiB
Markdown
|
USB to serial adapter tools
|
||
|
================================
|
||
|
|
||
|
Tools for finding connected USB to serial adapter devices.
|
||
|
|
||
|
Usage
|
||
|
-----
|
||
|
|
||
|
./list-ttys.sh
|
||
|
|
||
|
List all currently connected USB to serial adapters by searching through
|
||
|
`/sys/bus/usb/devices/`.
|
||
|
|
||
|
./find-tty.sh [serial_regex1] [serial_regex2] ... [serial_regexZ]
|
||
|
|
||
|
Write to `stdout` the first tty connected to the chosen programmer.
|
||
|
`serial_regexN` are extended regular expressions (as understood by `egrep`)
|
||
|
containing a pattern matched against the USB device serial number. Each of the
|
||
|
given expressions are tested, against each serial number until a match has been
|
||
|
found.
|
||
|
|
||
|
In order to search for an exact match against the device serial, use
|
||
|
'^serialnumber$' as the pattern. If no pattern is given, `find-tty.sh` returns
|
||
|
the first found USB tty (in an arbitrary order, this is not guaranteed to be
|
||
|
the `/dev/ttyUSBX` with the lowest number).
|
||
|
|
||
|
Serial strings from all connected USB ttys can be found from the list generated
|
||
|
by `list-ttys.sh`.
|
||
|
|
||
|
Exit codes
|
||
|
----------
|
||
|
`find-tty.sh` returns 0 if a match is found, 1 otherwise.
|
||
|
|
||
|
Makefile example usage
|
||
|
----------------------
|
||
|
|
||
|
The script `find-tty.sh` is designed for use from within a board
|
||
|
`Makefile.include`. An example section is shown below (for an OpenOCD based
|
||
|
solution):
|
||
|
|
||
|
# Add serial matching command
|
||
|
ifneq ($(PROGRAMMER_SERIAL),)
|
||
|
OOCD_BOARD_FLAGS += -c 'ftdi_serial $(PROGRAMMER_SERIAL)'
|
||
|
|
||
|
ifeq ($(PORT),)
|
||
|
# try to find tty name by serial number, only works on Linux currently.
|
||
|
ifeq ($(OS),Linux)
|
||
|
PORT := $(shell $(RIOTBASE)/dist/tools/usb-serial/find-tty.sh "^$(PROGRAMMER_SERIAL)$$")
|
||
|
endif
|
||
|
endif
|
||
|
endif
|
||
|
|
||
|
# Fallback PORT if no serial was specified or if the specified serial was not found
|
||
|
ifeq ($(PORT),)
|
||
|
ifeq ($(OS),Linux)
|
||
|
PORT := $(shell $(RIOTBASE)/dist/tools/usb-serial/find-tty.sh)
|
||
|
else ifeq ($(OS),Darwin)
|
||
|
PORT := $(shell ls -1 /dev/tty.SLAB_USBtoUART* | head -n 1)
|
||
|
endif
|
||
|
endif
|
||
|
|
||
|
# TODO: add support for windows as host platform
|
||
|
ifeq ($(PORT),)
|
||
|
$(info CAUTION: No terminal port for your host system found!)
|
||
|
endif
|
||
|
export PORT
|
||
|
|
||
|
|
||
|
Limitations
|
||
|
-----------
|
||
|
|
||
|
Only tested on Linux, and probably only works on Linux.
|