Teraterm Linux эквивалентно для передачи двоичного файла на устройство - PullRequest
0 голосов
/ 10 июня 2019

Я пытаюсь изменить прошивку OpenNFM для любимого проекта.Я использую плату Olimex LPC H3131.В Windows я скомпилировал двоичный файл с использованием встроенной рабочей среды IAR и с помощью Teraterm (последовательный порт) отправил (отправил как двоичный файл) двоичный файл на плату.Это настраивает плату для работы в качестве устройства USB.Как мне вставить бинарный файл на устройство в Linux?

Я использовал миником.Я получаю сообщение «LPC31xx READY FOR PLAIN IMAGE», похожее на Teraterm.Затем я использую «CTRL + A», а затем «S» для отправки файла.Я выбираю «ASCII» на следующем экране и затем ввожу путь к двоичному файлу.Я получаю успешный перевод и сообщение «Загрузка завершена» в миникоме.Но ничего не происходит потом.Я даже не получаю вывод (записываю комментарии для отладки), который я получаю при использовании Teraterm, и при этом плата не отображается как запоминающее устройство USB.

1 Ответ

0 голосов
/ 10 июня 2019

Чтобы иметь возможность отправлять двоичный файл с minicom как ASCII, вам необходимо сначала его кодировать. Проблема в том, что вам нужно снова декодировать его на принимающей стороне, поэтому, я думаю, вы не можете следовать по этому маршруту.

К счастью, вы можете настроить Minicom, чтобы добавить новый протокол передачи. Посмотреть здесь: https://gist.github.com/cstrahan/5796653

Как видите, процедура довольно проста:

1) Сохраните скрипт где-нибудь в вашей системе, например /usr/bin/bin-xfer.sh

2) Дайте ему необходимые разрешения: $sudo chmod +x bin-xfer.sh

3) Запустите установку minicom: $sudo minicom -s и выберите протокол передачи файлов в меню

4) Добавьте новую запись, нажав J , введите имя, например binary, и нажмите клавишу ввода, чтобы перейти к следующему меню, затем добавьте командную строку /usr/bin/bin-xfer.sh -o %l и установите другие параметры в соответствии с ссылка

5) Сохраните свою конфигурацию и выйдите из меню настроек

Затем из minicom вы можете вызвать новое меню, которое вы только что добавили, с помощью CTRL + A + S

РЕДАКТИРОВАТЬ: После самостоятельного тестирования этого решения в Ubuntu 19.04 я понял, что скрипт не работает (потому что он использует другое определение функции, которое не поддерживается). Но это очень легко исправить, просто измените строку 5 с function exists { на exists() {. Также неплохо установить pv с $sudo apt-get install pv, если вы хотите следить за ходом передачи.

Как примечание: вам не нужно использовать minicom, вы можете использовать этот скрипт как самостоятельный инструмент, но для этого вам нужно настроить порт с помощью stty, что-то вроде:

$ stty -F /dev/ttyUSB0 115200 raw cs8 -ixoff -cstopb -parenb

А затем запустите скрипт с:

$ bin-xfer.sh -i bin_file_to_send -o /dev/ttyUSB0

Я также протестировал этот скрипт Python, и он также работает и может быть добавлен в меню Minicom аналогичным образом.

...