Используйте awk для извлечения необходимого содержимого из файла с помощью приведенной ниже команды(temp.txt
— это входной файл):
awk -F ")" '{print $1 ")" substr($2,3,2) substr($2,9) ")" substr($3,3,2) substr($3,9) ")" substr($4,3,2) }' temp.txt
Я заметил, что работающее устройство указано как:
Bus 001 Device 032: ID 0483:374b STMicroelectronics ST-LINK/V2.1
, в то время как о проблемном устройстве сообщается как:
Bus 001 Device 031: ID 0483:3748 STMicroelectronics ST-LINK/V2
См. этот обзор версий ST -LINK на странице 2 этого PDF-файла.
Встроенный ST -LINK на плате Nucleo -64 представляет собой ST -LINK/V2 -1, который имеет несколько дополнительных интерфейсов USB :интерфейс запоминающего устройства USB и виртуальный COM порт. Последнее — это то, что указано как устройство ttyACMn
в Linux.
Базовый ST -LINK/V2 (без суффикса -1 )не имеет виртуального COM-порта, поэтому нет ничего, что можно было бы сопоставить как устройство TTY.
При включении питания -базовый ST -LINK/V2 будет находиться в режиме обновления микропрограммы и требует специальной команды для переключения в режим отладки STM8 или STM32 (в зависимости от загруженной микропрограммы ). С другой стороны, ST -LINK/V2 -1 и новее запускаются с уже запущенной микропрограммой и требуют специальной команды для переключения в режим обновления микропрограммы.
Утилитаstlink-tool
на самом деле использует не устройство TTY, а необработанные команды USB. Он использует libusb-1.0
, поэтому для использования stlink-tool
вам необходимо убедиться, что соответствующий узел USB-устройства в /dev/bus/usb/*/*
доступен для вашей учетной записи пользователя. Если команда lsusb
сообщает об устройстве как Bus 001 Device 031
, то правильным узлом устройства будет соответственно /dev/bus/usb/001/031
.