Ich stelle Euch hier mein neues Projekt vor, an dem ich gerade arbeite.
Es ist ein Compiler für Mikrocontroller mit einer an BASIC und Pascal
angelehnten Syntax, der auch Elemente der Sprache C enthält.
Als Vorlage für die ersten Versuche diente das Tutorial "Let's Build a
Compiler" von Jack Crenshaw (Link: http://compilers.iecc.com/crenshaw/).
Der Compiler enthält in Grundzügen noch die im Tutorial beschriebenen
Strukturen.
Derzeit wird der ATmega8 sowie einige weitere AVR-Typen unterstützt.
Der Compiler produziert aus einem Quelltext ein Assembler Programm, das
sich mit AVR-Studio übersetzen lässt. Man kann es dann im Simulator
testen oder in die Zielhardware programmieren.
Status der Entwicklung:
Grundlegende Dinge wie Variablendeklaration, Berechnungen,
Unterprogramme, Portzugriff, Programmschleifen und Verzweigungen
funktionieren.
Einige Dinge wie beispielsweise Stringverarbeitung sind noch
experimentell und nicht vollständig implementiert.
Einige hardwarenahe Dinge sind erstmal nur für den ATmega8 umgesetzt,
beispielsweise die TV-Ausgabe.
Dennoch kann man bereits jetzt einiges damit anfangen, beispielsweise
gibt es Libraries für die Ansteuerung von LCDs (HD44780 kompatibel im 4
Bit Mode) oder für die Textausgabe auf TV/Monitor (Benedikt's AVR
Videogenerator ist integriert, siehe
Beitrag "AVR Videogenerator, 40x25 Zeichen, nur 60% CPU Auslastung !").
Es gibt ein Beispielprojekt, das zeigt, wie man mit wenig
Hardware-Aufwand eine "Video-Grußkarte" aufbauen kann, und wie einfach
die Programmierung ist.
Obwohl der Compiler derzeit noch experimentell und unvollständig ist,
möchte ich Ihn hier vorstellen, in der Hoffnung, dass ihn jemand mal
ausprobiert und mir seine Meinung dazu sagt, insbesondere zu Fehlern,
Problemen oder Verbesserungsvorschläge.
Eine Dokumentation über den Befehlsumfang existiert bereits, jedoch gibt
es momentan nur wenige praktische Beispiele, so dass sich das Projekt
derzeit eher an Leute mit Programmiererfahrung und Assembler-Kenntnissen
richtet. Die Doku ist auch online abrufbar (proog.de, Hauptmenü -> EMTI
Online Hilfe).
Ein kleines Einstiegs-Tutorial ist gerade fertig geworden (siehe
Anlage). Das Tutorial erklärt anhand zahlreicher Abbildungen die ersten
Schritte, über die Installation des AVR-Studios und des EMTI-Compilers
bis hin zum ersten selbsterstellten Programm.
Voraussetzungen:
(*) Windows Betriebssystem
Der EMTI Compiler liegt als ausführbares Windows Programm vor. Eine
Linux-Version soll später folgen.
(*) Assembler Kenntnisse
Der Compiler erzeugt als Ausgabe ein Assemblerprogramm.
Assembler-Kenntnisse und Erfahrung im Umgang mit AVR-Studio sind von
Vorteil.
Lizenz / Quelltext:
Es ist geplant, den Compiler einschließlich Quelltext unter GPL-Lizenz
freizugeben, sobald er eine Mindestqualität erreicht hat. Derzeit gibt
es nur das ausführbare Programm als "Preview" zum Download über die
Homepage (proog.de).
Sven K. (oog)