Experience Embedded

Professionelle Schulungen, Beratung und Projektunterstützung

Embedded-Linux-Architektur: Kernel-Treiberentwicklung - Live-Online-Training

  • Inhalt
     
  • Ziele -
    Ihr Nutzen
  • Teilnehmer
     
  • Voraussetzungen
     

Wie entwickle ich einen Kernel-Treiber? Auf was muss ich bei Embedded- und Echtzeit-Systemen achten?

Essentiell für die Entwicklung eines performanten Treibers ist ein grundlegendes Verständnis der Kernel-Architektur. Genau hier setzt das Training an.

Zuerst wird ein Überblick über den Kernel-Aufbau gegeben und dann die für Embedded-Systeme relevanten Teile aufeinander aufbauend detailliert beleuchtet.

Aus diesen Puzzleteilen ergibt sich eine Gesamtsicht auf das Betriebssystem, wie sie für eine professionelle Treiberentwicklung vonnöten ist.

In der Übungsaufgabe ist ein Grundgerüst für einen Kernel-Treiber gegeben; dieses wird sukzessive um die besprochenen Mechanismen erweitert.

Am Ende des Trainings haben Sie einen kompletten Treiber erstellt und sind in der Lage, in Ihrem Projekt Treiber zu entwickeln.

Software-Entwickler, Software-Architekten

Das Niveau dieses Trainings setzt die Kenntnisse voraus, wie sie im Training "Embedded Echtzeit-Linux" vermittelt werden.

Linux-Kernel Grundlagen

  • System-Schnittstelle, Privilegstufen
  • Virtuelles Filesystem, Adressräume
  • Gerätetreiber-Klassen (Character, Block, Net)
  • Kernel-Module

Character-Device-Treiber

  • Implementierung der Datei-Schnittstelle
  • Device Nodes
  • Udev-Dämon
  • Hardware-Zugriff; Register, IO-Memory, DMA
  • /proc- und /sys-Filesystem; Verwendung im Kernel-Treiber

Scheduling

  • Scheduling-Klassen
  • Prozesse und Threads, Kernel Threads
  • Wait Queue; unterbrechbares Warten

Interrupts

  • Interrupt Service Routine
  • Sekundärreaktionen (SoftIRQ, Tasklet, Kernel Timer)
  • High-Resolution-Timer (hrtimer)

Synchronisierungsmechanismen

  • Atomare Variablen
  • Preemption Sperre, Interrupt-Sperre
  • Ringspeicher, Kernel-FIFO
  • Semaphore, Mutex, RW-Semaphore
  • Completion
  • Spin Lock, RW-Lock, Sequence Lock
  • Diagnose von Lockingproblemen

Speicherverwaltung

  • Speicherschutz, Memory Management Unit (MMU)
  • Speichertypen, DMA, High Memory
  • Verwaltung physikalischen Speichers
  • SLAB-Allocator, Kernel-Malloc
  • Datenaustausch mit Userspace, Memory Mapping

Hardware

  • Alle Übungsaufgaben werden auf dem phyBOARD mit Arm Cortex®-A8 (AM-335x) unter Verwendung von frei zugänglichen Open-Source-Tools durchgeführt (Remote-Zugang).

Im Preis enthalten:
Trainingsdokumentation, Ihr Zertifikat sowie ggf. erforderliche Ziel-HW o.ä.


ALL INCLUSIVE!

Spätestens 3 Wochen vor Trainingsbeginn erhalten Sie eine verbindliche Durchführungsbestätigung.

Einige Tage vor dem Live-Online-Training erhalten Sie von uns E-Mails mit …

  • ausführlichen Infos rund um Ihr Training
  • Ihre Schulungsunterlagen (Download-Link)
  • einer Einladung zu einer optionalen Probesession mit dem Trainer
  • einer Einladung für die Schulungstage, mit Link und Zugangsdaten

Ggf. erforderliche Übungs-HW senden wir Ihnen rechtzeitig vorab zu.


ABLAUF

Verwandte Trainings

Linux-Schulung: Systemprogrammierung - Live-Online-Training
Anmeldecode: L-LIN-SYS

Embedded-Linux für Test und Support - Live-Online-Training
Anmeldecode: L-LIN-T

Yocto Schulung: Grundlagen und Anwendung - Live-Online-Training
Anmeldecode: L-YOCTO

Embedded-Linux-Softwareentwicklung - Live-Online-Training
Anmeldecode: L-LIN-SWE

Linux Multithread-/Multicore-Programmierung - Live-Online-Training
Anmeldecode: L-LIN-MMP


Verwandte Trainings

Live Online Training

Dauer
4 Tage
Anmeldecode: L-LIN-AR
* Preis je Teilnehmer, in Euro zzgl. USt.

> Download Blanko-Anmeldeformular
> Trainingsbeschreibung als PDF

Präsenz-Training - Deutsch

Termin Dauer
17.06. – 20.06.2024 4 Tage  
07.10. – 10.10.2024 4 Tage  
17.02. – 20.02.2025 4 Tage  

Live-Online - Englisch

Dauer
4 Tage  

Präsenz-Training - Englisch

Dauer
4 Tage  

Embedded-Linux-Architektur: Kernel-Treiberentwicklung - Live-Online-Training

Inhalt

Linux-Kernel Grundlagen

  • System-Schnittstelle, Privilegstufen
  • Virtuelles Filesystem, Adressräume
  • Gerätetreiber-Klassen (Character, Block, Net)
  • Kernel-Module

Character-Device-Treiber

  • Implementierung der Datei-Schnittstelle
  • Device Nodes
  • Udev-Dämon
  • Hardware-Zugriff; Register, IO-Memory, DMA
  • /proc- und /sys-Filesystem; Verwendung im Kernel-Treiber

Scheduling

  • Scheduling-Klassen
  • Prozesse und Threads, Kernel Threads
  • Wait Queue; unterbrechbares Warten

Interrupts

  • Interrupt Service Routine
  • Sekundärreaktionen (SoftIRQ, Tasklet, Kernel Timer)
  • High-Resolution-Timer (hrtimer)

Synchronisierungsmechanismen

  • Atomare Variablen
  • Preemption Sperre, Interrupt-Sperre
  • Ringspeicher, Kernel-FIFO
  • Semaphore, Mutex, RW-Semaphore
  • Completion
  • Spin Lock, RW-Lock, Sequence Lock
  • Diagnose von Lockingproblemen

Speicherverwaltung

  • Speicherschutz, Memory Management Unit (MMU)
  • Speichertypen, DMA, High Memory
  • Verwaltung physikalischen Speichers
  • SLAB-Allocator, Kernel-Malloc
  • Datenaustausch mit Userspace, Memory Mapping

Hardware

  • Alle Übungsaufgaben werden auf dem phyBOARD mit Arm Cortex®-A8 (AM-335x) unter Verwendung von frei zugänglichen Open-Source-Tools durchgeführt (Remote-Zugang).