Thread View: pl.comp.os.linux.programowanie
1 messages
1 total messages
Started by Takie Jeden ĹoĹ
Fri, 16 Dec 2011 13:04
Parzystosci portu szeregowego
Author: Takie Jeden ĹoĹ
Date: Fri, 16 Dec 2011 13:04
Date: Fri, 16 Dec 2011 13:04
44 lines
1902 bytes
1902 bytes
Witam,
Pisze programik obslugujacy urzadzenie podlaczone przez COMa. W kodzie jadra
w pliku drivers/char/n_tty.c jest taka procedura obslugujaca (chyba) blad
parzystosci:
---------
static inline void n_tty_receive_parity_error(struct tty_struct *tty,
unsigned char c)
{
if (I_IGNPAR(tty))
return;
if (I_PARMRK(tty)) {
put_tty_queue('\377', tty);
put_tty_queue('\0', tty);
put_tty_queue(c, tty);
} else if (I_INPCK(tty))
put_tty_queue('\0', tty);
else
put_tty_queue(c, tty);
wake_up_interruptible(&tty->read_wait);
}
--------------
Wynika z niej, ze jesli mam ustawiony dla portu szeregowego PARMRK, to INPCK
nie powinno miec znaczenia. A niestety eksperymentalnei sprawdzilem, ze tak
nie jest tzn. jesli mam ustawiony
newtio.c_iflag = IGNCR | INPCK | PARMRK ;
to rzeczywiscie bajty z bledem parzystosci sa poprzedzane bajtami \377 \0,
natomiast jesli mam ustawione tylko
newtio.c_iflag = IGNCR | PARMRK ;
to jadro bajty z bledem parzystosci sa przepuszczane wszystkie, bez
poprzedzenia bajtami \377 \0.
Dlaczego taksie dzieje?
Pozdrawiam
TJĹ
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads