iX 10/2020
S. 144
Praxis
Embedded-Software

C++-Metaprogrammierung mit Templates für eingebettete Systeme

Brückenschläger

Tobias Kotulla, Dirk Petrautzki

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

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.

Kommentare lesen (1 Beitrag)