Я пытаюсь установить связь между одноплатным компьютером и ПК через COM-порты. На одноплатном компьютере я использую Debian Linux, и есть два UART, которые я могу использовать. На одном из UART (ttyS1) я могу общаться (отправлять и получать) без проблем. Когда я пытаюсь связаться с другим UART (ttyS0), отправка работает отлично, однако прием теряет 1-й байт (отправляет сообщение об ошибке на консоль ПК, говорящее что введенный символ не является командой), и тогда все будущие символы будут приниматься правильно.
Если я переключаюсь с приема на отправку, а затем обратно на получение, происходит то же самое. Если я остаюсь в режиме приема, я могу получать символы столько, сколько захочу, без потери данных. Похоже, что это происходит из-за перехода от отправки к получению.
Как я упоминал ранее, я не вижу этой проблемы на другом UART (ttyS1). Я начал искать причины, почему два порта разные. Я использовал одну и ту же программу для настройки отправки и получения для обоих UARTS, поэтому проблема не в настройке программы. Одна вещь, которую я обнаружил, когда я набрал команду dmesg |grep tty
, я получаю следующее:
[ 0.000000] Kernel command line: console=ttyS0,115200 root=/dev/mmcblk0p2 roo twait loglevel=8 panic=10
[ 0.446780] sunxi-uart.1: ttyS0 at MMIO 0x1c28400 (irq = 2) is a U6_16550A
[ 1.114996] console [ttyS0] enabled
[ 1.154643] sunxi-uart.3: ttyS1 at MMIO 0x1c28c00 (irq = 4) is a U6_16550A
Я вижу, что ttyS0 имеет связанную с ним «консоль [ttyS0]», а ttyS1 — нет. Мне было интересно, что означает «консоль [ttyS0] включена»?
Кроме того, есть ли способ отключить его, чтобы увидеть, является ли это причиной моей «первой потери данных»? В моей настройке одноплатного компьютера я вижу, что ttyS0 обозначен как «порт отладки».
Мне также было интересно, является ли это аналогом консоли?
Может кто-нибудь объяснить, что означает включение консоли?