Besonderheiten der C++-Embedded-Programmierung
Zielgruppe:
Softwareentwickler/innen, die ihre allgemeinen C++-Kenntnisse dahingehend erweitern wollen, dass sie ressourcenschonende und hardwarenahe Anwendungen für Embedded-Systeme entwickeln können.
Vorkenntnisse:
Gute Allgemeinkenntnisse der Programmiersprache C++ (C++98/03), wie sie z.B. im Kurs „Objektorientierte Embedded-Programmierung mit C++“ vermittelt werden.
Dauer:
2 Tage (mit praktischen Übungen)
Beschreibung:
Entwickler/innen von Embedded-Software haben typischerweise weniger Speicherplatz- und Laufzeitressourcen zur Verfügung, als das sonst der Fall ist und müssen deshalb sorgsam damit umgehen. Aus diesem Grund geht dieser Kurs sehr genau darauf ein, welche Auswirkungen die objektorientierten Sprachkonstrukte von C++ auf den Ressourcenbedarf eines Programms haben.
Die zweite typische Herausforderung für Embedded-Programmierer ist der Umgang mit Hardwarebausteinen. Der Kurs erläutert deshalb, wie Hardwarebausteine grundsätzlich funktionieren und zeigt wie man sie objektorientiert in eine Applikation einbinden und verwenden kann. Die praktischen Übungen dazu werden bei Präsenzkursen auf einer ARM-basierenden Target-Hardware, bei Onlinekursen mithilfe eines entsprechenden Softwareemulators durchgeführt.
Inhalt:
Analyse der Sprachmittel
- Objektmodell
- Erzeugung und Zerstörung von Objekten
- Temporäre Objekte
- Vererbung
- Virtuelle Funktionen
- Dynamische Speicherverwaltung
Objektorientierte Abbildung von Hardwarebausteinen
- Memory mapped I/O / Port mapped I/O
- Traditionelle Arten des Registerzugriffs
- Polling und volatile
- Register als Datenelemente einer Klasse
- Register als Elemente einer pointeraddressierten Datenstruktur
- Registerzugriff über Datenelement-Pointer oder -Referenz
- Interrupts
- Aufruf einer Interrupt Service Routine (ISR)
- Interrupt Controller
- Implementierung und Installation einer ISR
- Bausteine mit mehreren Interrupt-Quellen
- Interruptbehandlung bei mehreren Bausteinen derselben Art
PRAKTIsche Übungen