Seminare
Seminare

LFD435 Entwicklung von Gerätetreibern für embedded Linux-Systeme

Webinar - IT-Schulungen.com

In dieser 4-tägigen Schulung "LFD435 Entwicklung von Gerätetreibern für eingebettete Linux-Systeme" erwerben die Teilnehmer umfassendes Wissen über die Entwicklung von Gerätetreibern für Linux-Systeme sowie ein grundlegendes Verständnis für den Linux-Kernel. Der Kurs bietet Einblicke in verschiedene Arten von Gerätetreibern in Linux und präsentiert passende APIs für die Programmierung solcher Treiber.


Durch praktische Übungen auf ARM-Hardware, wie Cross-Compiling und die Entwicklung von Treibern für eingebettete Zielplattformen, wird die Vorgehensweise praxisnah vermittelt. Der Kurs konzentriert sich insbesondere auf die detaillierte Betrachtung von Funktionen, die hauptsächlich in Gerätetreibern zum Einsatz kommen, neben der Kernel-Architektur und Algorithmen.


Termin Ort Preis*
19.08.2024- 22.08.2024 Nürnberg 2.374,05 €
19.08.2024- 22.08.2024 online 2.374,05 €
10.09.2024- 13.09.2024 Nürnberg 2.374,05 €
10.09.2024- 13.09.2024 online 2.374,05 €
14.10.2024- 17.10.2024 Nürnberg 2.374,05 €
14.10.2024- 17.10.2024 online 2.374,05 €

Alle Termine anzeigen

*Alle Preise verstehen sich inkl. MwSt.

Detaillierte Informationen zum Seminar

Inhalte:

Einführung
Überblick

  • Verfahren
  • Kernel-Versionen
  • Kernel-Quellen und Verwendung von git
  • Hardware


Wie man in OSS-Projekten arbeitet

  • Überblick darüber, wie man richtig beiträgt
  • Bleiben Sie nah an der Hauptstrecke für Sicherheit und Qualität
  • Lernen und Verstehen der Projekt-DNA
  • Herausfinden, welches Itch Sie Scratchen möchten
  • Identifizieren Sie die Maintainer und ihre Arbeitsabläufe und Methoden
  • Frühzeitige Eingaben und Arbeit im Freien erhalten
  • Inkrementelle Bits beisteuern, keine großen Code-Dumps
  • Lassen Sie Ihr Ego an der Tür: Seien Sie nicht Thin-Skinned
  • Seien Sie geduldig, entwickeln Sie langfristige Beziehungen, seien Sie hilfsbereit


Entwicklungsübergreifende Toolchain

  • Das Compiler-Triplet
  • Eingebauter Cross-Compiler für Linux-Distributionen
  • Linaro
  • CodeSourcery
  • crosstool-ng
  • Buildroot
  • OpenEmbedded
  • Yocto-Projekt


QEMU

  • Was ist QEMU?
  • Emulierte Architekturen
  • Bildformate
  • Warum QEMU verwenden?


Booten eines Target Development Board von uSD

  • Warum verwenden wir uSD-Karten?
  • SW auf eine uSD-Karte bringen
  • Warum ist die Verwendung von uSD-Karten eine schlechte Idee?


Booten eines Target-Entwicklungsboards über Ethernet

  • Verwendung virtueller Hardware
  • Ein einfacherer Weg zur Entwicklung
  • Ziele des Labs


Konfigurieren, Compilieren und Booten des Kernels

  • Konfigurieren des Kernels für den Entwicklungsausschuss


Gerätetreiber

  • Arten von Geräten
  • Mechanismus vs. Richtlinie
  • Binary Blobs vermeiden
  • Energieverwaltung
  • Wie Anwendungen Gerätetreiber verwenden
  • Durch einen Systemanruf gehen und auf ein Gerät zugreifen
  • Fehler-Nummern
  • printk()
  • devres: Verwaltete Geräteressourcen


Module und Gerätetreiber

  • Die module_driver()-Makros
  • Module und Hot Plug


Speicherverwaltung und -zuweisung

  • Virtueller und physischer Speicher
  • Memory Zones
  • Page Tables
  • kmalloc()
  • __get_free_pages()
  • vmalloc()
  • Slabs und Cache-Zuweisungen


Zeichenorientierte Geräte

  • Geräte-Nodes
  • Haupt- und Nebenzahlen
  • Reservieren von Haupt-/Minderwertigen Nummern
  • Zugriff auf den Geräte-Nodes
  • Registrieren des Geräts
  • udev
  • dev_printk() und Associates
  • file_operationen Struktur
  • Driver Entry für Fahrer
  • Die Datei- und Inode-Strukturen
  • Diverse Zeichen-Treiber


