Ich habe einen mbed-Mikrocontroller mit einem kleinen ARM Cortex M3 . Grundsätzlich sind meine effektiven Ressourcen für das Projekt ~ 25 KB RAM und ~ 400 KB Flash. Für E / A habe ich eine PS / 2- Tastatur, einen VGA-Framebuffer (mit Zeichenausgabe) und eine SD-Karte zum Speichern / Laden von Programmen (bis zu ein paar MB vielleicht).
Ich frage, weil ich versuche herauszufinden, welche Programmiersprache auf dem Ding implementiert werden soll. Ich suche nach einer interpretierten Sprache, die für mich einfach zu implementieren ist und die meine Ressourcen nicht sprengt. Ich beabsichtige auch, dass dies zumindest auf dem Gerät selbst geschrieben werden kann, obwohl der Editor interpretiert werden kann (yay, Bootstrapping).
Wie auch immer, ich habe mir ein paar einfache Sprachen angesehen. Einige nette Kandidaten:
Hat jemand so etwas getan oder kennt er Sprachen, die zu dieser Rechnung passen, oder hat er bisher Kommentare zu meinen drei Kandidaten?
Antworten:
Für das, was Sie beschrieben haben, ist FORTH wahrscheinlich ideal. FORTH läuft routinemäßig auf viel kleineren Plattformen als Ihrer. (16K insgesamt ist eine große Maschine für FORTH.) Es wird eine ernsthafte Lernkurve geben, wenn Sie sich FORTH noch nie angesehen haben.
Es gibt eine Schema-Implementierung namens TinyScheme (wie ich mich erinnere), die einen Blick wert sein könnte. Ich habe zum ersten Mal davon in einem Artikel über Slashdot gehört, von einem Typen, der es als Kern seiner Malware-Engine verwendet hat. (Ja, das ist richtig: Seine Aufgabe war es, Malware für irgendetwas zu schreiben, und dies in TinyScheme zu tun, bedeutete, dass ihre Nutzlast viel kleiner sein könnte.)
quelle
Ich werde den Fall vertreten, dass Lua bei weitem Ihre beste Wahl ist. Sie können Lua überall dort kompilieren, wo C ausgeführt werden kann, und es ist eine der leichtesten Skriptsprachen überhaupt. Es ist als Sprache sehr flexibel und die Fähigkeiten sind auch ziemlich übertragbar. Es gibt sogar eine speziell eingebettete Version von Lua .
Nachtrag: Es ist anscheinend möglich , den Speicherbedarf auf etwas mehr als 25 KB zu senken.
Nachtrag 2 - Die Dinge werden verrückt: Es gibt eine Option, die durch diese SO-Frage aufgeworfen wird . Eichhörnchen ist eine Sprache, von der ich gehört habe, die ich aber nie benutzt habe. Es ist anscheinend sogar kleiner als Lua aufgrund der Verwendung der Referenzzählung.
quelle
eLua
aber es liegt außerhalb meiner Reichweite für Ressourcen. Grundsätzlich sindIn Bezug auf einbettbare Skriptsprachen sind die 2, mit denen ich vertraut bin, LUA und PAWN .
Ich denke, es gibt Versionen von Python und anderen solchen Sprachen, die auf eingebettete Systeme portiert sind, aber sie sind in der Regel die eingebettete Linux-Variante. Abhängig von Ihrer Plattform (keine Ahnung, ob es sich um eine kleine MCU mit 8K-ROM oder einem eingebetteten PC handelt) ist dies möglicherweise eine Option.
quelle
Ich erinnere mich, dass ich vor einiger Zeit über Tcl / Tk und seine Verwendung in Routern gelesen habe.
Auszug aus dem Abschnitt "Embedded Development" unter http://www.tcl.tk/about/uses.html :
quelle