Archiwum kategorii: Kurs pisania sterowników

Lekcja 15- Zakończenie

To byłoby na tyle z rzeczy, które chciałem przedstawić. W chwili obecnej posiadasz już sporo wiedzy nt. kernela Linuksa, umiesz implementować już proste moduły co jest dobrą podstawą do dalszej nauki jeśli interesuje Cię ta tematyka. Polecane lektury Tematyka kernela … Czytaj dalej

Zaszufladkowano do kategorii Kurs pisania sterowników | Dodaj komentarz

Lekcja 14- Górne i dolne połówki

Wstęp W tej lekcji zapoznamy się z koncepcją górnych i dolnych połówek(ang. top and bottom halves). Pojęcie połówek ma związek z obsługą przerwań. Używanie połówek oznacza, że obsługa danego zdarzenia zostaje podzielona na dwie części. Pierwszą część będzie stanowić stanowić … Czytaj dalej

Zaszufladkowano do kategorii Kurs pisania sterowników | Dodaj komentarz

Lekcja 13- I2C

Wstęp W tej lekcji zapoznamy się z obsługą magistrali I2C z poziomu modułu kernelowego. Wykorzystamy tutaj wiedzę z poprzednich lekcji- a w szczególności z lekcji o sterownikach platformowych i device-tree. Implementacja W tej lekcji zaimplementujemy sterownik dla zegara RTC DS3231. … Czytaj dalej

Zaszufladkowano do kategorii Kurs pisania sterowników | Dodaj komentarz

Lekcja 12- Synchronizacja

Wstęp W tej lekcji zapoznamy się z metodami synchronizacji. Ponieważ zajęliście się linuksowym kernelem to zakładam, że całkiem dobrze programujecie i wiecie czym jest mutex oraz spinlock i ogólnie na czym polega synchronizacja. Implementacja W tej lekcji zaimplementujemy aż 5 … Czytaj dalej

Zaszufladkowano do kategorii Kurs pisania sterowników | Dodaj komentarz

Lekcja 11- Eksportowanie symboli

Wstęp W tej krótkiej lekcji dowiemy się jak używać symboli zdefiniowanych w jednym module w innym module. Co rozumiem przez symbol? Przez symbol rozumiem zmienną lub funkcję. Umożliwienie użycia symbolu innym modułom nazywamy najczęściej po prostu eksportowaniem symboli. Implementacja Jak … Czytaj dalej

Zaszufladkowano do kategorii Kurs pisania sterowników | Dodaj komentarz

Lekcja 10- Device-tree

Wstęp W tej lekcji zapoznamy się ze sposobem użycia device-tree z poziomu modułu kernelowego. Jeśli nie masz najmniejszego pojęcia czym jest device-tree to odsyłam do lekcji 6 z kursu budowania Linuksa. Device-tree Zanim użyjemy device-tree w sterowniku to najpierw musimy … Czytaj dalej

Zaszufladkowano do kategorii Kurs pisania sterowników | Dodaj komentarz

Lekcja 09- Sterowniki platformowe

Wstęp Urządzenia platformowe(ang. Platform devices) to krótko mówiąc urządzenia, które nie posiadają mechanizmu automatycznego wykrycia czyli popularnie mówiąc nie mają hot-pluga. Takimi urządzeniami na pewno nie będą żadne urządzenia używające USB. Przykładowymi urządzeniami platformowymi będą wszelkie urządzenia komunikujące się po … Czytaj dalej

Zaszufladkowano do kategorii Kurs pisania sterowników | Dodaj komentarz

Lekcja 08- sysfs

Wstęp W tej lekcji zapoznamy się z implementacją kolejnej metody komunikacji z urządzeniem. W lekcji 03 zapoznaliśmy się z urządzeniami znakowymi i tworzyliśmy plik urządzenia w katalogu /dev, który reprezentował to urządzenie. Teraz utworzymy atrybut dla tego urządzenia. Mówiąc obrazowo, … Czytaj dalej

Zaszufladkowano do kategorii Kurs pisania sterowników | Dodaj komentarz

Lekcja 07- Parametry modułów

Wstęp Czasami chcemy aby nasz moduł był bardziej uniwersalny i mógł obsługiwać dane peryferium, ale podłączone do różnych magistrali i pinów. My w tym celu wykorzystamy parametry przekazywane do modułów, będziemy mogli przekazać naszemu sterownikowi do którego pinu GPIO jest … Czytaj dalej

Zaszufladkowano do kategorii Kurs pisania sterowników | Dodaj komentarz

Lekcja 06- Przerwania

Wstęp Przerwanie to zdarzenie zewnętrzne odbierane przez system, które musi zostać obsłużone przez system. Takim zdarzeniem może być np. wciśnięcie guzika czy odebranie danych przez kartę sieciową. Obsługa przerwania jest wykonywana poprzez odpowiednio zdefiniowaną funkcję. Dzięki użyciu przerwań nie musimy … Czytaj dalej

Zaszufladkowano do kategorii Kurs pisania sterowników | Dodaj komentarz