Kernel-Funktionen

  • Komponenten des Kernels
  • Benutzer-Space vs. Kernel-Space
  • Was sind Systemaufrufe?
  • Verfügbare Systemanrufe
  • Zeitplanungsalgorithmen und Aufgabenstrukturen
  • Prozess-Kontext


Übertragung zwischen User- und Kernel-Space

  • Übertragen zwischen Spaces
  • put(get)_user() und copy_to(from)_user()
  • Direkter Transfer: Kernel-I/O und Speicherzuordnung
  • Kernel-I/O
  • Abbildung von Benutzerseiten
  • Memory Mapping
  • User-Space Functions für mmap()
  • Driver Entry Point für mmap()
  • Zugriff auf Dateien vom Kernel aus


Plattform-Treiber

  • Übertragen zwischen Spaces
  • put(get)_user() und copy_to(from)_user()
  • Direkter Transfer: Kernel-I/O und Speicherzuordnung
  • Kernel-I/O
  • Abbildung von Benutzerseiten
  • Memory Mapping
  • User-Space Functions für mmap()
  • Driver Entry Point für mmap()
  • Zugriff auf Dateien vom Kernel aus


Device Trees

  • Was sind Device Trees?
  • Was Device Trees tun und was sie nicht tun
  • Device Trees-Syntax
  • Device Trees-Durchgang
  • Device Trees-Bindungen
  • Unterstützung von Device Trees in Bootloadern
  • Verwendung von Device Trees in Treibern
  • Koexistenz und Konversion alter Treiber


Interrupts und Exceptions


Was sind Interrupts und Exceptions?


Exceptions


Asynchrone Unterbrechungen


MSI


Aktivieren/Deaktivieren von Unterb

Ziele/Bildungsabschluss:

In dieser 4-tägigen Schulung "LFD435 Entwicklung von Gerätetreibern für eingebettete Linux-Systeme" erwerben die Teilnehmer umfassendes Wissen über die Entwicklung von Gerätetreibern für Linux-Systeme sowie ein grundlegendes Verständnis für den Linux-Kernel. Der Kurs bietet Einblicke in verschiedene Arten von Gerätetreibern in Linux und präsentiert passende APIs für die Programmierung solcher Treiber.


Durch praktische Übungen auf ARM-Hardware, wie Cross-Compiling und die Entwicklung von Treibern für eingebettete Zielplattformen, wird die Vorgehensweise praxisnah vermittelt. Der Kurs konzentriert sich insbesondere auf die detaillierte Betrachtung von Funktionen, die hauptsächlich in Gerätetreibern zum Einsatz kommen, neben der Kernel-Architektur und Algorithmen.


Teilnahmevoraussetzungen:

Für eine optimale Teilnahme am Kurs empfehlen wir folgende Vorkenntnisse:


  • Kenntnisse der wesentlichen Kernel-Schnittstellen und Techniken, wie dem Compilieren und Schreiben bzw. Load und Unload von Modulen
  • Anwendung von Synchronisationsfunktionen
  • Grundlagen von Speicherzuweisung und -verwaltung


Lehrgangsverlauf/Methoden:

Die Schulung bietet Ihnen eine ausgewogene Mischung aus Theorie und Praxis in einer erstklassigen Lernumgebung. Profitieren Sie vom direkten Austausch mit unseren projekterfahrenen Trainern und anderen Teilnehmern, um Ihren Lernerfolg zu maximieren.


Zielgruppe:
  • Programmierer
  • Entwickler


Seminarkennung:
NE-WEBDATE-3998a7aa-0aa1-463b-a356-4eab0b874e69
Nach unten
Nach oben
Wir setzen Analyse-Cookies ein, um Ihre Zufriedenheit bei der Nutzung unserer Webseite zu verbessern. Diese Cookies werden nicht automatisiert gesetzt. Wenn Sie mit dem Einsatz dieser Cookies einverstanden sind, klicken Sie bitte auf Akzeptieren. Weitere Informationen finden Sie hier.
Akzeptieren Nicht akzeptieren









Um Spam abzuwehren, geben Sie bitte die Buchstaben auf dem Bild in das Textfeld ein:

captcha



Bei der Verarbeitung Ihrer personenbezogenen Daten im Zusammenhang mit der Kontaktfunktion beachten wir die gesetzlichen Bestimmungen. Unsere ausführlichen Datenschutzinformationen finden Sie hier. Bei der Kontakt-Funktion erhobene Daten werden nur an den jeweiligen Anbieter weitergeleitet und sind nötig, damit der Anbieter auf Ihr Anliegen reagieren kann.







Um Spam abzuwehren, geben Sie bitte die Buchstaben auf dem Bild in das Textfeld ein:

captcha