[linux-ileri] Re: Seri porttan interrupt - Serdar Hoca'ya

---------

From: Serdar KÖYLÜ (serdarkoylu@fisek.com.tr)
Date: Thu 21 Aug 2003 - 14:29:55 EEST

  • Next message: Derya Sezen: "[linux-ileri] Re: Seri porttan interrupt - Serdar Hoca'ya"

    Selamlar..

    Portu nasil actiniz ? Tavsiyem:

    fd = open(devicename, O_RDWR | O_NOCTTY | O_NONBLOCK);

    seklinde olmali.

    Asenkron I/O cok yuksek performans sunar. Ama cok karisik bir istir. Siz
    read yaparken bekelmediginiz gibi, write yaparken de beklemezsiniz. Bu
    durumda kernelin send ve receive bufferlerini olusturmasini
    saglamalisiniz. Hos, burada tty icin bunlar zaten acilir acilmaz
    tanimlanmis oluyor.

    > res =3D write(fd, buf, strlen(buf));
    > printf("result: %d\n", res);

    Kodun asil onemli kisimlari yok. Open, sigaction, signal handler vs. vs.
    Ama yukaridaki gibi yapmaniz, biraz sorun cikarabilir. Eger sizin
    bufferiniz kernel buffer'den buyukse impossible demesi mumkundur. Ya
    kuyruk koyacaksiniz, POSIX bunun icin gereken fonksiyonlari iyi
    tanimlamistir. Yada, bilgiyi garanti olan 1 Baytlik paketler halinde
    yollamayi bir deneyin. Unutmayin, 1 Bayt, seri haberlesmede, 8 Bitten
    fazla edebilir.. Seri haberlesmede, 16 Baytlik kernel buffer, bir hayli
    genis sayilir: 16*8 = 128 Bit..

    Kodun diger kisimlarini gorebilirsek, sanirim daha elle tutulur
    konusabiliriz.

    Saygi ve sevgiler..


  • Next message: Derya Sezen: "[linux-ileri] Re: Seri porttan interrupt - Serdar Hoca'ya"

    ---------

    Bu arsiv hypermail 2.1.6 tarafindan uretilmistir.