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

Silaw.ORG
http://cilaw.org

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

 

 

© Copyright 2006 - 2008 Linux-Bulgaria.ORG

Hosted by "Internet Group" Ltd. - Stara Zagora