Embedded-Linux-Softwareentwicklung (Seminar)

27.06.2017

29.10.2018 - 31.10.2018

Veranstaltungsort: München

Embedded-Linux-Softwareentwicklung (Seminar)

In diesem Training wird die Entwicklung von Software für Embedded-Linux behandelt. Dabei werden u.a. alle Aspekte der systemnahen Entwicklung behandelt und auch gleich mit den entsprechenden Entwicklungswerkzeugen geübt.

In diesem Training wird die Entwicklung von Software für Embedded-Linux behandelt. Dabei werden alle Aspekte der systemnahen Entwicklung behandelt und auch gleich mit den entsprechenden Entwicklungswerkzeugen geübt. Die Teilnehmer lernen das Posix-Betriebssystem kennen und können mit den wichtigen Entwicklungs- und Diagnosewerkzeugen umgehen. Die beiden Themenblöcke werden dabei nicht getrennt betrachtet, sondern ineinander verwoben, so dass die Betriebssystemmechanismen zusammen mit den Entwicklungs- und Diagnosetools eingeübt werden.

 

Inhalt

Systemnahe Softwareentwicklung

  • Dateien, Pipes und Device-Nodes
  • Prozesse, CPU-Affinität
  • Scheduling; RT-, Deadline-, Batch-Task
  • Prozesse, Signale, Core-Dump
  • Shared-Memory, Memory-Mapping
  • Semaphore, Message-Queue
  • Multithreading
  • Mutex, Robust-Mutex, PI-Mutex, RW-Lock, Barrier
  • hrtimer-Framework und Posix-Timer
  • Hardware-Schnittstellen: GPIOs, I2C

 

Entwicklungsumgebung und Diagnosetools

  • Cross-Development Toolchain
  • Cross-Debugging mit gdb und gdbserver
  • proc-, sys- und debug-FS
  • Memory Leaks, Speicherüberschreibungen; valgrind
  • Codeabdeckungsanalyse und Profiling; gcov und gprof
  • Ptrace-Schnittstelle des Linux-Kernels; Funktionsweise von Debuggern
  • strace und ltrace: Funktionsweise und Verwendung
  • Funktionsweise des Function Trace Frameworks (ftrace)
  • Tracen von Interrupt- und Scheduling-Events

 

Hardware

  • Alle Übungsaufgaben werden auf dem phyBOARD mit ARM Cortex-A8 (AM-355x) unter Verwendung von frei zugänglichen Open-Source-Tools durchgeführt.
  • Diese Übungsboard können die Teilnehmer zur weiteren Vertiefung des Gelernten behalten.