Seite 1 von 1

Programmgröße bei Mikro-Forth

Verfasst: Fr 31. Mai 2013, 07:54
von Didi
Hallo,
Mein Forth-Wörterbuch ist mittlerweilen auf über 200 Stück angestiegen.
Bei der Programmiererei ist mir aufgefallen, dass F-Wörter sehr viele RCALLS erzeugen.
Bei meinen letzten Tests waren es z.B. ca. 400!!!. Das sind 800 Bytes plus die entsprechenden
RET-urns 1600!!!. Das heißt eigendlich, dass man möglichst viele Forthworte als A-Worte schreiben sollte.
Ich bin gerade dabei eine Belichtungsuhr für die Leiterplattenherstellung zu programmieren. Es enthält u.a.
LCD-Routinen , Drehimpulsgeber-Routinen, Timer-ISR-Routinen. Dabei stößt man natürlich leicht an die Grenzen
des ATtiny2313.
Deshalb meine Frage: Könnte man nicht den Compiler auf den Attiny 4313 (Preis ca. 1€) erweitern? Durch den doppelten Programmspeicher
wären dann auch etwas größere Anwendungen möglich. An der Attiny-Platine würde sich auch nichts ändern.


Fehlnummerrierung bei Variablen

Bei der Verwendung von Variablen ist mir aufgefallen, daß der Interpreter doppelte Variablennummern vergibt. Das passiert, wenn Variable schon im
Wörterbuch vorhanden sind oder wenn man eine neue Variable in ein vorhandenes Programm zwischen zwei vorhandenen Variablen einfügt. Scheinbar wird nicht geprüft, ob Variablennummern schon vergeben sind.

Grüße Didi

Re: Programmgröße bei Mikro-Forth

Verfasst: Sa 1. Jun 2013, 16:08
von Heinrichs
Hallo Didi,

da es das Funktionsprinzip unseres einfachen FORTH-Compilers ist, die Kolon-Wörter mithilfe von CALL-Befehlen zu übersetzen, lassen sich die zahlreichen CALLs bei komplexen Programmen nicht vermeiden. (Das Original-Forth arbeitet kaum anders!)

Unser FORTH-Compiler besitzt keine Größenbegrenzung beim Flash-Speicher; deswegen sollte er auch mit dem Attiny4313 zurechtkommen. Wir haben dies aber nicht getestet!

Allerdings ist unser Uploader/Bootloader nur für den Attiny2313 konzipiert. Wenn man den Attiny4313 einsetzen möchte, muss die von FORTH gelieferte HEX-Datei anders übertragen werden.

Zur Frage der Variablen müssen wir noch einmal in den Quelltext schauen; ist schon eine Weile her, dass der geschrieben wurde! ;)

Viele Grüße

M. u. G. Heinrichs