Welcher Programmiersprache gehört die Zukunft im Embedded Bereich? C++ oder Java
-
volkard schrieb:
Kennerio schrieb:
Und einen größeren Schwachsinn habe ich selten gelesen (@volkard).
es würde dir gut anstehen, dir die geschichte von java ein wenig zu gemüte zu führen. kläre dabei doch mal die designziele von oak ab. in den alten jdks steht übrigens noch oak statt java in den dateikopfkommentaren.
Oje! Das ist wirklich schon mehr als 10 Jahre her, dass sich Sun von Oak und dem Gedanken verabschiedet hat, eine Programmiersprache für Toaster und Waschmaschinen zu entwickeln. Java hat sich in den letzten anderthalb Jahrzehnten weiter eintwickelt, falls du dir das mal zu Gemüte führen willst.
Und Java auf Handys ist nun mal Fakt. Ob einem das gefällt oder nicht.
-
Embedded Progger schrieb:
Also noch alte Technik, wegen langen in der Industrie üblichen Supportzeiten von 10 Jahren.
Aber DAS wird irgendwann aufhören, in 10 Jahren habt ihr sicher auf einen der neuen Embedded Chips umgestellt und ist Speicherplatzersparnis und schlankheit
der Routinen kein Argument mehr um auf Programmierfreundliche Programmiersprachen zu verzichten.Naja unser DSP ist nicht so alt: Blackfin 561 dualcore mit je 500MHz. und davon sinds 2.
Dennoch ist es recht wenig, für die vielzahl der Anwednungen, die er gleichzeitig berechnen soll.
hierbei handelt es sich um Bildverarbeitung mit komplexen matehmatischen Hypothesen und Modellen, die gebildet werden.
Zumal er keine FPU hat.Das heißt man investiert bewusst einige Mannjahre an Ent-double-isierungsaufwand
um dann ein paar Dollar einzusparen.
Es kommt halt auf die Stückzahlen an.Ebendso mit der portierung nach C.
Wenn man sich die STL anschaut, ist das sehr nett, aber natürlich auch recht overhead-behaftet, der eingespart werden muss.Außerdem kann man auf den GC und dynamische Speicherallokierung ja auch verzichten.
Das geht sowohl in C++ als auch in D.Garbage Collector in C++?
D? lol, find mal ein embedded compiler für D.
-
Embedded Progger schrieb:
Wieviel kosten 128 MB RAM heute? 2 €?
Soso, und du denkst 2€ sind wenig? Was glaubst du wie oft sich z.B. ein Controller der die Neigung von einem Scheinwerfer in Autos entsprechend der Lastverteilung im Auto anpasst verkauft? Für 2€ kannst du da ohne weiteres 5 Mannjahre (und mehr) investieren. Dazu kommt noch das die Kosten dafür verglichen mit den Kosten für Tests und Zertifizierungen gar nicht auffallen.
-
vlad_tepesch schrieb:
Garbage Collector in C++?
D? lol, find mal ein embedded compiler für D.Ja, natürlich.
In C++09 wird der Garbage Collector dabei sein und ich versuche den Thread ja auf die Sicht aus "in 10 Jahren" zu betrachten.Und in 10 Jahren wird es für D bestimmt auch brauchbare Compiler für embedded Chips geben, denn gerade D bietet sich ja für solche Embedded Chips an.
Es hat nicht die Nachteile von C++ oder C, aber ist genauso für die Systemprogrammierung geeignet wie C und bietet darüberhinaus noch eine gute STD API.
-
borg schrieb:
Embedded Progger schrieb:
Wieviel kosten 128 MB RAM heute? 2 €?
Soso, und du denkst 2€ sind wenig? Was glaubst du wie oft sich z.B. ein Controller der die Neigung von einem Scheinwerfer in Autos entsprechend der Lastverteilung im Auto anpasst verkauft? Für 2€ kannst du da ohne weiteres 5 Mannjahre (und mehr) investieren. Dazu kommt noch das die Kosten dafür verglichen mit den Kosten für Tests und Zertifizierungen gar nicht auffallen.
Nun, es ist eine Annahme des untersten Preis von verfügbaren Mikrochips.
Ob es tatsächlich 2 € sind weiß ich nicht.Aber eines steht klar, es gibt natürlich nichts günstigeres als dieses untersten Preises. Wo der unterste Preis liegt, bitte selbst anpassen!
Denn wie schon gesagt, es ist Fakt, wenn ich eine moderne 32 Bit Architektur
zu gleichen Produktions und Materialkosten auf die gleiche Die Fläche bekomme wie eine alte 8 Bit Architektur, dann hat die alte 8 Bit Architektur natürlich keinen Preisvorteil.Und davon geht ihr ja aus, aber der ist ja nichtig, wenn wir reden ja schon vom untersten machbaren Preis.
@ Tim
Auf deinem Niveau diskutiere ich ganz sicher nicht.
-
Embedded Progger schrieb:
vlad_tepesch schrieb:
Garbage Collector in C++?
D? lol, find mal ein embedded compiler für D.Ja, natürlich.
In C++09 wird der Garbage Collector dabei sein und ich versuche den Thread ja auf die Sicht aus "in 10 Jahren" zu betrachten.lol.
informier dich mal richtig, was du schreibst ist falsch.
in c++0x wird es KEINEN GC geben!
-
hustbaer schrieb:
informier dich mal richtig, was du schreibst ist falsch.
in c++0x wird es KEINEN GC geben!Vor noch ca. 12 Wochen habe ich da aber ganz anderes gehört.
-
[quote=http://en.wikipedia.org/wiki/C%2B%2B0x]Transparent garbage collection
C++0x will not feature transparent garbage collection directly. Instead, the C++0x standard will include features that will make it easier to implement garbage collection in C++.Full garbage collection support has been remanded to a later version of the standard or a Technical Report.[/quote]
-
ihr fallt doch immer wieder auf den gleichen troll rein
-
Embedded Progger schrieb:
borg schrieb:
Embedded Progger schrieb:
Wieviel kosten 128 MB RAM heute? 2 €?
Soso, und du denkst 2€ sind wenig? Was glaubst du wie oft sich z.B. ein Controller der die Neigung von einem Scheinwerfer in Autos entsprechend der Lastverteilung im Auto anpasst verkauft? Für 2€ kannst du da ohne weiteres 5 Mannjahre (und mehr) investieren. Dazu kommt noch das die Kosten dafür verglichen mit den Kosten für Tests und Zertifizierungen gar nicht auffallen.
Nun, es ist eine Annahme des untersten Preis von verfügbaren Mikrochips.
Ob es tatsächlich 2 € sind weiß ich nicht.Aber eines steht klar, es gibt natürlich nichts günstigeres als dieses untersten Preises. Wo der unterste Preis liegt, bitte selbst anpassen!
Der Punkt ist eben, dass es bei Embeddedsachen in der Regel um die Stückzahl geht. Das ist ja eine ganz einfache Rechnung: Mehrkosten * Stückzahl = Verbratenesgeld. Angenommen du gehst von 2€ aus und einer (wohl eher geringen Stückzahl) von 1 Millionen, dann hast du 2 Millionen € verbraten. Da lohnt es sich lieber 1 Millionen € in ein fähiges Entwicklerteam zu stecken.
Das ist eben der Unterschied zwischen dem Embedded und dem PC Bereich. Beim PC Bereich weißt du, dass die Rechenleistung exponentiell steigt (und du musst selbst idR nicht die Kosten der Hardware tragen). Also nimmt man lieber Tools, die im Endeffekt mehr Rechenleistung benötigen, aber die Entwicklungszeit reduzieren.
Embedded Progger schrieb:
Denn wie schon gesagt, es ist Fakt, wenn ich eine moderne 32 Bit Architektur
zu gleichen Produktions und Materialkosten auf die gleiche Die Fläche bekomme wie eine alte 8 Bit Architektur, dann hat die alte 8 Bit Architektur natürlich keinen Preisvorteil.Und davon geht ihr ja aus, aber der ist ja nichtig, wenn wir reden ja schon vom untersten machbaren Preis.
Die Rechnung ist auch nicht so einfach. Du kannst ja zum Beispiel nicht einfach die alten Anlagen benutzen um die neue Architektur herzustellen und du musst die Entwicklung bezahlen, die Tests werden komplizierter etc. daher ist eine moderne Architektur teurer, auch wenn die Integrationsdichte höher ist. Hinzu kommt natürlich, dass du bei einer alten Architektur mehr Leute findest, getestete Tools hast und die Fehler der Hardware bekannt sind.
(Und im Zweifelsfall kann man immer noch damit argumentieren, dass du mit verbesserter Integration eben den 8 Bit Chip auf eine noch kleinere Fläche bekommst und noch weniger Material verbrauchst)
----
Wobei der Begriff Embedded eh eher schwammig ist. Eine Steuerung für einen Toaster mit sehr hoher Stückzahl ist natürlich was anderes, als die Programmierung einer Settopbox - die die Rechenleistung eines vielleicht 2 Jahre alten PCs bietet. Aber dennoch gibt es Leute für die beides unter die Embeddedprogrammierung fällt.
-
Embedded Progger schrieb:
@ Tim
Auf deinem Niveau diskutiere ich ganz sicher nicht.Und ich geh nicht mit Reinhold Messner Bergsteigen. Go figure.
-
rüdiger schrieb:
Der Punkt ist eben, dass es bei Embeddedsachen in der Regel um die Stückzahl geht. Das ist ja eine ganz einfache Rechnung: Mehrkosten * Stückzahl = Verbratenesgeld. Angenommen du gehst von 2€ aus und einer (wohl eher geringen Stückzahl) von 1 Millionen, dann hast du 2 Millionen € verbraten. Da lohnt es sich lieber 1 Millionen € in ein fähiges Entwicklerteam zu stecken.
Um was dann zu erreichen?
Der Chip kostet ja immer noch 2 € -> untersten Preis.Oder machen wir es ganz einfach, du ganz wählen zwischen:
8 Bit CPU Preis 2 €
oder
32 Bit CPU Preis auch 2 €Denn 2 € ist der unterste Preis aller verfügbaren CPUs.
Wo sparst du da mit einem fähigen Entwicklerteam Geld ein?
Ohne CPU können die ja auch nichts anfangen.Die Rechnung ist auch nicht so einfach. Du kannst ja zum Beispiel nicht einfach die alten Anlagen benutzen um die neue Architektur herzustellen
Da die heutigen Neuanlagen in 10 Jahren Altanlagen sind, werden die auch fähig sein diese billigen 32 Bit CPUs zu produzieren.
Was dann übrig bleibt sind reine Material und Energiekosten und hier dürften die neuen Anlagen wieder besser abschneiden.und du musst die Entwicklung bezahlen, die Tests werden komplizierter etc.
Warum sollten die Tests mit C++ komplizierter werden als mit C?
Oder meinst du die Hardware?Embedded CPUs haben den Vorteil, daß sie auf eine langfristige Produktion ausgelegt sind.
D.h. man nutzt die ersten 1-2 Jahre um die Anlage so zu
kalibrieren, daß sie einen hohen Yield erzeugen, also ne gute Rate Funktionsfähiger Chips ausspucht und dann läuft das Ding so weiter für die nächsten 5-8 Jahre, denn es sind ja Embedded CPUs die deutlich länger produziert werden als die modernen High Tech PC CPUs.
Und dennoch, auch bei den Embedded Chips steigt die Leistung mit den Jahren an.daher ist eine moderne Architektur teurer, auch wenn die Integrationsdichte höher ist.
In 10 Jahren ist die aber nicht mehr modern, sondern alt.
Hinzu kommt natürlich, dass du bei einer alten Architektur mehr Leute findest, getestete Tools hast und die Fehler der Hardware bekannt sind.
Siehe oben.
Nimm z.b. eine moderne ARM CPU.
32 Bit fähig und mit nem Takt irgendwo bei 200 Mhz.
In 10 Jahren ist das alte Technik die zum Centpreis verkauft wird und die Tools dafür sind bis dahin ausgereift.
Tja, und jetzt stellt man fest, daß 200 MHz eigentlich unglaublich schnell sind für C++ und Java fängt ebenfalls an Interessant zu werden.Heute kostet so ne ARM CPU ca. 10 €, aber schon morgen wird sie nur noch ein paar Cents kosten.
(Und im Zweifelsfall kann man immer noch damit argumentieren, dass du mit verbesserter Integration eben den 8 Bit Chip auf eine noch kleinere Fläche bekommst und noch weniger Material verbrauchst)
Ein MSP430 ist heutzutage inzwischen so groß die der Fingernagel des kleinen Fingers. D.h. der kommt schon in Bereiche vor, bei der die Bestückung zu ner Fummelarbeit wird.
Auch wenn man dafür Maschinen verwendet, so gibt es dennoch eine Mindestgröße.
Die Maschinen sind nämlich nicht in der Lage, im Nanobereich zu bestücken.Also geht man lieber her und integriert die ganzen Technik drumherum, wie Speicheranbindung, DSP etc. in den Chip und bleibt bei etwa der Fingernagelgröße.
Denn eines muß man Bedenken, der Chip braucht auch Datenleitungen nach draußen und deswegen kann man den nicht unendlich Miniaturisieren.Schon die Größe so eines SMD Kondensators ist kaum noch zu erreichen, wenn man über 32 Adressleitungen nach außen leiten muß.
Wobei der Begriff Embedded eh eher schwammig ist. Eine Steuerung für einen Toaster mit sehr hoher Stückzahl ist natürlich was anderes, als die Programmierung einer Settopbox - die die Rechenleistung eines vielleicht 2 Jahre alten PCs bietet. Aber dennoch gibt es Leute für die beides unter die Embeddedprogrammierung fällt.
In der Tat, für mich wäre beides schon Embedded.
Auch diese Switchs mit WLAN Router und Co würde ich schon in den Embeddedbereich zählen.
-
Tim schrieb:
Embedded Progger schrieb:
@ Tim
Auf deinem Niveau diskutiere ich ganz sicher nicht.Und ich geh nicht mit Reinhold Messner Bergsteigen. Go figure.
Tja, dann müßtest du ja auch wissen warum du als Newbie mit mir hier nicht diskutieren mußt.
-
rüdiger schrieb:
Die Rechnung ist auch nicht so einfach. Du kannst ja zum Beispiel nicht einfach die alten Anlagen benutzen um die neue Architektur herzustellen und du musst die Entwicklung bezahlen, die Tests werden komplizierter etc. daher ist eine moderne Architektur teurer...
die entwicklung läuft sowieso ständig weiter. entwicklungskosten und testerei spielen kaum eine rolle. das ist ebenfalls nur 'ne rechnung von angebot, nachfrage, stückzahlen, etc. neue µCs werden anfangs in geringen stückzahlen produziert und brauchen einige teaser fatures, damit sich überhaupt einer dafür interessiert. wenn sie sich etabliert haben (was oft nicht der fall ist), wird die produktion hochgefahren und der preis gesenkt, um konkurrenten zu unterbieten und dadurch noch mehr verkaufen zu können. was glaubt ihr wohl, warum uCs so furchtbar billig sind? weil man kunden fast nur über geringen preis kriegt. ein µC, der z.b. eine eurone teurer ist, als ein anderer, muss viel-viel sinnvolle dinge (die käufer sind nicht doof!) mehr bieten, sonst hat er keine chance.
-
dass ihr euch auch auf jeden flamewar einlasst.
-
Embedded Progger schrieb:
Denn 2 € ist der unterste Preis aller verfügbaren CPUs.
Wo sparst du da mit einem fähigen Entwicklerteam Geld ein?
Ohne CPU können die ja auch nichts anfangen.Es gibt sogar bei Reichelt einen für 0.49€ und das ohne Mengenrabatt. Wie kommst du auf 2€ als fixe unterste Größe?
Embedded Progger schrieb:
daher ist eine moderne Architektur teurer, auch wenn die Integrationsdichte höher ist.
In 10 Jahren ist die aber nicht mehr modern, sondern alt.
Silizium-Kristall wird aus Sand hergestellt. Die Hauptkosten bei Mikrochips liegen in der Entwicklung. Nur um die Herstellung auf einen anderen Chip umzustellen bist du schnell im 4-Stelligen Bereich. Deswegen sind auch die 74er so günstig, weil die nun wirklich sehr sehr langlebig sind. Alte Chips werden immer günstiger und solche, bei denen von Anfang an davon ausgegangen wird, daß sie sehr lange und in hohen Stückzahlen hergestellt werden, sind von vornherein günstig, gegenüber Highend-Chips, die immer auf dem neuesten Stand der Technik sind.
Embedded Progger schrieb:
(Und im Zweifelsfall kann man immer noch damit argumentieren, dass du mit verbesserter Integration eben den 8 Bit Chip auf eine noch kleinere Fläche bekommst und noch weniger Material verbrauchst)
Ein MSP430 ist heutzutage inzwischen so groß die der Fingernagel des kleinen Fingers. D.h. der kommt schon in Bereiche vor, bei der die Bestückung zu ner Fummelarbeit wird.
Auch wenn man dafür Maschinen verwendet, so gibt es dennoch eine Mindestgröße.
Die Maschinen sind nämlich nicht in der Lage, im Nanobereich zu bestücken.Das hat nichts mit der Chipgröße, sondern mit der Gehäusegröße zu tun.
-
Embedded Progger schrieb:
vlad_tepesch schrieb:
Garbage Collector in C++?
D? lol, find mal ein embedded compiler für D.Ja, natürlich.
In C++09 wird der Garbage Collector dabei sein und ich versuche den Thread ja auf die Sicht aus "in 10 Jahren" zu betrachten.Und in 10 Jahren wird es für D bestimmt auch brauchbare Compiler für embedded Chips geben, denn gerade D bietet sich ja für solche Embedded Chips an.
Es hat nicht die Nachteile von C++ oder C, aber ist genauso für die Systemprogrammierung geeignet wie C und bietet darüberhinaus noch eine gute STD API.Nur weil eine Sprache sich, arroganterweise, in das Alphabet hinter C und C++ eingliedert heißt das noch lange nicht, dass sie sich durchsetzen wird, geschweige denn eine "gute" Programmiersprache ist.
-
Heute kostet so ne ARM CPU ca. 10 €, aber schon morgen wird sie nur noch ein paar Cents kosten.
Den Satz finde ich falsch, wäre denn nicht richtiger: Heute kostet der Chip ca. X Euro, aber schon morgen wird er (0.99 *
Euro kosten und übermorgen wird er abgekündigt und überübermorgen nicht mehr produziert ?
Es ist schon richtig, dass man den einen oder anderen Chip billiger und doppelt so viel Speicher für etwas weniger bekommt. Aber gleicht sich denn das nicht irgendwo aus, wenn man bedenkt, dass dabei auch die Anforderungen an die Platine oder allgemein an die Hardware-Entwicklung nicht zu vernachlässigen sind ?
-
Nagila Hawa schrieb:
Embedded Progger schrieb:
Denn 2 € ist der unterste Preis aller verfügbaren CPUs.
Wo sparst du da mit einem fähigen Entwicklerteam Geld ein?
Ohne CPU können die ja auch nichts anfangen.Es gibt sogar bei Reichelt einen für 0.49€ und das ohne Mengenrabatt. Wie kommst du auf 2€ als fixe unterste Größe?
Siehe oben, meine Erklärung wie das mit den 2 Euro zu sehen ist.
Deine 0,49 € gelten also somit als von mir gesagt.Silizium-Kristall wird aus Sand hergestellt. Die Hauptkosten bei Mikrochips liegen in der Entwicklung. Nur um die Herstellung auf einen anderen Chip umzustellen bist du schnell im 4-Stelligen Bereich.
Es läuft aber gar nicht so, daß der eine Hersteller vom einen Chip auf den anderen umstellt, solange der erste noch gut läuft.
Sondern es läuft so, die Konkurrenz bringt einen besseren Chip auf den Markt,
also muß der alteingesessene Hersteller nachziehen und das toppen.
Er kommt also um die Zahlung der 4-Stelligen Bereiche und Neuentwicklungen nicht herum, diese Kosten fallen eh an.Meine Aussage, daß es immer Leistungsfähigere Chips im Embedded Bereich gibt und alte CPUs auf kurz oder lang dadurch verdrängt werden, bleibt also weiterhin unberührt.
Deswegen sind auch die 74er so günstig, weil die nun wirklich sehr sehr langlebig sind. Alte Chips werden immer günstiger und solche, bei denen von Anfang an davon ausgegangen wird, daß sie sehr lange und in hohen Stückzahlen hergestellt werden, sind von vornherein günstig,
Und die schnellen von heute sind in 10 Jahren die alten von Morgen.
Fakt ist aber, daß die Alten Chips selbst über Stückzahlen irgendwann in einen Preis kommen, bei der die reinen Materialkosten schon höher sind.Also darf dieser Preis in der sich die Finanzierung noch lohnt nicht unterschritten werden.
Das dumme ist nur, die Konkurrenz zieht ja mit den Leistungsfähigeren Chips in diesen Markt der Centbeträge nach.
Die 8 Bit CPUs werden also von den 32 Bit CPUs verdrängt.gegenüber Highend-Chips, die immer auf dem neuesten Stand der Technik sind.
Embedded CPUs sind bis auf wenige Ausnahmen eigentlich keine Highe End CPUs.
Embedded Progger schrieb:
Ein MSP430 ist heutzutage inzwischen so groß die der Fingernagel des kleinen Fingers. D.h. der kommt schon in Bereiche vor, bei der die Bestückung zu ner Fummelarbeit wird.
Auch wenn man dafür Maschinen verwendet, so gibt es dennoch eine Mindestgröße.
Die Maschinen sind nämlich nicht in der Lage, im Nanobereich zu bestücken.Das hat nichts mit der Chipgröße, sondern mit der Gehäusegröße zu tun.
Und die Gehäuse kosten auch Geld, auch das verpacken und das Verbinden der Leitungen.
Und Golddraht ist teuer, Aluminium billiger.
Also kann man nach außen hin nicht auf ewig die Die Fläche verkleinern.
-
abc.w schrieb:
Heute kostet so ne ARM CPU ca. 10 €, aber schon morgen wird sie nur noch ein paar Cents kosten.
Den Satz finde ich falsch, wäre denn nicht richtiger: Heute kostet der Chip ca. X Euro, aber schon morgen wird er (0.99 *
Euro kosten und übermorgen wird er abgekündigt und überübermorgen nicht mehr produziert ?
Es ist schon richtig, dass man den einen oder anderen Chip billiger und doppelt so viel Speicher für etwas weniger bekommt. Aber gleicht sich denn das nicht irgendwo aus, wenn man bedenkt, dass dabei auch die Anforderungen an die Platine oder allgemein an die Hardware-Entwicklung nicht zu vernachlässigen sind ?Nun die Technik in der Platinenbestückung wächst ja mit.
Schon heute macht man das alles via SMD, MLPQ, QFN usw. Bestückung,
die SMD Bestückung gibt es schon seit über 25 Jahren.
Und die Anlagen sind schon heute alle automatisiert und hochoptimiert und natürlich auch schon lange in den Firmen vorhanden.
Die alten SMD Bestückungsplatinen von vorgestern wurden in den relevanten Betrieben schon alle durch neue ersetzt und die kommen auch mit den besseren CPUs und Taktraten klar.Das einzige was komplexer ist, ist die Verlegung der Leiterbahnen.
Denn man muß hier ja die Taktrate und Störeinflüsse besonders berücksichtigen,
aber wir hatten doch schon am Anfang das Thema, daß es sich bei den hohen Stückzahlen durchaus rechnen kann, da ein paar Diplom Elektroniker an den Leiterbahnendesigns tüfteln zu lassen.