każdy wie, że przerywnik powinien być krótki, jak to możliwe. i dodawanie funkcji, takich jak printk
do debugowania wewnątrz obsługi przerwań, jest czymś, czego nie powinno się robić. Właściwie, próbowałem go wcześniej, kiedy debugowałem jądro Linuxa dla napisanego przeze mnie urządzenia z obsługą przerwania, i to zepsuło czas sterownika.printk wewnątrz obsługi przerwań, czy to naprawdę takie złe?
Mam pytanie, dlaczego tak się dzieje? printk
Funkcja jest buforowana! oznacza to, o ile rozumiem, że dane są wstawiane do kolejki i są obsługiwane później, najprawdopodobniej po zakończeniu obsługi przerwań.
Dlaczego więc to nie działa?
Rozważ możliwość, że twoja funkcja drukowania po prostu wypełni bufor, zmuszając go do przepłukania. Co się stanie podczas wykonywania operacji wejścia/wyjścia w obsłudze przerwań? –
TAK, jest naprawdę źle. Dziękuję i dobranoc. –
It * does * work. 'printk' jest przeznaczony do wywołania z kontekstu przerwań lub procesów. Gdyby tak nie było, nie byłoby zbyt wiele do debugowania. Oczywiście nie nazywasz tego w kontekście przerwań w sterowniku produkcyjnym. – EML