Czy ktoś zna jakieś samouczki programowania jądra / sterownika?

12

Jestem zainteresowany wykorzystaniem RPi do nauki programowania na poziomie sprzętowym. Szukałem w Internecie kilku samouczków dotyczących RPi, ale wszystko, co znajdę, to ogólne samouczki „jak skompilować jądro”. Bardziej interesują mnie samouczki typu „jak pisać kod jądra / sterowniki urządzeń”. Czy istnieją specjalne samouczki dotyczące RPi, czy może wystarczyłby samouczek * nix do programowania na poziomie sprzętowym?

Kuba
źródło
2
@ Jivings: sugerowany duplikat nie dotyczy żadnej części mojego pytania. Wydaje się, że Elinux i CAS nie mają nic wspólnego z programowaniem jądra RPi, podczas gdy programowanie GPIO ledwo rysuje powierzchnię pisania sterowników. Ponadto nie ma wzmianki o sugerowanym duplikacie samouczków RPi vs. ogólnych * nix.
Jakub

Odpowiedzi:

5

Nie sądzę, że znajdziesz lepszy zasób niż ten, chyba że znasz kogoś osobiście.

Cieszyć się

PS W przypadku śmierci łącza książka nosi nazwę Linux Device Drivers.

NickHalden
źródło
Wygląda to bardzo dobrze, zawsze byłem fanem serii O'Reilly.
Jakub
Rozumiem więc, że programowanie sterowników w jądrze Linuksa całkiem łatwo przeniesie się do Raspbian?
Jakub
Raspbian jest w zasadzie tylko mniejszą dystrybucją Debiana skompilowaną ze specjalnymi parametrami specyficznymi dla sprzętu na Raspberry Pi. Tak więc powinno, chociaż nie jestem ekspertem ani w programowaniu sterowników, ani w Raspberry Pi, więc poczekajmy na kogoś bardziej kompetentnego.
NickHalden
Wydaje się bardzo przestarzały (Kernel 2.6 i od 2009). Coś bardziej aktualnego?
Lukas Knuth,
2

Oprócz książki LDD możesz także zapoznać się z dokumentacją szkolenia na free-electrons.com . Tam wszystkie materiały kursu są otwarte. Całkiem odpowiedni dla tych, którzy trochę zaczęli programować jądro Linuksa, lub którzy szukają głębszego i szerszego zrozumienia określonych tematów / obszarów.

Na początek możesz spojrzeć przynajmniej na dwa pierwsze kursy:

I nie zapomnij o stronie z odnośnikami do kodu źródłowego lxr na free-electrons.com , gdzie możesz sprawdzić kod źródłowy dla różnych wersji jądra.

Jeśli preferujesz IDE, szczególnie NetBeans lub Eclipse, i wiesz, jak uruchamiać skrypty Perla i Makefile, możesz spojrzeć na narzędzia Nbk mojego projektu na github.com . Skrypt umożliwia pełne indeksowanie projektu jądra za pomocą zestawu NetBeans C ++. To znacznie pomaga poprawić doświadczenie, aby lepiej zrozumieć wewnętrzne struktury i relacje kodu źródłowego. Zazwyczaj robię minimalną konfigurację jądra plus określone urządzenie, na które patrzę, robię kompilację i robię indeks w NetBeans tylko w celu analizy kodu jądra. Podczas gdy rzeczywisty rozwój w innym projekcie. Ten skrypt jest testowany bezpośrednio w NetBeans, ale w Eclipse pomysł byłby taki sam (musisz zmodyfikować skrypt, aby pasował do Eclipse).

minghua
źródło