Kennt jemand Anleitungen zur Kernel- / Treiberprogrammierung?

12

Ich möchte das RPi verwenden, um mir die Programmierung auf Hardware-Ebene beizubringen. Ich habe im Internet nach Tutorials für RPi gesucht, aber alles, was ich finde, sind allgemeine Tutorials zum Kompilieren des Kernels. Ich interessiere mich mehr für aktuelle Tutorials vom Typ "Wie schreibe ich Kernel-Code / Gerätetreiber?". Gibt es spezielle Tutorials für RPi oder würde ein Tutorial für Hardware-Level-Programmierung ausreichen?

Jakub
quelle
2
@Jivings: Das vorgeschlagene Duplikat behandelt keinen Teil meiner Frage. Elinux und CAS scheinen nichts über die RPi-Kernel-Programmierung zu wissen, während die GPIO-Programmierung die Oberfläche der Schreibtreiber kaum verkratzt. Darüber hinaus wird im empfohlenen Duplikat von RPi-Tutorials im Vergleich zu allgemeinen * nix-Tutorials nichts erwähnt.
Jakub

Antworten:

5

Ich denke nicht, dass Sie eine bessere Ressource als diese finden, es sei denn, Sie kennen jemanden persönlich.

Genießen

PS: Wenn die Verbindung unterbrochen wird, heißt das Buch Linux Device Drivers.

NickHalden
quelle
Das sieht sehr gut aus, ich war schon immer ein Fan der O'Reilly-Serie.
Jakub
Ich gehe also davon aus, dass die Treiberprogrammierung im Linux-Kernel ziemlich einfach auf Raspbian übertragen werden kann.
Jakub
Raspbian ist im Grunde genommen nur eine kleinere Debian-Distribution, die mit speziellen Parametern kompiliert wurde, die für die Hardware auf dem Raspberry Pi spezifisch sind. Also ja, es sollte so sein, obwohl ich weder ein Experte für Treiberprogrammierung noch für den Raspberry Pi bin. Warten wir also auf jemanden, der sich besser
auskennt
Scheint sehr veraltet zu sein (Kernel 2.6 und ab 2009). Noch etwas aktuelles?
Lukas Knuth
3

Ich habe gerade etwas von der Universität von Cambridge gefunden.

Es ist einfach zu befolgen und sehr gut gemacht Einführung, wie Sie Ihr erstes Betriebssystem zusammenstellen: http://www.cl.cam.ac.uk/freshers/raspberrypi/tutorials/os/

Wolfv
quelle
BEEINDRUCKEND! :) Das ist brilliant!
Gideon
2

Zusätzlich zum LDD-Buch können Sie auch die Schulungsunterlagen auf free-electrons.com einsehen . Dort sind alle Kursmaterialien Open Source. Geeignet für diejenigen, die sich ein wenig mit der Linux-Kernel-Programmierung beschäftigt haben oder ein tieferes und umfassenderes Verständnis für bestimmte Themen / Bereiche suchen.

Zu Beginn können Sie sich mindestens die ersten beiden Kurse ansehen:

Und vergessen Sie nicht die Querverweisseite für den lxr-Quellcode auf free-electrons.com , auf der Sie den Quellcode für verschiedene Kernelversionen überprüfen können.

Wenn Sie eine IDE bevorzugen, insbesondere NetBeans oder Eclipse, und wissen, wie man Perl-Skripte und Makefile ausführt , können Sie sich meine Projekt- Nbk-Tools auf github.com ansehen . Mit dem Skript können Sie ein Kernelprojekt mit dem NetBeans C ++ - Kit vollständig indizieren. Es trägt wesentlich dazu bei, die Erfahrung zu verbessern, die internen Strukturen und Beziehungen des Quellcodes besser zu verstehen. Normalerweise erstelle ich eine minimale Konfiguration des Kernels und des jeweiligen Geräts, auf dem ich mich befinde, und erstelle einen Build und einen Index in NetBeans, nur um den Kernel-Code zu analysieren. Mach zwar die eigentliche Entwicklung in einem anderen Projekt. Dieses Skript wird direkt in NetBeans getestet, aber bei Eclipse ist die Idee dieselbe (Sie müssen das Skript an Eclipse anpassen).

Minghua
quelle