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)!

Was ist der Unterschied zwischen einer Deklaration, Definition und Initialisierung (C++)?

Kann mir jemand erklären, worin genau der Unterschied zwsichen diesen ganzen Begriffen besteht ?

...zur Frage

Beim Vertuen schnell den Kopf schütteln-Wieso machen Menschen das?

Ich habe heute in Chemieunterricht nochmal festgestellt, dass man immer, wenn man sich vertut, (in diesem Falle war es mein Lehrer, der sich bei dem Namen vertan hat) den Kopf sehr schnell schüttelt und Ähhh sagt. Wieso tun die meisten Menschen das? Vielen Dank fürs Antworten im Voraus:)

...zur Frage

Windows 10 Verknüpfungssymbole dargestellt als leere, weiße Seiten. Warum?

https://gyazo.com/13d0fd1848937b6a4018ab64b1eaffb6 Wieso werden bei mir die meisten Desktop Verknüpfungen nicht richtig angezeigt? Wie kann ich das beheben? Danke im voraus. ~Daniel

...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

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

Wieso reagieren die meisten komisch, wenn man sagt, dass Strafrecht einen begeistert?

Ich habe mein Jurastudium mit dem Ziel angefangen, einmal Strafverteidiger zu werden. Mich hat das schon immer begeistert. Ich habe einfach immer so ein kribbeln in mir wenn es um Kriminalfälle geht. Ich bin allerdings nicht von Anfang an abgeneigt dem Täter gegenüber, sondern möchte die Hintergründe verstehen. Wieso jemand eine Tat begeht und in den meisten Fällen ist diese ja dann bis zu einem gewissen Punkt zu erklären/ rechtfertigen. Ich bin jetzt ins erste Semester gekommen und wollte Jura wirklich schon sehr lange studieren. Es sind sicherlich schon 3 Jahre. Ich war immer begeistert davon. Allerdings verstehen viele das nicht und viele verstehen vor allem nicht wie man als Ersti schon einen bestimmten Berufswunsch haben kann. Ist das will ich so ungewöhnlich ? Ich würde auch gerne wissen wieso ich so hin und weg von dem Studium bin, aber weiß es nicht. Freu mich einfach jeden Tag auf die Lesungen etc. und keiner kann es wirklich nachvollziehen. Und auch wenn ich mit Studenten aus höheren Semestern rede, versteht es fast keiner.

...zur Frage

Was möchtest Du wissen?