Linux-Bulgaria.ORG
навигация

 

начало

пощенски списък

архив на групата

семинари ...

документи

как да ...

 

 

Предишно писмо Следващо писмо Предишно по тема Следващо по тема По Дата По тема (thread)

Re: lug-bg: Funkcii pod prekyswane w Linux-a


  • Subject: Re: lug-bg: Funkcii pod prekyswane w Linux-a
  • From: zezo@xxxxxxx (Cvetan Ivanov)
  • Date: Fri, 29 Jan 1999 02:42:13 +0200



Hi,

>     Ima li nachin da se chete direktno I/O Port pod LINUX / UNIX, i da

za tova ima nqkolko nachina. ima i nqkakvo howto po vuprosa, no s 2 dumi
variantite sa takiva 

a) open /dev/port ;seek (myport); read()
b) ioperm(port,num,access); inb(port); outb(val,port);

ako ne se luja pri b)  programata trqbva da se kompilira s -O3 za da se
expandnat pravilno inb i outb

> se prawiat FUNCTION's pod prekyswane ( BPaskal-ski stil INTERRUPT),
> bez da se pishat moduli za KERNEL-a. Razgledah SOURCE-a na

tva s prekusvaniqta e slojno. v obshtiq sluchaj ne stava,no vse pak ima
razni hackove za celta. primerno Silly Interrupt Generator ot dosemu.

btw pisaneto na kernel module (char, za block e po-slojno) ne e tolkova
strashno kolkoto zvuchi na priv pogled. znachitelno po-lesno otkolkoto
pisaneto na driver za dos ili windows - naj-malkoto vsichko e
dokumentirano i ima dostatuchno primeri.

v obshtiq sluchaj cheteneto ot user space ne garantira mnogo dobri
vremena, shtoto procesa moje da e preemptnat ot neshto drugo. ako stava
vupros za razreshavashta sposobnost > 10ms (edin tick) nqma osobeni
problemi, no nqma i garanciq kakvo tochno stava.

> prekyswane, ako sym go razbral prawilno :). Moga da byda i po-iasen,
> ako se nameri merakliia da mi pomogne, za koeto sym mu blagodaren
> predwaritelno.

nqkakvi podrobnosti mogat da pomognat :)

> P.S. Tyi kato za prekyswaneto ochakwam otricatelen otgowor, pone
> syshtestwuwa li standartna LIB funkciia, s FIFO za COMPort-a, i ako
> DA, koia e tia? I da ne e s "izchakwane", ako broia na baitowete e
> po-malyk ot zaiaweniia za chetene, a da wryshta broia na realno
> prochetenite wednaga !

nqma mnogo znachenie dali samiq port ima FIFO ili ne, zashtoto tty-to
taka ili inache ima bufer.

pod UNIX terminal i/o-to e mnogo kosmata rabota. v obshtiq sluchaj edno
tty ima [izmejdi mnogoto drugi] slednite parametri (po pamet):
threshold, timeout.

i pri blocking i/o read(tty,buf,10) moje da se poluchat razlichni
rezultati

a) read-a ne vrushta dokato nqma 10 (ili EOF, primerno modem hangup)
b) pri timeout=N thresh=M ako za N sekundi pristingat < M chars se
vrushta X=kolkoto ima, a ako dojdat M se vrushta M
c) pri timeout=0 se vrushta 1 vednaga sled kato dojde byte
d) read(tty,buff,1) vinagi shte vurne 1 vednaga sled kato dojde neshto

moje bi ima oshte edna promenliva, primerno line buffering on/off ili
neshto ot sorta

ichko tova go pishe nqkude okolo man stty

btw read() se prekusva ot SIGALRM i taka se realizirat timeouti

zezo
==================================================================
A mail-list of Linux Users Group - Bulgaria (bulgarian linuxers)
For more send to lug-bg-request@xxxxxxxxxxxx a single word 'info'
==================================================================



 

наши приятели

 

линукс за българи
http://linux-bg.org

FSA-BG
http://fsa-bg.org

OpenFest
http://openfest.org

FreeBSD BG
http://bg-freebsd.org

KDE-BG
http://kde.fsa-bg.org/

Gnome-BG
http://gnome.cult.bg/

проект OpenFMI
http://openfmi.net

NetField Forum
http://netField.ludost.net/forum/

 

 

Linux-Bulgaria.ORG

Mailing list messages are © Copyright their authors.