Embedded Linux mit Raspberry Pi und Co

Embedded-Linux-Kernel erzeugen Treiber und Kernelmodule entwickeln Praxisbeispiele mit LED-Matrix und LC-Displays Raspberry Pi, BeagleBone Black, CubieBoard und Co. haben dazu beigetragen, das Interesse an Embedded Linux sowie dessen Programmierung und Nutzung für alltägliche Dinge zu wecken. Es wir...

Descripción completa

Detalles Bibliográficos
Otros Autores: Jesse, Ralf, author (author)
Formato: Libro electrónico
Idioma:Alemán
Publicado: [Place of publication not identified] : mitp 2016.
Edición:1. auflage
Colección:mitp Professional
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009631599606719
Tabla de Contenidos:
  • Cover
  • Impressum
  • Inhaltsverzeichnis
  • Einleitung
  • Teil I: Einführung und Einrichtung einer Entwicklungsumgebung
  • Kapitel 1: Embedded Linux
  • 1.1 Desktop-Betriebssysteme
  • 1.2 Bare-Metal vs. Betriebssystem
  • 1.2.1 Mikroprozessoren vs. Mikrocontroller
  • 1.3 Embedded Betriebssysteme
  • 1.4 Die Architektur von Linux
  • 1.4.1 Erläuterungen
  • 1.5 Beliebte Linux-Distributionen
  • 1.6 Linux installieren
  • 1.6.1 Parallele Installation von Linux Mint zum vorhandenen Betriebssystem
  • 1.6.2 Installation von Linux Mint in VirtualBox
  • 1.7 Erfahrungen Linux Mint + VirtualBox
  • 1.7.1 Größe der virtuellen Festplatte ändern
  • 1.7.2 Zielpartition für VirtualBox festlegen
  • 1.7.3 Umziehen der virtuellen Maschine
  • 1.7.4 Nicht genügend Arbeitsspeicher
  • 1.8 Weiterführende Literatur
  • Kapitel 2: Netzwerkanbindung
  • 2.1 Datenaustausch zwischen Host und Embedded System
  • 2.1.1 Samba
  • 2.1.2 FileZilla
  • 2.1.3 Daten austauschen mit scp
  • 2.2 Verzeichnisstruktur von Linux/Raspbian
  • 2.2.1 /bin
  • 2.2.2 /boot
  • 2.2.3 /dev
  • 2.2.4 /etc
  • 2.2.5 /home
  • 2.2.6 /lib
  • 2.2.7 /lost+found
  • 2.2.8 /media
  • 2.2.9 /mnt
  • 2.2.10 /opt
  • 2.2.11 /proc
  • 2.2.12 /root
  • 2.2.13 /run
  • 2.2.14 /sbin
  • 2.2.15 /selinux
  • 2.2.16 /srv
  • 2.2.17 /sys
  • 2.2.18 /tmp
  • 2.2.19 /usr
  • 2.2.20 /var
  • 2.3 Neue Benutzer und Gruppen einrichten
  • 2.3.1 Einen User hinzufügen bzw. entfernen
  • 2.3.2 Gruppen hinzufügen bzw. entfernen
  • 2.4 Weiterführende Literatur
  • Kapitel 3: Shell-Programmierung
  • 3.1 Erste Schritte
  • 3.1.1 Die Kommandos »man« und »info«
  • 3.2 Geschichte der Shells
  • 3.3 Die Bourne-again-Shell - bash
  • 3.3.1 Ein- und Ausgabeumleitung
  • 3.3.2 Shell-Variablen
  • 3.3.3 Kommentare
  • 3.3.4 Systemkommandos in Shellscripts
  • 3.3.5 Mehrere Kommandos in einer Zeile
  • 3.3.6 Bedingungen/Vergleiche
  • 3.3.7 Funktionen in Shellscripts.
  • 3.3.8 Schleifen
  • 3.3.9 Professionelle Übergabe von Argumenten
  • 3.3.10 Einschränkungen bei Shellscripts
  • 3.4 Weiterführende Literatur
  • Kapitel 4: Cross-Toolchains
  • 4.1 Cross-Toolchains für Raspberry Pi B+
  • 4.1.1 Toolchain und IDE für Windows
  • 4.1.2 Toolchain und IDE für Linux (Mint)
  • 4.1.3 Toolchain und IDE für Mac OS X
  • 4.2 Die Bibliothek wiringPi
  • 4.2.1 Herunterladen von wiringPi
  • 4.2.2 wiringPi »bauen«
  • 4.2.3 Funktionen in wiringPi
  • 4.2.4 Weitere Informationen zu wiringPi
  • 4.2.5 Anschlussbelegung des Raspberry Pi B+
  • 4.3 Konfiguration von Code::Blocks
  • 4.3.1 Auswahl des Compilers
  • 4.3.2 Einstellen der Compiler-Optionen
  • 4.3.3 Bibliothek(en) hinzufügen
  • 4.3.4 Erweitern des Suchpfades
  • 4.3.5 Toolchain executables
  • 4.3.6 Testen der Toolchain
  • 4.4 crosstool-ng
  • 4.4.1 Vorarbeiten
  • 4.4.2 Erstellen und installieren von crosstool-ng
  • 4.4.3 Toolchain konfigurieren
  • 4.5 Weiterführende Literatur
  • Teil II: Techniken zur Programmierung von Kernel und rootfs
  • Kapitel 5: Raspbian - der Kernel
  • 5.1 Überblick
  • 5.1.1 Einmalig durchzuführende Schritte
  • 5.1.2 Zu wiederholende Schritte
  • 5.2 Kernel erzeugen - detaillierte Anleitung
  • 5.2.1 Einmalig durchzuführende Schritte - Details
  • 5.2.2 Zu wiederholende Schritte
  • 5.3 Das Shellscript mkrpi
  • 5.3.1 mkrpi - das Listing zum Shellscript
  • 5.3.2 Funktion und Anwendung von mkrpi
  • 5.4 Weiterführende Literatur
  • Kapitel 6: Das root-Dateisystem - rootfs
  • 6.1 rootfs erzeugen
  • 6.1.1 Benötigte Software
  • 6.1.2 Die nächsten Schritte
  • 6.1.3 Imagedatei erzeugen
  • 6.1.4 Schreiben der Boot-Partition
  • 6.1.5 Schreiben des root-Dateisystems
  • 6.1.6 Das Ende naht ...
  • 6.2 Alternative Methode
  • 6.2.1 Beschaffung und Anwendung von Buildroot
  • 6.3 Weiterführende Literatur
  • Kapitel 7: Der Bootprozess
  • 7.1 Bare-Metal-Systeme.
  • 7.2 Geräte mit Betriebssystem
  • 7.2.1 Der Bootprozess des Raspberry Pi
  • 7.2.2 Der Bootprozess beim BeagleBone Black BBB
  • 7.2.3 Der Bootprozess beim Cubieboard
  • 7.3 Allgemeine Beschreibung des Bootvorgangs
  • 7.3.1 Bootloader
  • 7.3.2 Die Aufgabe von Bootloadern
  • 7.4 Das U-Boot und der Raspberry Pi
  • 7.4.1 Sourcecode von »Das U-Boot«
  • 7.5 Weiterführende Literatur
  • Teil III: Grundlagen der Treiberentwicklung
  • Kapitel 8: Treiber und Module I
  • 8.1 Auffrischung
  • 8.2 »Normale« Dateien und Gerätedateien
  • 8.2.1 Schnittstellen zwischen User Space und Kernel
  • 8.2.2 Schnittstellen zwischen Kernel und Hardware
  • 8.2.3 Wichtige Programme im User Space
  • 8.3 Weitere Voraussetzungen
  • 8.4 Das erste Kernelmodul
  • 8.4.1 Quelltext des Moduls und Makefile
  • 8.4.2 Kompilieren des Moduls
  • 8.4.3 Modul testen
  • 8.4.4 Details zu nix.c/nix.ko
  • 8.4.5 kbuild
  • 8.5 Ein weiteres einfaches Kernelmodul
  • 8.5.1 Der Sourcecode
  • 8.5.2 Log-Level
  • 8.5.3 Kernelmodul ausprobieren
  • 8.6 Moderne Variante von hellodriver
  • 8.6.1 Moderne Variante des hellodriver-Moduls
  • 8.7 Ende der Einführung
  • 8.8 Weiterführende Literatur
  • Kapitel 9: Treiber und Module II
  • 9.1 Auf dem Weg zu einem richtigen Gerät
  • 9.1.1 Funktionen, Makros, Datentypen
  • 9.1.2 Der Sourcecode
  • 9.2 Weiterführende Literatur
  • Kapitel 10: Treiber und Module III
  • 10.1 Checkliste für die Treiberentwicklung
  • 10.1.1 Headerdateien
  • 10.1.2 Die Struktur file_operations
  • 10.1.3 Initialisierung eines Treibers/Moduls
  • 10.1.4 Entfernen von Treibern/Modulen
  • 10.1.5 Funktion mydevice_open
  • 10.1.6 Funktion mydevice_close
  • 10.1.7 Schreiben und Lesen
  • 10.1.8 The End
  • 10.1.9 Generelle Erklärung einiger Funktionen
  • 10.2 Ansteuerung »echter« Hardware
  • 10.2.1 GPIO-Funktionen
  • 10.2.2 GPIOs anwenden
  • 10.2.3 (Mögliche) Erweiterung des Treibers.
  • 10.3 Weiterführende Literatur
  • Teil IV: Treiberentwicklung in der Praxis
  • Kapitel 11: Praxis I
  • 11.1 Das serielle Schieberegister SN74HC595
  • Kapitel 12: Praxis II
  • 12.1 Der Baustein Maxim 7219
  • 12.1.1 Beschreibung des Maxim 7219
  • 12.1.2 Zeitverhalten bei der Ansteuerung
  • 12.1.3 Kaskadieren mehrerer Maxim 7219/7221
  • 12.2 Ansteuerung einer 8 x 8-LED-Matrix
  • 12.2.1 Der Schaltplan
  • 12.3 Die Treibersoftware
  • 12.3.1 Das Makefile
  • 12.3.2 Die Headerdatei max7219.h
  • 12.3.3 Der C-Sourcecode max7219imp.c
  • 12.3.4 Das Testprogramm für den Treiber
  • 12.3.5 Verbesserungsvorschläge
  • 12.4 Ansteuerung von 7-Segment-Anzeigen
  • Kapitel 13: Praxis III
  • 13.1 Der HD44780 - Aus dem Datenblatt
  • 13.2 Die Hardware
  • 13.3 Die Headerdatei hd44780.h
  • 13.3.1 Einige Erläuterungen
  • 13.4 Der Treiber hd44780.c
  • 13.4.1 Erläuterung des Programms
  • 13.5 Das Testprogramm im User Space
  • 13.6 Weiterführende Literatur
  • Anhang A: Literaturverzeichnis
  • A.1 Embedded Systeme, Architektur etc.
  • A.2 VirtualBox
  • A.3 Samba
  • A.4 Shell-Programmierung
  • A.5 Toolchains und Bibliotheken
  • A.6 Bootstrapping, Buildroot etc.
  • A.7 Der Bootprozess
  • A.8 Pointer und Strukturen in C
  • A.9 Das Kernel-Buildsystem und Treiber
  • A.10 Bücher
  • Anhang B: Belegung der GPIO-Ports
  • B.1 GPIO-Belegung gemäß wiringPi
  • B.2 GPIO-Belegung gemäß Broadcom
  • Anhang C: Safety und Security
  • C.1 Security
  • C.2 Safety
  • C.2.1 Maßnahmen in der Automobilindustrie
  • C.2.2 Umsetzung in der Programmierung
  • C.3 Ergänzende Literatur
  • Anhang D: Kopieren mit scp
  • Anhang E: Code::Blocks
  • E.1 Projekteinstellungen
  • E.1.1 Properties
  • E.1.2 Build options ...
  • Stichwortverzeichnis.