Umfang: Voraussichtlich 800 Seiten
Erscheinungstermin: Voraussichtlich im Herbst 2026.
Vorwort
Dieses Buch richtet sich an alle, die Mikrocontroller und embedded Systeme mit modernem C++ programmieren wollen. Das können erfahrene Programmierer aus der Industrie, Schüler und Studenten sein.
Mikrocontroller steuern viele Geräte, von Waschmaschinen über Roboter, Drohnen, Autos, industrielle Produktionsanlagen, Flugzeuge, Weltraumsonden, medizinische Geräte (Intensivstationen sind voll davon), Waffensysteme usw. Solche Programme unterscheiden sich von Programmen auf einem PC vor allem dadurch, dass sie
- nicht durch Benutzereingaben (über eine Maus, Tastatur usw.) gesteuert werden, sondern über Sensoren (z.B. den Temperaturfühler in einer Waschmaschine), die dann über Aktoren z.B. die Heizung der Waschmaschine an- oder ausschalten.
- oft auf Rechnern ohne ein Betriebssystem laufen. Sie haben deshalb keine Dienste eines Betriebssystems zur Verfügung und müssen die Hardware oft direkt ansprechen.
Mikrocontroller-Programme sind oft Teile von eingebetteten Systemen (embedded Systems). Darunter versteht man Rechner, die in Geräten enthalten sind und diese steuern.
Abgesehen von diesen Unterschieden haben Programme für eingebettete Systeme viele Gemeinsamkeiten mit Programmen, die auf einem Rechner mit einem Betriebssystem laufen und mit der Maus und der Tastatur bedient werden. Die meisten Sprachelemente von C++ werden in einem embedded Programm ähnlich wie bei einem PC-Programm eingesetzt. Die besonderen Anforderungen bei embedded Systemen erfordern aber doch oft eine andere Vorgehensweise. Diese wird an zahlreichen Beispielen gezeigt. Viele Beispiele zu den Sprachelementen von C++ sind aus dem embedded Umfeld.
Traditionellerweise werden embedded Programme oft in C geschrieben. Die zunehmende Komplexität und Größe von solchen Anwendungen ist allerdings mit den Mitteln von C oft nur noch schwer zu bewältigen. Deswegen wird in diesem Buch von Anfang an C++ verwendet, auch wenn das bei den einfachen Anwendungen in dieser Einführung nicht groß ins Gewicht fällt. C++ bietet enorme Vorteile, die Entwicklungskosten sparen und zur Zuverlässigkeit der Anwendungen beitragen.
Modernes C++ (die Weiterentwicklung von C++11/14/17/20 usw.) bietet gegenüber dem traditionellen C++ viele Möglichkeiten, die Programme für embedded Systeme stark verbessern können. Diese Weiterentwicklungen und ihre Vorteile stehen in diesem Buch im Vordergrund und werden in vielen Beispielen illustriert.
Zusammen mit den C++ Sprachelementen werden auch die im Oktober 2023 veröffentlichten MISRA C++:2023 Guidelines für sicherheitsrelevante Systeme vorgestellt. Diese lösen die noch auf C++03 ausgerichteten und seit C++11 veralteten MISRA C++:2008 Guidelines ab.
- Da die alten MISRA Regeln überhaupt nicht auf die zahlreichen Neuerungen seit C++11 ausgerichtet waren, wurde die Verwendung der neuen Sprachelemente als Verstoß gegen die MISRA Regeln bewertet.
- Deshalb hat die bei sicherheitskritischer Software oft geforderte konsequente Einhaltung dieser Regeln einen antiquierten Programmierstil erzwungen.
Die neuen MISRA Regeln entsprechen nicht nur einem zeitgemäßen C++. Sie sind außerdem nicht so restriktiv und erlauben Sie sind sind richtig gut geworden. Sie gehören zu den besten „best practices“-Sammlungen mit vielen sehr hilfreichen Empfehlungen für die Praxis. Und das nicht nur für Embedded-Anwendungen, sondern für alle C++-Programme, die sicher sein sollen.