Wieso sind die meisten Microcontroller nur in C und nicht C++ programmierbar?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Die Bibliotheken sind zu aufwändig und groß. Die meisten Embedded Systems sind ja eher klein.

Zudem verliert man bei den Möglichkeiten von C++ schnell die Kontrolle über die Ressourcen. Bei großen Rechnern stört das nicht, ist ja genug da.

Bei kleinen Systemen ist es wichtiger immer zu wissen was gerade mit CPU-Zeit, RAM und sonstigen Ressourcen passiert. Dafür nimmt man halt in Kauf, dass die Bibliotheken nicht so komfortabel sind und sich "intelligentere" Programmiersprachen wie C++ halt nicht so anbieten.

Man programmiert allgemein die meisten Mikrocontroller in C. Das liegt an der kleineren Standardbibliothek von C. C++ hat sich nie durchgesetzt im Embedded Bereich und deshalb wird im Bereich Embedded Systems so gut wie alles in C programmiert, würde es mehr Nachfrage an C++ geben würde sich der Markt danach richten. Die Nachfrage gibt es aber nicht.

Erstmal Danke! Würde es dennoch funktionieren, in C++ zu programmieren? Ich meine, es wird doch in HEX-Code umgewandelt. Oder macht das ein Unterschied?

0
@ComFreek

Es gibt auch Mikrocontroller die sich in C++ programmieren lassen. So ists ja nicht. C++ und C sind eine plattformabhängie Sprache, es würde Dir nichts nützen wenn Du Deinen C++ Code auf Deinem Windowsrechner compilierst und ihn dann versuchst auf Dein Ziel-System zu bekommen.

0
@ComFreek

Natürlich schaufelst Du es irgendwie von Deinem Entwicklungsrechner auf das Zielsystem, aber dazu benutzt Du auch eine spezielle Entwicklungsumgebung die auch nur gewisse Sprachen utnerstützt um es dann auf den Mikrocontroller zu flashen. Aber wenn Dus einfach irgendwo in Visual Studio beispielsweise übersetzen lässt, dann wird das nix.

0
@Kobold82

Ich dachte C++ und C sind plattformunabhängig! Solange man keine plattformabhängige Dateien einbindet. Oder liege ich falsch?

Ich schreibe meinen Quellcode in irgendeinem Textprogramm. Führe ein Makefile aus und bekomme eine HEX-Datei. Diese lade ich auf meinen Roboter. Ich muss nämlich dieses spezielle Makefile nutzen, sonst gehts nicht.

0
@ComFreek

Meist benötigt man eine spezielle Compilierung, die für den entsprechenden Chip gemacht werden muss. Wenn Du z.B. komplette Kontrolle benötigst, wo was abgelegt wird (im NVRAM, ROM etc.), darfst Du keine dynamisch erzeugten Objekte verwenden, also kein new/delete, sondern nur statisch erzeugte Objekte (das geht sowohl in C also auch in C++), für C++ braucht man mehr Platz, wenn man das objektorientiert entwickelt! Ich habe z.B. eine Umstellung von C auf C++ begleitet und hatte als Prototypentwicklung immer den zusätzlichen Speicherplatzbedarf um die Ohren geknallt bekommen, so dass ein größerer Chip notwendig wurde!

0

Vielen Dank an alle, die irgendwas geschrieben haben. Naja, dann schreibe ich eben den Code in C, ist ja kein Weltuntergang (Assembler wär in diesem Beispiel vllt. der Weltuntergang :D)!

Samstag arbeit nachschreiben?

Heute muss ich eine arbeit nachschreiben und finde das richtig unfair! Da wird man fürs Kranksein noch bestraft? Darf man das überhaupt? und wieso muss ich die samstag nachschreiben und meine freundin mittwoch ?

...zur Frage

Wieso denken die meisten das Gothic was schlimmes ist?

Ich bin schon seit einer gewissen Zeit in der Gothic szene und meine Klasse hat das bemerkt
und die denken das Gothic was schlimmes ist und ich weiß net wie ich ihnen Gothic richtig erklären soll. Kann mir wer helfen?

...zur Frage

Laserdrucker, der FARBFOLIEN drucken kann

Hallo, bin auf der Suche nach einem preiswerten Laserdrucker, mit dem man Farbfolien drucken kann (- die dann auf einem Overhead auch farbig projiziert werden und eben nicht grau...). Gut wäre es auch, wenn der Laserdrucker netzwerkfähig wäre. Wichtiger aber sind die Farbfolien und Folgekonsten für den Toner. Daher meine Frage:

Hat jemand von euch schon gute Erfahrungen mit einem Laserdrucker bei Farbfolien gemacht? Mit welchem (akutellem) Modell?

...zur Frage

Warum haben schlechte Menschen so viel Glück und Reichtum und guten geht es oftmals schlecht?

Wieso ist das so? Warum leiden die, die es am wenigsten verdienen am meisten, und schlechte Menschen ohne Gewissen, mit schlechten Absichten, Machtgier usw. kriegen alles, was sie wollen - gute Jobs usw. Warum? Was hat Gott (wenn es ihn denn gibt) sich dabei gedacht?

...zur Frage

Ich will eine Folie bedrucken für einen Overhead-Projektor. Welche Folie muss ich nehmen?

Ich will eine Folie bedrucken für einen Overhead-Projektor. Ich habe eine Folie hier, aber die Tinte verschmiert immer wieder. Jetzt brauche ich eine Folie wo die Tinte nicht verläuft. Ich habe einen Tintenstrahldrucker (Epson Xp-520). Vielen Dank! Einen Link von Amazon bitte.

...zur Frage

Neue Freunde für mich?

Hallo, ich bin 13 Jahre alt und suche Freunde! Ich habe zwar schon welche, aber die meisten sind Fake und ich wollte mal so eine richtig ehrliche Freundschaft. Ich will jetzt auch nicht extra ein Hobby haben um Freunde zu bekommen, aber ich bin echt verzweifelt.
Jemand ne Idee?...
MfG XXX

...zur Frage

Was möchtest Du wissen?