LINUX.ORG.RU

Отключить line buffering у /dev/ttyFIQ

 ,


0

1

Проблема Y

Решил попробовать через UART пройти плату с rockchip отладчиком ядра. Вроде всё по инструкции сделал, но упёрся в непонятную ситуацию:

(gdb) target remote /dev/ttyUSB0
Remote debugging using /dev/ttyUSB0
Remote replied unexpectedly to 'vMustReplyEmpty': vMustReplyEmpty

Есть подозрения, что у /dev/ttyFIQ0 включена построчная буферизация, т.к. когда я делаю на устройстве:

# cat /dev/ttyFIQ0

И делаю:

(gdb) target remote /dev/ttyUSB0

По UART явно данные передаются (лампочка мигает), но при этом ничего не выводится. Но если потом сделать:

echo > /dev/ttyUSB0

На устройстве будет что-то вроде:

# cat /dev/ttyFIQ0 
+$qSupported:multiprocess+;swbreak+;hwbreak+;qRelocInsn+;fork-events+;vfork-events+;exec-events+;vContSupported+;QThreadEvents+;QThreadOptions+;no-resumed+;memory-tagging+;xmlRegisters=i386;error-message+#14---+$vCont?#49---+ <дальше опущено>

Проблема X

Следовательно, вопрос: как у /dev/ttyFIQ0 отключить буфферизацию ввода?

# stty -F /dev/ttyFIQ0 
speed 115200 baud; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>;
swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;
flush = ^O; min = 1; time = 0;
-brkint ixoff -imaxbel

P.s. baudrate правильный, в /etc/inittab консоль отключена.

В общем проблемы X нет.

(gdb) set debug remote on
(gdb) target remote /dev/ttyUSB0
Remote debugging using /dev/ttyUSB0
[remote] start_remote_1: enter
  [remote] Sending packet: $qSupported:multiprocess+;swbreak+;hwbreak+;qRelocInsn+;fork-events+;vfork-events+;exec-events+;vContSupported+;QThreadEvents+;QThreadOptions+;no-resumed+;memory-tagging+;xmlRegisters=i386;error-message+#14
  [remote] Received Ack
  [remote] Packet received: qSupported:multiprocess+;swbreak+;hwbreak+;qRelocInsn+;fork-events+;vfork-events+;exec-events+;vContSupported+;QThreadEvents+;QThreadOptions+;no-resumed+;memory-tagging+;xmlRegisters=i386;error-message+
  [remote] packet_ok: Packet qSupported (supported-packets) is supported
warning: Remote target reported "QThreadOptions" without supported options.
  [remote] Sending packet: $vCont?#49
  [remote] Received Ack
  [remote] Packet received: vCont?
  [remote] packet_ok: Packet vCont (verbose-resume) is NOT supported
  [remote] Sending packet: $vMustReplyEmpty#3a
  [remote] Received Ack
  [remote] Packet received: vMustReplyEmpty
[remote] start_remote_1: exit
Remote replied unexpectedly to 'vMustReplyEmpty': vMustReplyEmpty
Jullyfish
() автор топика
Последнее исправление: Jullyfish (всего исправлений: 1)

Надо было также дать на отладываемом устройстве:

echo g > /proc/sysrq-trigger

Проблема Y решена. Спасибо, ЛОР, за rubberduckling!

Jullyfish
() автор топика
Ответ на: комментарий от Jullyfish

Пожалуйста 😊

rubberduckling

Оказывается эмодзи с резиновой уточкой не существует, какой только дичи в UNICODE нет, даже говяшки есть, а уточки резиновой нет

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария