Hi, nochmal was anderes: ist C++ auf einem µC sinnvoll? alles was ich bisher darüber gehört hab spricht gegen C++ weil es mehr Speicher und Rechneleistung braucht als C. Im WinAVR User Manual steht das auch: "C language and C++ language compiler for AVR target. There are caveats for using the C++ compiler." Also auf OOP verzichten und klassisch programmieren?
> ist C++ auf einem µC sinnvoll? Das hängt von deiner Applikation ab und davon, wie gut du die kleinen Fallen von C++ verstanden hast. Ein vergessenes `&' in einer Deklaration kann mächtig Ressourcen verschwenden. > alles was ich bisher darüber gehört hab spricht gegen C++ weil es > mehr Speicher und Rechneleistung braucht als C. Quark. Ansonsten ist wohl schon genügend zum Thema gelabert worden, schau dich doch erstmal im Forum um.
> nochmal was anderes: ist C++ auf einem µC sinnvoll? Ja. > alles was ich bisher darüber gehört hab spricht gegen C++ weil es > mehr Speicher und Rechneleistung braucht als C. Das ist Blödsinn. Wenn man es richtig angeht, kann man hübsche Klassen basteln, die einen Overhead von genau 0 gegenüber C haben. Ich hab da auch schon ein bisschen gebastelt und will mir eine kleine Klassenbibliothek für das Ansprechen der Hardware im AVR-Controller (pins, timer, pwm, ...) schreiben, mit der der Code auch etwas beschreibender sind (PortB1.setDirection(Out); statt DDIRB |= _BV(DDIRB1);). Die bisherigen Tests sehen im generierten Code genauso aus, wie der vom C-Compiler generierte. Man muß sich halt etwas auskennen und wissen, was der Compiler aus bestimmten Sprachkonstrukten macht. > Also auf OOP verzichten und klassisch programmieren? Geht natürlich auch. Ich finde die Möglichkeiten von C++ recht vielversprechend, deshalb werde ich das auf jeden Fall weiter verfolgen.
Kenne mich mit WinAVR nicht aus. Normalerweise gibst du den Dateien einfach eine C++-Endung (cpp, cxx, C, cc, ...) und benutzt g++ statt gcc. Irgendwo habe ich mal was von einem fehlerhaften Makefile gehört, das c++-Files nicht als Quellen betrachtet und daher bei einem "make clean" löscht. Keine Ahnung, ob das bei WinAVR war, aber ich schreib's vorsichtshalber trotzdem, weil ich nicht verantwortlich dafür sein will, wenn jemand anders seinen Code verliert.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.