From: Serdar KÖYLÜ (serdarkoylu@fisek.com.tr)
Date: Fri 03 Sep 2004 - 14:41:54 EEST
Selamlar..
Mimari geregi boyle bir sey mumkun degil. IRQ Dedigimiz interruptlar bu
is icin var. Tek yapabileceginiz polling. Ama buda verimsiz, zor ve
garantisiz bir yontemdir:
port_select(int port) {
int old;
old = inb(port);
while (old == inb(port))
usleep(10); /* 10 mikrosaniye bekle */
}
Tonla dezavantaj vs. var. Herseyden once gereksiz CPU yuku...
Yapacaginiz donanim bilesenini IRQ uretecek sekilde hazirlarsaniz bu
sorunu cozersiniz..
Saygi ve sevgiler..
}
> Elimde ozel bir aygıt var, basitce inb() ve outb() ile belirli
> registerlari okuyup yazarak isleyen bir mekanizma kurmus durumdayim.
> Simdi bu sisteme bir kac analog input baglayip, inputlarda bir degisim
> oldugu anda uygulamadan bir fonksiyonun calismasini saglamak istiyorum.
> Port programming belgelerinde /dev/port özel aygiti üzerinden
> programlama yapmanın dezavantaji olarak select() kullanamiyor olmak
> gösteriliyor ancak ben /dev/port yontemini kullanmamama ragmen select()
> yapisi ile gerektiginde uyanip ilgili degerleri portlardan nasil
> okuyacagimi da bilmiyorum. Bu konuda fikri olan var mi :)
>
>
>