Zpozdeni na seriovem portu 16550A

Jan Kasprzak kas na informatics.muni.cz
Úterý Srpen 19 19:33:50 CEST 2003


Igor Bujna wrote:
: Nebude to nahodou tim, ze FIFO pouziva buffer??

	FIFO na 16550A v podstate _je_ buffer. To jste nerekl nic noveho.

: Reading Data from the Port
: 
: The/ read/ 
: function can be made to return immediately by doing the following:
: 
:     fcntl(fd, F_SETFL, FNDELAY);
: 
	Ja nevim jestli jste nekdy programoval pod UNIXem. Pokud ano,
mel byste vedet, ze tohle se vubec netyka driveru. Tohle se tyka
toho, ze kdyz zadna data nejsou k dispozici, tak

: The/ FNDELAY/ option causes the/ read/ function to return 0 if no 
: characters are available on the port.

	A tohle je jeste navic IMHO spatne (read() zde vrati -1 a do
errno se dostane EAGAIN, nikoliv ze read() vrati 0).

: Jinak dobre poctenicko jak programovat seriovy port roste v teto 
: zahradce http://www.easysw.com/~mike/serial/serial.html

	Tady nic o frontach na 16550A neni.

	Mozna jeste jedna vec: na svuj dotaz uz jsem dostal celkem
ctyri odpovedi, ktere byly uplne mimo. Prosim ucastniky teto konference,
aby odpovidali pouze pokud si opravdu mysli, ze vi na co se ptam:

: >	Vite nekdo, jak v Linuxu vypnout FIFO na 16550A (nebo aspon
: >jak dosahnout toho, aby kdyz UART dostane nejaky bajt a nekdo na ten
: >bajt ceka (volam read(fd, buffer, 1), cili cekam jen na ten jeden bajt),
: >tak aby proste UART (nebo driver) ten bajt ihned predal?

	Dekuji, a omlouvam se za nevstricny ton - misto reseni problemu
zatim jen vysvetluji odpovidajicim ze jsou mimo :-(

-Y.

-- 
| Jan "Yenya" Kasprzak  <kas at {fi.muni.cz - work | yenya.net - private}> |
| GPG: ID 1024/D3498839      Fingerprint 0D99A7FB206605D7 8B35FCDE05B18A5E |
| http://www.fi.muni.cz/~kas/   Czech Linux Homepage: http://www.linux.cz/ |
|  I actually have a lot of admiration and respect for the PATA knowledge  |
| embedded in drivers/ide. But I would never call it pretty:) -Jeff Garzik |


Další informace o konferenci Linux