C++-Metaprogrammierung mit Templates für Embedded Systems

Hardwarenah bedeutet meist hardwarespezifisch zu programmieren. Mehr Portabilität bei gleichbleibend schlanken Binaries bietet dagegen modernes C++.

Lesezeit: 8 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen
Von
  • Tobias Kotulla
  • Dirk Petrautzki
Inhaltsverzeichnis

Quellcode, der auf unterschiedlichen Architekturen übersetzt werden soll, muss einfach portierbar sein. Das lässt sich in der Welt der eingebetteten Systeme aber oft nur schwer erreichen. Die Embedded-Programmierung verleitet Entwickler schnell dazu, die Grenzen klarer Strukturierungen aufzuweichen und hardwarespezifischen Code zu schreiben, da sie sich gedanklich tief in der Ebene der Hardware befinden. Das erschwert oder verhindert eine zukünftige Portierung. Modernes C++ bietet hierfür einen Ausweg, der Entwickler – beim Umsetzen eines guten Grundmodells – dazu zwingt, sich an klare Abgrenzungen zu halten und dadurch die Portierbarkeit zu gewährleisten.

Mit dem Einsatz von C++ statt C und der Schaffung zusätzlicher Abstraktionsebenen stellt sich die Frage nach eventuellem zusätzlichen Speicherbedarf und der Auswirkung auf die Performanz. Der Artikel zeigt, dass mit Metaprogrammierung unter Verwendung von C++-Templates diese Befürchtung unbegründet ist.

Die Technik der Metaprogrammierung erlaubt es, Softwareschnittstellen für wiederkehrende Funktionen zu definieren, deren Implementierung sich bei der Änderung der Hardware unterscheidet. Durch die Definition der Schnittstelle ergibt sich einerseits ein einheitlicher Stil, der die Portierbarkeit gewährleistet, andererseits erzeugt dieser Ansatz keinen Overhead, da er durch den Einsatz von Templates den Compiler zur Auswertung zwingt, der dadurch keinen überflüssigen Code generiert.

Immer mehr Wissen. Das digitale Abo für IT und Technik.

  • Zugriff auf alle Inhalte von heise+
  • exklusive Tests, Ratgeber & Hintergründe: unabhängig, kritisch fundiert
  • c't, iX, Technology Review, Mac & i, Make, c't Fotografie direkt im Browser lesen
  • einmal anmelden – auf allen Geräten lesen - monatlich kündbar
  • erster Monat gratis, danach monatlich 9,95 €
  • Wöchentlicher Newsletter mit persönlichen Leseempfehlungen des Chefredakteurs
GRATIS-Monat beginnen Jetzt GRATIS-Monat beginnen Mehr Informationen zu heise+