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.
Das A&O der hardwarenahen C-Programmierung
- Datentypen
- Pointer, Funktionspointer
- Strukturen, verkettete Listen
- Ringpuffer (circular buffer), Warteschlange (queue), FIFO, LIFO
- Programmierregeln und -richtlinien
- Fallstricke und Stolpersteine in C
Software-Architektur
- Auswahl eines Software-Schichtenmodells passend zu den Anforderungen
- Kommunikationsmöglichkeiten zwischen den Schichten
- Synchrone und asynchrone Interfaces
Treiberprogrammierung
- HW-Abstraktion, Treiberprogrammierung: Zugriff auf HW-Register aus "C"
- Interfaces, Callback Interfaces, Queues
- Interrupt-Behandlung/-Serviceroutine, Callback-Funktion
Anwendung von Pointern, Funktionspointern und verketteten Listen
- Beispiel: Programmierung eines Schedulers
- Taskverwaltung als verkettete Liste
Programmieren einer Finite State Machine FSM
- Philosophie und Realisierung einer FSM in C
Lokatieren von Code und Daten im (µC-) Speicher (Flash-, RAM-Adressraum)
- Sectioning (.text, .data, .bss)
- Linker Description File
Bibliotheksmanagement
- Anpassung von Standard-Bibliotheksfunktionen an die Hardware
- Generierung und Verwaltung von User-Bibliotheken
Real-Time Operating Systeme (RTOS) im Überblick
- Typen, Funktionen, Auswahlkriterien
Ausblick OOP-Techniken
- Vorteile und Herausforderungen der objektorientierten Programmierung
- Die wichtigsten UML-Diagramme
Einführung in strukturierte Methoden für die Projektplanung
- Vorstudie, Projektstart, Projektplanung, Projektdurchführung
Software-Entwicklungsprozessmodelle
- V-Modell, Spiralmodell, RUP, COPES
- Iterativ-inkrementell
- Agile Softwareentwicklung, XP
Qualität von Embedded-Systemen
- Wie designt und entwickelt man Qualität?
- Überblick Standards und Normen; Überblick MISRA, IEC61508
Software-Testprozess für Entwickler im Überblick
- Testphasen und Testmethode
- Statische Prüfung, dynamischer Test
- Review, Whitebox Test, Blackbox Test
MicroConsult Plus: Umfangreiche Übungen auf einer Zielhardware
- Die Programme werden mit der Keil µVision und Arm RealView Tools oder mit der IAR Workbench entwickelt und auf einer Arm-7 oder Cortex-M3 basierenden Hardware ausgeführt und getestet.