Benutzer-Werkzeuge

Webseiten-Werkzeuge


raspberry_pi_kernelprogrammierung:helloworld

Dies ist eine alte Version des Dokuments!


Raspberry Pi Kernelprogrammierung: HelloWorld

Dieses Projekt führt in die Linux-Kernelprogrammierung für den Raspberry Pi ein. Das klassische „HelloWorld“-Programm ist nun ein minimales Kernel-Modul. Kernelprogrammierung gehört zu den anspruchsvolleren Themen der Linuxprogrammierung. Dennoch - der Einstieg in die große Welt des Linux-Kernels ist gar nicht so schwierig.

Ein Kernel-Modul ist eine Software, die zur Laufzeit in den Kernel eingebunden und auch wieder entfernt werden kann. Dies ist eine sehr elegante Methode, denn sie hält den eigentlichen Laufzeitkernel schlank. Nur diejenigen Module, die tatsächlich benötigt werden, brauchen so geladen zu werden. Außerdem ermöglicht diese Methode auch eine bequeme Softwareentwicklung, da der Rechner nicht jedesmal neu gestartet werden muss, um Änderungen am Modul zu registrieren. Kernel-Module werden z.B. für folgende Anwendungen benötigt:

  • Gerätetreiber
  • Netzwerktreiber
  • Treiber für Dateisysteme
  • Systemcalls

Wann immer man also „echte“ Hardware ansteuern will, wird ein Kernel-Modul (Kerneltreiber) benötigt.

Ein Kernel-Modul zur Ansteuerung des GPIO-Ports des Raspberry Pi kann 250 mal schneller sein als ein herkömmlicher Zugriff auf die Ports!

Überblick

Details

Zusammenfassung

Auch wenn der Quellcode keine zwanzig Zeilen lang ist, gibt es bei der Erstellung jedoch diverse Fehlermöglichkeiten. Wenn alles bis hier geklappt hat, wurde jedoch eine Menge erreicht:

  • Die Kernelquellen und modutils sind installiert und lauffähig.
  • Der Kompiler und make sind lauffähig.
  • Das fertige Kernel-Modul hello_world.ko wurde erfolgreich zur Laufzeit in den Kernel geladen und entladen.

Ein komplettes System für die Kernelentwicklung auf dem Raspberry Pi steht nun zur Verfügung.

Literatur

  • Jürgen Quade, Eva-Katharina Kunst: Linux-Treiber entwickeln (dpunkt.verlag)
  • Jürgen Quade: Embedded Linux lernen mit dem Raspberry (dpunkt.verlag)
raspberry_pi_kernelprogrammierung/helloworld.1706280780.txt.gz · Zuletzt geändert: 2024/01/26 14:53 von torsten.roehl