AVR: Interpreter für Assemblerartige Sprache

Gast #3161419
Lesenswert?
• ▲
▼
Moin,

ich habe mal meinen Interpreter für eine assemblerartige Sprache unter 
http://www.roboter.cc/index.php?option=com_nicaiwci&view=project&Itemid=41&projectid=1846 
hochgeladen ;-) Er steht unter der GPLv3 Lizenz.

Ich habe das hexfile nicht getestet, schon alleine, weil ich das 
tuning-Kit habe, aber es sollte funktionieren - wenn nicht melden ;-)

Wieso ein neuer Interpreter? Ich habe nur welche für Basic etc. 
gefunden, die mir zu groß und zu langsam sind, und oft auch 
vorkompilierten Code auf den AVR laden - ich möchte aber notfalls direkt 
auf dem AVR was ändern wollen. Der Interpreter selbst braucht nur ca. 2 
KByte Flash und sehr wenig RAM. Außerdem schafft er ca. 100.000 Befehle 
pro Sekunde auf einem AVR mit 20 MHz.

Bei der Assemblersprache habe ich darauf geachtet, dass sie noch 
einigermaßen von Hand programmierbar ist, ich mir aber bei dessen 
Interpretierung auch keinen Ast abbreche. Jede Anweisung ist 4 Bytes 
lang, die Dokumentation der Befehle in der interpreter.h sollte 
selbsterklärend sein. Jedes Kommando hat das Format Command Subcommand 
Operand1 Operand2, wobei das Subcommand definiert, wie die Operanden 
interpretiert werden sollen. Der Speicher ist in 16 Bit Worten 
addressiert, es gibt aber auch einen 8 Bit Modus.

In interpreter_programs gibts ein paar einfache Testprogramme, die in 
der interpreter_tests verwendet werden.
Ich habe die Aufrufe zur bewegung und zur hinderniserkennung 
rausgeschmissen, weil das andere Projekte sind - wenn ich damit 
zufrieden sind kommen sie aber in eigene Projekte auch hoch ;-)

Was fehlt:
* Stack
* Unterprogrammaufrufe mit Statussicherung
* einfache Stringbearbeitung (lesen / schreiben)

Die nächsten Pläne sind ein einfachster Editor auf der Biene, ein 
Dateisystem (fürs RAM und EEPROM) und eine minimale Shell. Dann bin ich 
soweit, dass man auf der Biene selbst programmieren kann - entweder über 
die serielle Schnittstelle oder direkt via dem BGX1. Letzteres kann v.a. 
für kleine Korrekturen und Anpassungen sehr hilfreich sein.

Kommentare? Fragen? Anregungen? Immer her damit :-)

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.