Forum: Projekte & Code AVR: Interpreter für Assemblerartige Sprache


von mifritscher (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.