Embedded C Schulung: Programmiermethoden und -tools für Embedded-Anwendungen - Präsenz-Training
Im Mittelpunkt der Embedded-C-Schulung steht die hardwarenahe C-Programmierung von 8-, 16- oder 32-Bit Mikrocontroller-Architekturen. Fallstricke und Stolpersteine der Programmiersprache C lernen Sie kennen und vermeiden. Sie lernen die Programmierung einer Hardware-Abstraktionsschicht gemäß eines Software-Architekturmodells kennen. Sie erhalten in der Embedded C Schulung zudem einen Überblick über den gesamten Lifecycle eines Produktes: von der Idee über den Projektplan, Software-Entwicklungsplan, Testplan, Qualitätsplan, die Abnahme, Inbetriebnahme und den Betrieb bis hin zur Außerbetriebnahme.
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.
Die Embedded C Schulung richtet sich an Software-Entwickler und Software-Architekten.
Gute ANSI-C Kenntnisse sowie Kenntnisse einer Mikrocontroller-Architektur.
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.