Vorschläge für die am besten geeignete (beste) Sprache für die Programmierung eines eingebetteten Systems? [geschlossen]

7

Ich untersuche Embedded Coding für ein Gerät mit etwa 20 MHz, 6 MB RAM und einen ARM32-Prozessor. Kann jemand die beste / am besten geeignete Sprache für die Programmierung eines eingebetteten Systems vorschlagen? Ich überlege:

  • Lua
  • TinyPy
  • C
  • Java ME
  • C #
  • jemand hat JavaScript vorgeschlagen

Irgendwelche Vorschläge? Danke

Bearbeiten - sieht so aus, als wären C und Lua die Gewinner. Prost allen!

Edit - Echtzeit ist kein Problem, es ist mehr das begrenzte ram / cpu diktiert Dinge.

    
Chris 16.03.2009, 03:48
quelle

10 Antworten

4

Ich habe Lua auf einem ARM OMAP-Prozessor verwendet . Dank der engen Integration von Lua mit C können Sie jederzeit auf das Metall zugreifen, und dank seiner geringen Größe ist es für eine Vielzahl von Plattformen geeignet. Ich habe die Benutzeroberfläche für meine Firmware in Lua auf meinem Mac entwickelt und dann ohne Änderungen auf die Embedded-Plattform gebracht.

Obwohl der OMAP-Prozessor stark genug war, um andere Sprachen wie Java oder Python zu verwenden, wusste ich nicht, auf welche Hardware ich beim Starten des Codes ausgerichtet war. Lua war eine sichere Wette.

    
Paul 16.03.2009, 04:50
quelle
8

Wenn Sie das Gerät von Grund auf neu aufbauen oder direkt mit Nicht-Standard-Peripheriegeräten kommunizieren, ist C wirklich der einzige Weg zu gehen.

Wenn Sie bereits ein Embedded-Betriebssystem haben oder eines problemlos portieren können, haben Sie möglicherweise mehr Flexibilität beim Hinzufügen einer der Skriptsprachen. C # kommt nur in WinCE in Frage, dann sind Sie auf .NET Micro beschränkt.

Darüber hinaus hat "am besten" wenig Sinn, ohne zu beschreiben, wofür das Gerät verwendet wird. Manche Sprachen unterstützen bestimmte Aufgaben besser als andere.

    
HUAGHAGUAH 16.03.2009 03:59
quelle
6

C ist wahrscheinlich die beste Wahl für solche begrenzten CPU-Ressourcen.

    
patros 16.03.2009 03:53
quelle
4

Ich wäre versucht, mit glattem C zu gehen, aber dann schreibe ich C fast 30 Jahre lang. Lua und TinyPy erscheinen mir zu neu, experimentell; Embedded-Geräte müssen sehr robust sein.

Java ME hat gute Punkte. Ich kenne C # nicht in einer eingebetteten Welt.

    
Charlie Martin 16.03.2009 03:53
quelle
4

Es ist wichtig anzugeben, was Sie von diesem Gerät erwarten. Ist es eine Art Kontrollanwendung? Muss es Algorithmen implementieren? Was ist mit Gleitkommaunterstützung? GUIs? Ist die Leistung kritisch? Planen Sie ein Betriebssystem zu verwenden?

Die Beantwortung dieser Fragen ist eine entscheidende Voraussetzung für die Auswahl einer Programmiersprache.

Das heißt, eingebettete Systeme müssen zuverlässig sein, also würde ich mich für eine getestete Lösung entscheiden. C ist wahrscheinlich die stabilste und am besten unterstützte Option für ARM-Chips, aber YMMV hängt von Ihren speziellen Anforderungen ab.

    
Eli Bendersky 16.03.2009 04:53
quelle
2

C ist sicherlich die am häufigsten verwendete Sprache in eingebetteten Systemen. Es scheint auch die am meisten gesprochene Sprache im Allgemeinen Ссылка

zu sein     
robert.berger 18.05.2009 17:16
quelle
1

Bearbeiten: hmm. Mir ist gerade aufgefallen, dass es sich bei dem "Embedded", das Sie zu beschreiben scheinen, nicht darum handelt, eine Automatisierungssprache zu einer Anwendung hinzuzufügen, sondern eine Anwendung in eine eingebettete Plattform zu pressen. Wie andere empfehlen, überspringe einbettbare Sprachen und programmiere deine Anwendung in C, es sei denn, du brauchst sie wirklich. Es gibt fast keinen Laufzeitaufwand dafür, außer für das, was du tatsächlich benutzt.

In keiner bestimmten Reihenfolge sind Lua, JavaScript und TCL sehr gut zum Einbetten geeignet. Lua war für mich am einfachsten einzubetten. Javascript könnte am schnellsten sein. Alle drei haben eine gute Handhabung für nicht vertrauenswürdigen Code, aber TCLs sind am robustesten. Zum Beispiel kann nicht vertrauenswürdiger Code nicht vertrauenswürdigen Code ausführen (wenn man davon ausgeht, dass er dies tut).

    
quelle
1

Sofern Sie kein RTOS zur Verfügung haben, das eine Vielzahl von alternativen Sprachen unterstützt, ist C oder C ++ (abhängig von Ihrer Compiler-Kette) der richtige Weg.

    
Nate 16.03.2009 13:51
quelle
1

Ihre Entscheidung wird höchstwahrscheinlich von den Tools bestimmt, die für diesen Prozessor verfügbar sind.

C ist bei weitem die am meisten unterstützte Sprache für Embedded-Prozessoren, so dass Sie damit nicht weit gehen können, und es wird eine gute Erfahrung sein, wenn Sie Software für andere Chips in der Zukunft schreiben müssen.

C ++ wird immer beliebter für Embedded-Systeme. Darüber hinaus hängt es von Ihren Prioritäten ab (Time-to-Market, Ressourcenverbrauch, Geschwindigkeit) und der Qualität der von Ihnen verwendeten Tools.

    
Steve Melnikoff 16.03.2009 18:40
quelle
1

C das Beste

    
Enjoy coding 06.05.2009 05:41
quelle

Tags und Links