AVR BASIC

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Diese Seite befindet sich im Aufbau und bietet derzeit deshalb noch keinen vollständigen Überblick über das Projekt!

Motivation

Welcher Mikrocontroller-Programmierer kennt das Problem nicht: man hat eine schicke Firmware auf den MC gebrannt, braucht schnell eine neue (einfache) Funktionalität und will/kann nicht gleich an den C-Code der Firmware ran. Was liegt also näher, Funktionen beliebig "nachladen" und ausführen zu lassen? Dieses Ansinnen mit Binär-Code-Fragmenten zu machen, dürfte ein schwieriges, wenn nicht sogar unmögliches Unterfangen sein. Und man ist wieder von einem Kompiler abhängig. Script-Sprachen sind da viel besser geeignet, da sie verständlicher und leichter zu programmieren sind. Voraussetzung ist dabei natürlich, dass ein entsprechender Script-Interpreter auf der Zielplattform verfügbar ist.

Jetzt könnte man natürlich einen eigenen und u.U. speziell für Mikrocontroller designden Sprachsyntax entwickeln und implementieren (Bsp. ECMDSript bei ethersex). Viel sinnvoller erscheint es aber, wenn man auf alt bewährte und bekannte Dinge zurückgreift: jeder (alte) Programmierer hat mal mit Basic angefangen oder zumindestens davon gehört! Der Zufall wollte es, dass Adam Dunkle ein C-Gerüst für einen kleinen und ressourcenschonenden TinyBasic-Interpreter (uBasic) veröffentlicht hat. Mit minimalen Modifikationen ist das Ding auch auf einem AVR sofort lauffähig und beeindruckt durch den geringen Ressourcen-Verbrauch.

Ziel ist es, einen universellen Basic-Interpreter zu haben, der in andere, in C geschriebene AVR-Programme einfach eingebunden werden kann. Die Basic-Programme sollen dann über vorhandene Schnittstellen (seriell, Ethernet o.ä.) geladen werden oder sind auf einem externen Speichermedium (SD-Card, Dataflash o.ä.) verfügbar und einlesbar.

Es gibt noch einige andere Projekte, die Basic-Interpreter für AVR-Hardware zur Verfügung stellen, aber sich von dem hier vorgestellten Projekt dahingehend abgrenzen, da sie quasi einen eigenständigen Basic-Computer (vergleichbar mit dem Home-Computern der späten 80er Jahre) darstellen:

Auf Adam Dunkles Urversion aufsetzend, entstand AVR-uBasic, welches mittlerweile in mehreren Versionen von unterschiedlichen Entwicklern gibt. Diese differierenden Versionen sind dabei den jeweils etwas anderen Zielvorstellungen der Entwickler geschuldet. Im Forum findet man dazu auch einige Diskussionsbeiträge:

In der Folge sollen hier diese unterschiedlichen Versionen mit ihren Zielen, Eigenheiten und Entwicklungsstand vorgestellt werden.

Version von Uwe Berger

Version von René Böllhoff

Quellcode

Der Quellcode der einzelnen Entwicklerversionen wird demnächst im SVN von mikrocontroller.net zu finden sein. Bis dahin ist die Version von Uwe Berger auf seiner eigenständigen Projektseite auffindbar. Die Version von René Böllhoff ist momentan im bereits oben erwähnten Thread zu finden.