Embedded C: Programmiermethoden und -tools für Embedded-Anwendungen (Seminar)
Datum:
16.03.2026 - 19.03.2026
Veranstaltungsort:
München, MicroConsult
Beschreibung:
Inhalt Ziele - Ihr Nutzen Teilnehmer Voraussetzungen Sie entwickeln effizient Programme in der Programmiersprache "C" für ein Embedded-System - nach den Regeln des modernen Software Engineerings. Die Anwendung von Pointern, Function Pointern und Strukturen sind Ihnen geläufig. Die Kenntnis von Programmier-/Codier-Richtlinien und Software-Qualitätsmerkmalen, funktionellen/ nichtfunktionellen Anforderungen sowie der inneren Qualität ermöglicht es Ihnen, wiederverwendbare, erweiterbare und leicht testbare Software zu erstellen. Zusätzlich kennen Sie nach Teilnahme an der Embedded-C-Schulung alle Schritte eines Software-Entwicklungsprozesses, von der Idee bis hin zur Abnahme des Systems.
Einführung
- ANSI-C
- Embedded-Systeme und ihre Eigenheiten
- Software-Toolkette
- Software-Architektur
- Debug-Features und Bugs
Programmiersprache C für Embedded
- Hardwarenahes Programmieren
- Datentypen
- Pointer, Funktionspointer
- Strukturen, verkettete Listen
- Ringpuffer (circular buffer), Warteschlange (queue), FIFO, LIFO
- Programmierregeln und -richtlinien
- Fallstricke und Stolpersteine in C
Treiberprogrammierung
- Auswahl einer geeigneten SW-Architektur
- HW-Abstraktion, objektbasiertes Programmieren
- Zugriff auf Hardewareregister aus "C"
- Interfaces, Callback Interfaces, Queues
- Interrupt-Behandlung/-Serviceroutine, Callback-Funktion
- Übungen: Timer-Hardwareabstraktion plus Callback
Anwendung von Pointern, Funktionspointern und verketteten Listen
- Programmbeispiel eines Schedulers
- Taskverwaltung mit verketteten Listen
- Übungen: Programmierung einer Taskverwaltung
Real-Time Operating Systeme (RTOS) im Überblick
- Typen, Funktionen, Auswahlkriterien
- Arbeitsweise und Programmierung eines Schedulers
- Übung: Taskwechsel
Bibliotheksmanagement
- Anpassung von Standard-Bibliotheksfunktionen an die Hardware
- Generierung und Verwaltung von User-Bibliotheken
- Übung: Kreieren und Einbinden einer Bibliothek
Lokatieren von Code und Daten im (µC-) Speicher (Flash-, RAM-Adressraum)
- Logische Sektionen (.text, .data, .bss) im Buildprozess
- Lade,- und Ausführungsadressen
- Steuern des Linkers über Kommandodateien
Zustandsautomaten (Finite State Machines, FSM)
- Beschreibung und Darstellungsvarianten
- Philosophie und Realisierung einer FSM in C
- Übungen: Programmieren einer Ampelsteuerung
Verschiedene Aspekte des Embedded Software Engineering
- Software-Qualitätskriterien
- Software-Entwicklungsprozessmodelle (Wasserfall, V, agil)
- Funktionale Sicherheit
- Anforderungsmanagement (Requirements Engineering)
- Verifikation und Test
- Reifegradmodelle
Ausblick OOP-Techniken
- Vorteile und Herausforderungen der objektorientierten Programmierung
- UML-Diagramme
Kodierrichtlinien
- Sinn und Zweck
- MISRA-C Direktiven und Regeln
MicroConsult Plus: Umfangreiche Übungen auf einer Zielhardware
- Die Übungen werden mit der Keil µVision IDE und Arm-Compiler auf einer M0-basierten 32-Bit Hardwareplattform ausgeführt und getestet.
HINWEIS: Die Kursunterlagen sind auf Englisch