LINUX.ORG.RU
ФорумTalks

Зачем /dev/ttyS0 столько режимов работы?

 


1

2

tcvs@vladislav:~/data/works/moped/atmega$ stty -F /dev/ttyS0 -a
speed 9600 baud; rows 0; columns 0; 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;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel -iutf8
-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig -icanon iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt -echoctl -echoke

Это же куча параметров. Зачем оно? Всякие МК вполне обходятся куда меньшим количеством параметров у uart

★★★★★

Последнее исправление: cvs-255 (всего исправлений: 4)

Ответ на: комментарий от robot12

Наследие чего? 8250 16550 и прочие uart не имеют _стольки_ параметров

А главное, некоторые из этих параметров вообще непонятно к чему. Например, как я заметил недавно, если стоят параметры echo*, то при чтении байта в ответ шлется тоже байт. А это уже чисто программное извращение.

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от robot12

Почитал. Да, грустно это. Нет получается в linux поддержки serial port не через костыли

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

Наследие чего?

Множества разных терминалов.

bigbit ★★★★★
()
Ответ на: комментарий от cvs-255

Если сильно интересно, всё же необходимо понимать что TTY это немного больше чем RS232. Рекомендую начать копать в область VT100, ECMA-48. Ну а проще конечно достать где нить тот самый терминал и прицепить его. Да и что такое terminfo почитай :)

robot12 ★★★★★
()
Ответ на: комментарий от robot12

Рекомендую начать копать в область VT100, ECMA-48.

Мне это как раз не интересно. Мне куда более нужно напрямую работать с rs232. Без всех этих tty. Потому что есть железка, и нужно с ней работать. А всякие tty-фичи только отвлекают

Вот не давнее как сегодня я случайно забыл установить правильно один из этих tty-параметров, так целый час бился в поисках, где же я ошибся.

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 2)
Ответ на: комментарий от AiFiLTr0

Осиливаю. Но это как вырезать гланды через жопу. Сперва сделать доступ к com порту только через tty, а потом думать, как выкинуть лишние эффекты, идущие от tty

Даже в винде, емнип, такого нет.

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от AiFiLTr0

Так в чем проблема-то? ставь его в raw без input processing и все.

я raw и поставил. Всякие проверки четности тоже выкинул.

Вроде должно работать правильно, а оно почему то шлет на выход байт при каждом чтении, внося сбой в работу устройства. Пока не отключил echo*, которые в man stty идут в local settings, оно так и слало.

cvs-255 ★★★★★
() автор топика

Не ссыте посоны, тут вы не одиноки:

speed 9600 baud; 37 rows; 100 columns;
lflags: -icanon -isig -iexten -echo -echoe -echok -echoke -echonl
        -echoctl -echoprt -altwerase -noflsh -tostop -flusho -pendin
        -nokerninfo -extproc
iflags: -istrip -icrnl -inlcr -igncr -ixon -ixoff -ixany -imaxbel -ignbrk
        -brkint -inpck -ignpar -parmrk
oflags: -opost onlcr -ocrnl tab0 -onocr -onlret
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow
        -dtrflow -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
        eol2 = <undef>; erase = ^H; erase2 = ^H; intr = ^C; kill = ^U;
        lnext = ^V; min = 1; quit = ^\; reprint = ^R; start = ^Q;
        status = ^T; stop = ^S; susp = ^Z; time = 0; werase = ^W;
u@netbook:~> uname -sr
FreeBSD 9.1-RELEASE
IPR ★★★★★
()

ну вот че ты ноешь!?!?!?

nerfur ★★★
()
Ответ на: комментарий от AiFiLTr0

осиль linux serial howto

Мой сосед по комнате в общаге его даже как-то переводил на русский язык.
А тут «я случайно забыл». Куда катится мир!

yax123 ★★★★★
()
Ответ на: комментарий от IPR

szhilkin-mac:~ szhilkin$ stty -a
speed 9600 baud; 24 rows; 80 columns;
lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl
	-echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
	-extproc
iflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel iutf8
	-ignbrk brkint -inpck -ignpar -parmrk
oflags: opost onlcr -oxtabs -onocr -onlret
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow
	-dtrflow -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
	eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;
	min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
	stop = ^S; susp = ^Z; time = 0; werase = ^W;
szhilkin-mac:~ szhilkin$ uname -a
Darwin szhilkin-mac.local 11.4.2 Darwin Kernel Version 11.4.2: Thu Aug 23 16:25:48 PDT 2012; root:xnu-1699.32.7~1/RELEASE_X86_64 x86_64
szhilkin-mac:~ szhilkin$ 

Да да, совершенно не одиноки. Вот в Plan9 /dev/eia* по другому устроен.

robot12 ★★★★★
()
Ответ на: комментарий от robot12

/dev/eia*

как то не смотрел. Как там? нету p9 под рукой

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от yax123

А тут «я случайно забыл». Куда катится мир!

туда, где консоль на rs232 нужна куда меньше самого rs232

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

У меня она так и не взлетела ни в виртуалбоксе, ни в qemu. Думаю, что и на хосте не взлетит

О_о У меня и на нетбуке, и на сервере. Всё отлично, проблем нет, брат жив. Это сообщение пишу из неё.

IPR ★★★★★
()
Ответ на: комментарий от IPR

в виртуалбоксе page fault при запуске, а в qemu ошибка на стадии копирования файлов при достаточном свободном месте. md5 сходится

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 2)
Ответ на: комментарий от AGUtilities

Если человек при удалении себе гланд через жопу (а по другому инструмент не позволяет) случайно ошибется, он ССЗБ?

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от AGUtilities

удачный. Делать драйвер rs232 только в виде терминала, а потом приходится думать, как бы отключить побочные эффекты - именно удаление гланд через жопу

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от nanoolinux

Про это я тоже когда то писал.

Вообще, у современных компьютеров, внезапно, туговато обстоит дело с сопряжением с внешними устройствами и реальным миром. То есть сопрячь можно, но по сравнению со микроконтроллерными gpio и uart это костыли.

Либо же надо специальные микросхемы покупать

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 3)
Ответ на: комментарий от cvs-255

зато надёжности и скорости выросли на порядок и больше. а spi to serial конвертер те, кому оно надо могут сваять из какой-нибудь атмеги на коленке за 5ть с половиной минут. я уже не говорю про то, что наработки для i2c уже давно есть в ядре.

nanoolinux ★★★★
()
Ответ на: комментарий от robot12

Вот в Plan9 /dev/eia* по другому устроен.

Ну-ка, ну-ка! Прочитал сейчас статью по ссылке выше про старые телетайпы на туалетной бумаге и говно мамонта в ядре. Интересно, в Plan9 это все лежит тоже, да?

ls-h ★★★★★
()
Ответ на: комментарий от cvs-255

35 Мбайт/с через usb и 150Kбайт/с через паралельный порт например (длина одна и та же приблизительно). скорости сопоставимы, да. размеры и вес разъёмов тоже иногда аргумент.

nanoolinux ★★★★
()
Ответ на: комментарий от cvs-255

USB будет бажно работать на длинном кабеле только из-за падения напруги разве что. Лечится установкой степ-апа на конце провода перед модемом, либо (вариант для бедных и с длинной шнура метров пять, не больше) нихреновой такой развязки 4700uF или больше. Правда, надо смотреть чтобы она inrush'эм тебе не прибила хост.

AiFiLTr0 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.