Ich war schon immer ein Embedded-Software-Ingenieur, aber normalerweise auf Schicht 3 oder 2 des OSI-Stacks. Ich bin nicht wirklich ein Hardware-Typ. Ich habe im Allgemeinen immer Telekommunikationsprodukte hergestellt, normalerweise Hand- / Mobiltelefone, was im Allgemeinen so etwas wie einen ARM 7-Prozessor bedeutet.
Jetzt befinde ich mich in einer allgemeineren eingebetteten Welt, in einem kleinen Start-up, in dem ich möglicherweise zu "nicht so leistungsstarken" Prozessoren übergehe (es gibt das subjektive Bit) - ich kann nicht vorhersagen, welche.
Ich habe viel über die Debatte über die Verwendung von STL in C ++ in eingebetteten Systemen gelesen und es gibt keine eindeutige Antwort. Es gibt einige kleine Bedenken hinsichtlich der Portabilität und einige hinsichtlich der Codegröße oder der Laufzeit, aber ich habe zwei Hauptprobleme:
1 - Ausnahmebehandlung; Ich bin mir immer noch nicht sicher, ob ich es verwenden soll (siehe Embedded C ++: Ausnahmen verwenden oder nicht? )
2 - Ich mag die dynamische Speicherzuweisung in eingebetteten Systemen aufgrund der damit verbundenen Probleme nicht. Ich habe im Allgemeinen einen Pufferpool, der zur Kompilierungszeit statisch zugewiesen wird und der nur Puffer mit fester Größe bereitstellt (wenn keine Puffer vorhanden sind, System zurücksetzen). Die STL führt natürlich eine Menge dynamischer Zuweisungen durch.
Jetzt muss ich die Entscheidung treffen, ob ich die STL verwenden oder darauf verzichten möchte - für das gesamte Unternehmen für immer (es geht um einige Kern-S / W).
In welche Richtung springe ich? Super sicher und viel von dem verlieren, was C ++ ausmacht (imo, es ist mehr als nur die Sprachdefinition) und vielleicht später auf Probleme stoßen oder jetzt viel Ausnahmebehandlung und vielleicht etwas anderen Code hinzufügen müssen?
Ich bin versucht, einfach mit Boost zu arbeiten , aber 1) ich bin nicht sicher, ob es auf jeden eingebetteten Prozessor portiert, den ich verwenden möchte, und 2) auf ihrer Website sagen sie, dass sie bestimmte Teile davon nicht garantieren / empfehlen für eingebettete Systeme (insbesondere FSMs, was seltsam erscheint). Wenn ich mich für Boost entscheide und wir später ein Problem finden ...