Edocti
Fortgeschrittene technische Ausbildung für den modernen Softwareingenieur
Edocti Training

Modernes C-Programmierung – Fortgeschrittene Themen

Fortgeschritten
21 h
4.9 (721 Bewertungen)

Geplante Sessions

Aktuell sind keine Termine verfügbar.
Modernes C-Programmierung – Fortgeschrittene Themen

Modernes C-Programmierung – Fortgeschrittene Themen: Meistern Sie essenzielle C-Features für professionelle Embedded-Projekte – von tiefgreifendem Linker-Wissen bis zur sauberen Implementierung von State Machines.

Arbeiten Sie praxisnah (Hands-on) mit Arrays, Pointern, objektorientierten Mustern in C und fortgeschrittenen Embedded-Konzepten, mit klarem Fokus auf die AVR-Architektur.

Vollziehen Sie die Entwicklung moderner C-Standards (C11/C18) nach und verstehen Sie, wie neue Sprachkonstrukte Ihren Embedded-Code beeinflussen.

Praktische Erfahrung sammeln: Die umfangreichen Labs machen ~70% des Kurses aus und spiegeln die Herausforderungen realer Industrie-Codebasen wider.

Wie dieser Kurs hilft: Sie lernen, robuste, hochgradig portable und effiziente Embedded-Software mit Sicherheit zu entwickeln.

Für wen: Konzipiert für Entwickler mit solider C-Erfahrung, die ihre Expertise im Hardware-nahen Bereich maßgeblich vertiefen möchten.

Am Ende des Trainings werden Sie komplexe Systeme in C souverän implementieren – vom korrekten Umgang mit ISRs bis hin zu Low-Power-Design.

Fähigkeiten, die Sie lernen werden

Linker-Interna Pointer & Speicher OOP in C State Machines Modernes C (C11/C18) AVR-Architektur RTOS & ISR-Basics Low-Power-Design

Curriculum

Essentielles C

  • Aufgaben des Linkers (im Detail)
  • Ausführungskontext von Anwendungen
  • ABI-Formate
  • Fallstricke bei Promotion und Overflow
  • Pointers
  • Arbeiten mit mehrdimensionalen Arrays
  • Fallstricke bei Arrays und C strings
  • Komplexe Datentypen
  • Inlining – erneut betrachtet
  • Portabilitätsprobleme und Lösungen
  • Undefined behaviors

Objektorientierte Methoden in C

  • Konstruktoren und Destruktoren sowie Toolchain-Unterstützung
  • "Virtual methods" in C und ihre Vorteile
  • "Inheritance" und "polymorphism"
  • Performance-Verbesserungen

State Machines richtig umsetzen

  • Zustandsrepräsentation (Enums, Function Pointers)
  • Transitionstabellen und Guards
  • Hierarchische State Machines (HSM)
  • Event-getriebene Architektur für Embedded-Systeme

Entwicklung der Sprache C

  • Neuere Sprachkonstrukte (Keywords, Trigraphs, Digraphs)
  • C11 _Generic und type-generic Macros
  • C11/C18-Updates mit Relevanz für Embedded-Codebasen

Umgang mit variabler Argumentanzahl

  • Grundlagen von varargs
  • Sicherheitsaspekte (Format-Strings, Grenzen, Undefined Behavior)

Embedded-Programmierung (AVR-Fokus)

  • Überblick zur AVR-Architektur (Memory, CPU)
  • Wichtige Register und Adressierungsarten
  • Zentrale AVR-Instruktionen
  • Timers
  • I/O ports
  • ADC
  • PWM
  • Interrupt handling
  • AVR interrupts und der Interrupt-Vektor
  • ISRs schreiben: Do's & Don'ts, Beispiele
  • Deferrable functions und deferred work
  • Zeitmanagement mit Timern
  • Timer-Betriebsmuster
  • RTOS-Grundlagen
  • Scheduling: Threads, Context Switching, Schedulertypen
  • Einen Task Scheduler für präzises Timing implementieren
  • Mutexes (Typen, robust vs. non-robust, Policy)
  • MMU-Grundlagen
  • Hardware-I/O: Busse und Ports
  • Register-Recap (GPIO/ADC/PWM/Watchdog)
  • Power Management und System-Power-States

Fortgeschrittenes Embedded C (zusätzlich)

  • C11 atomics vs. volatile; Memory Order und lock-free Patterns (wo anwendbar)
  • Ringpuffer für ISR ⇄ Main-Kommunikation (Single-Producer/Single-Consumer)
  • DMA-Grundlagen und Zero-Copy-I/O (wo verfügbar)
  • Linker Scripts und Speichersektionen (.text/.data/.bss/.rodata, Custom Placement)
  • Startup Code und Boot-Sequenz (Reset Vector, crt0, Initialisierungsreihenfolge)
  • Interrupt-Latenz, kritische Abschnitte und Determinismus
  • Tickless Scheduling und Timer mit geringem Jitter
  • Festkommaarithmetik und Sättigungsarithmetik
  • MISRA C-Überblick und praktischer Umgang mit Abweichungen
  • Testing auf Embedded-Zielen: Unity/CMock, Fakes und HIL
  • Abstraktionsstrategien: HAL vs. Registerzugriff; Compile-Time-Konfiguration
  • Low-Power-Design: Schlafmodi, Clock Gating, Wake-up-Quellen

Kursablauf

  • Teil 1: 09:00–10:30
  • Pause: 10:30–10:45
  • Teil 2: 10:45–12:15
  • Mittagspause: 12:15–13:15
  • Teil 3: 13:15–15:15
  • Pause: 15:15–15:30
  • Teil 4: 15:30–17:30

Haben Sie an diesem Kurs teilgenommen?

Ihre Meinung ist uns sehr wichtig. Teilen Sie Ihre Erfahrungen mit uns und helfen Sie uns, diesen Kurs für zukünftige Teilnehmer weiter zu verbessern.

Feedback teilen

Möchten Sie mehr erfahren? Wir helfen Ihnen gern!

Oder schreiben Sie uns direkt an training@edocti.com.