tio — это инструмент ввода-вывода последовательных устройств на базе Linux, предназначенный для разработчиков встраиваемых систем.

Уже есть несколько программ последовательного терминала, таких как Putty и minicom, и в последнее время мы сами используем Bootterm. Но не предел. Мартин Лунд(Martin Lund) разработал инструмент ввода-вывода для последовательных устройств на базе Linux.

Мартин обнаружил, что многие из существующих инструментов очень ориентированы на модемы или немного громоздки в использовании, поэтому он разработал tio как более простую альтернативу, уделяющую меньше внимания классическим функциям терминала/модема и больше — потребностям разработчиков встраиваемых систем и хакеров.

Хотя можно собрать tio из исходников…

$ git clone https://github.com/tio/tio
$ meson build
$ meson compile -C build
$ sudo meson install -C build

его намного проще установить как snap-пакет (и вы должны получать обновления автоматически):

$ snap install tio --classic

Посмотрим, какие опции предлагаются с параметром «help»:

tio --help
Usage: /snap/tio/438/usr/bin/tio [<options>] <tty-device|config>
 
Options:
  -b, --baudrate <bps>             Baud rate (default: 115200)
  -d, --databits 5|6|7|8           Data bits (default: 8)
  -f, --flow hard|soft|none        Flow control (default: none)
  -s, --stopbits 1|2               Stop bits (default: 1)
  -p, --parity odd|even|none       Parity (default: none)
  -o, --output-delay <ms>          Output delay (default: 0)
  -n, --no-autoconnect             Disable automatic connect
  -e, --local-echo                 Enable local echo
  -t, --timestamp                  Enable line timestamp
      --timestamp-format <format>  Set timestamp format (default: 24hour)
  -L, --list-devices               List available serial devices
  -l, --log                        Enable log to file
      --log-file <filename>        Set log filename
      --log-strip                  Strip control characters and escape sequences
  -m, --map <flags>                Map special characters
  -c, --color 0..255|none|list     Colorize tio text (default: 15)
  -S, --socket <socket>            Redirect I/O to socket
  -x, --hex-mode                   Enable hexadecimal mode
  -v, --version                    Display version
  -h, --help                       Display help
 
Options may be set via configuration file.
 
In session, press ctrl-t q to quit.
 
See the man page for more details.

Мы подключили плату USB к TTL, чтобы проверить это:

$ tio -L
/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0

Устройство определяется корректно, но не совсем так, как обычно, так как плата подключена к /dev/ttyUSB0:

[10490.292941] usb 1-1: new full-speed USB device number 4 using xhci_hcd
[10490.458456] usb 1-1: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.54
[10490.458466] usb 1-1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[10490.458470] usb 1-1: Product: USB2.0-Serial
[10490.542269] usbcore: registered new interface driver usbserial_generic
[10490.542284] usbserial: USB Serial support registered for generic
[10490.544859] usbcore: registered new interface driver ch341
[10490.544919] usbserial: USB Serial support registered for ch341-uart
[10490.544948] ch341 1-1:1.0: ch341-uart converter detected
[10490.557605] usb 1-1: ch341-uart converter now attached to ttyUSB0

В любом случае, мы все еще можем использовать его с платой Khadas VIM4 после установки скорости передачи данных на 921600:

$ tio /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 -b 921600
[11:59:32.534] tio v1.40
[11:59:32.534] Press ctrl-t q to quit
[11:59:32.544] Connected
���T7:BL:055c20;ID:9056601109811D08;FEAT:30F:1FFF0000:B002F:1;POC:CF;RCY:0;OVD:0;DFU:0;SD:2002;eMMC:0;RD-0:0;CHK:0;SCS:0;
 
Bl2_early_platform_setup: indicates bl2ex flow!
 
OTP_LIC00 : 0f0300000000ff1f2f000b0000000000
OTP_LIC10 : 008207000001fc000c00001000000300

Нам удалось запустить программу перед загрузкой платы, чтобы получить полный журнал. На самом деле он очень похож на bootterm, включая параметры временных меток:

$ tio /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 -b 921600 -t
[14:09:55.213] tio v1.40
[14:09:55.213] Press ctrl-t q to quit
[14:09:55.223] Connected
[14:09:56.976] T7:BL:055c20;ID:9056601109811D08;FEAT:30F:1FFF0000:B002F:1;POC:CF;RCY:0;OVD:0;DFU:0;SD:2002;eMMC:0;RD-0:0;CHK:0;SCS:0;
 
[14:09:57.533] Bl2_early_platform_setup: indicates bl2ex flow!
 
[14:09:57.550] OTP_LIC00 : 0f0300000000ff1f2f000b0000000000
[14:09:57.550] OTP_LIC10 : 008207000001fc000c00001000000300
[14:09:57.551] OTP_LIC20 : ffffffbfffff0700ff80008003000003
[14:09:57.551] OTP_LIC30 : 00000002010000008f03000203000000
 
[14:09:57.552] TE: 380759
 
[14:09:57.552] BL2 Built : 09:58:05, Nov 19 2021. t7 griscure-review-sc2-bl2-10272020-2-102-g199647c - jenkins@walle02-sh
 
[14:09:57.553] Board ID = 5
[14:09:57.553] Set sys clock to 24Mhz
[14:09:57.554] syspll is 1512Mhz. Locked
[14:09:57.554] sys1pll is 1608Mhz. Locked
[14:09:57.554] Set sys clock to 167Mhz
[14:09:57.555] gp0pll is 0Mhz. Locked
[14:09:57.555] bl2_platform_setup
[14:09:57.555] boot area list: 
[14:09:57.555] 1STBLOB	00000200	00040000
[14:09:57.556] BL2E	00040200	00013000
[14:09:57.556] BL2X	00053200	00011000
[14:09:57.556] DDRFIP	00064200	00040000
[14:09:57.556] DEVFIP	000a4200	00300000
[14:09:57.557] s_setup from rom:00010081

Однако tio предлагает перенаправление ввода-вывода на сокеты для сценариев или совместного использования TTY, шестнадцатеричный режим и изменение цвета текста.

Также возможно изменить конфигурацию по умолчанию через файл $XDG_CONFIG_HOME/tio/tiorc, $HOME/.config/tio/tiorc или $HOME/.tiorc.

Вы найдете все подробности об инструменте ввода/вывода для последовательных устройств на странице проекта на Github. В качестве примечания: мы не в первый раз пишем об инструментах Мартина с открытым исходным кодом, так как ранее мы рассказывали об инструментальном стандарте LXI, созданном для тестовых инструментов, совместимых с «LAN eXtensions for Instrumentation».

Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.


0 0 vote
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Inline Feedbacks
View all comments