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)
Kennt Ihr das auch? Nichts ahnend wird man morgens wach, doch plötzlich - gänzlich ohne Vorwarnung - zeigt der Kalender den 24.12. Man hätte durch den Ausverkauf der Schoko-Weihnachtsmänner und Adventskalender zum halben Preis stutzig werden können. Auch der Einzug der ersten Schoko-Osterhasen in die Supermärkte hätte man als Zeichen deuten können, aber wer achtet schon auf solche Nebensächlichkeiten? Wenn man in letzter Sekunde noch etwas aus dem Ärmel zaubern möchte, ist Fantasie gefragt. Mit einem ATmega8, 16MHz Quarz und ein paar Widerständen lässt sich eine kleine Schaltung aufbauen, mit der man eine Video-Grußbotschaft auf dem Fernseher abspielen kann. Sie ist klein genug, um in einer selbstgebastelten Weihnachtskarte Platz zu finden und läuft mit Batterie. Das Projekt nutzt Benedikt's Schaltung und AVR Videogenerator hier aus dem Forum (Beitrag "AVR Videogenerator, 40x25 Zeichen, nur 60% CPU Auslastung !"), welchen ich in meinen EMTI-Compiler (Embedded TINY) integriert habe. Mit ein paar Print-Befehlen kann man komfortabel jede beliebige Grußbotschaft abspielen lassen. Compiler, Dokumentation sowie den Sourcecode zum Projekt gibt es auf proog.de zum Download.
Es gibt eine neue Version des Compilers. Neben einigen Patches wurde der Funktionsumfang erweitert. Neu in Version 0.05: *Diverse Fehlerkorrekturen (siehe Changelog.txt im Download Zip-Archiv). *Neuer Datentyp Boolean *Wahlweise 8 oder 16 Bit Speicherzugriff auf RAM, ROM und EEPROM *Modulo Operator *Min / Max Funktion *MaxIndex / MaxEntries Funktion *True / False Keywords *Die Subroutine / Methode eines Objekts kann als Timerjob definiert werden und wird dann im Hintergrund ausgeführt. Es gibt ein neues Demoprogramm, welches zeigt, wie man die LED-Matrix des Retro Ping Pong Spiels ansteuert (siehe: Beitrag "Ping pong retro gesenkt"). Das Demo Zip-Archiv enthält außerdem ein kleines Tool, um eine Bitmap-Grafik in EMTI Quellcode passend für die LED-Matrix umzuwandeln. Alles weitere findet Ihr auf proog.de
Version 0.06 des EMTI Compilers gibt es jetzt inklusive Sourcecode auf proog.de. Was ist neu: Diverse Fehlerkorrekturen Programmcode bereinigt für erste Veröffentlichung des Sourcecode Zip-Archiv enthält alle Quelltexte, inklusive der Dokumentation Neue Demoprogramme TV-Pong und TV-Scope
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.