Strona 1 z 1
interrupt.h, irq.h przechwytwanie przerwania sprzętowego
: 01 kwietnia 2009, 00:08
autor: Sem
Brakuje mi opisanych w temacie plików nagłówkowych. Powinny znajdować się w /usr/include/linux bodajże ale niestety brakuje ich.
Potrafiłby ktoś podpowiedzieć co doinstalować, żeby już wszystkie pliki mieć?
Chyba że, jest jakiś inny sposób w Linuksie na przechwycenie przerwania sprzętowego, dokładnie IRQ 7 (przerwanie portu LPT, domyślnie IRQ 7 lub IRQ5).
Ewentualnie jak przejść do trybu rzeczywistego (takiego w którym np. DOS pracuje), żeby edytować tablicę wektorów przerwań.
Pozdrawiam, czekam na sugestie.
: 01 kwietnia 2009, 00:44
autor: AdeBe
Sem pisze:Brakuje mi opisanych w temacie plikow naglowkowych. powinny znajdowac sie w /usr/include/linux
bodajze... ale niestety brakuje ich...
Potrafilby ktoś podpowiedzieć co doinstalować, żeby już wszystkie pliki mieć?
kernel-headers, kernel-source jak mnie pamięć nie myli (ew. zamień kernel na linux w nazwie)
Ewentualnie... jak przejść do trybu rzeczywistego (takiego w którym np. DOS pracuje), żeby edytować tablicę wektorów przerwań...
Napisać moduł jądra który jest wykonywany w kernel space. Ale nie jestem pewien czy właśnie to chcesz zrobić. Równie dobrze możesz sobie uszkodzić sprzęt lub stracić dane.
: 01 kwietnia 2009, 11:18
autor: Sem
Ogólnie projektem jest prosty układ sterowania przez port równoległy ale z obsługą i przechwyceniem przerwania. Więc chyba nie ma sensu bawić się w pisanie modułu?
Zatem nagłówki albo się doinstalują, albo zostanie powrót do DOSa?
Ogólnie odnośnie tych plików to znalazłem w repozytoriach jakieś linux-headers-2.6.26.1 i coś tam jeszcze bodajże. Tyle że on mi to zainstalował w /usr/src/include/linux-headers- (nazwa z repozytorium)?
Czyli ogólnie w innym katalogu niż jest poszukiwane? Jak dołączyć te pliki z innych katalogów nie podając całej tej cudownej ścieżki?
: 01 kwietnia 2009, 21:39
autor: AdeBe
Sem pisze:Jak dołączyć te pliki z innych katalogów nie podając całej tej cudownej ścieżki?
Zrobić odpowiedniego symlinka na /usr/include, albo podać to ścieżkę raz przy pisaniu makefile'a i się potem nie przejmować.
Sem pisze:Ogólnie projektem jest prosty układ sterowania przez port równoległy ale z obsługą i przechwyceniem przerwania. Więc chyba nie ma sensu bawić się w pisanie modułu?
Obsługa przerwań jest możliwa
tylko w kernel space, musisz po prostu napisać sterownik Tobie odpowiadający (albo zmodyfikuj już dostępny w jądrze). W dodatku sama procedura obsługi przerwania jest obłożona bardzo dużymi obostrzeniami, np. brak możliwości korzystania z koprocesora matematycznego, procedura taka jest niewywłaszczalna, brak możliwości zapisywania do pamięci w user space i jeszcze kilka innych. Dlatego do mniej krytycznych fragmentów stosuje się tzw. workqueues.
Ale to już chyba trochę za bardzo się rozpędziłem