Flexibilität durch Basic-Skripte und virtuelle Maschinen auf dem Mikrocontroller

Listing
Wir bieten eine Erweiterung Ihrer Mikrocontroller-Anwendungen um die Möglichkeiten einer Skript-Sprache (BASIC). Dabei kann die eigene Anwendung durch definierte Funktionen mit der Skriptsprache verbunden werden.

Dies ermöglicht uns, Ihre Produkte flexibler zu gestalten:

  • Dynamische Konfiguration der Anwendung: benötigte Parameter werden einfach in ein Skript geschrieben, und damit wird die Anwendung konfiguriert (Ersatz für Konfigurationsdateien wie z.B. INI-Dateien).
  • Skript-gesteuerte Anwendungen, die damit in weiten Teilen dynamisch von außen auf neue Abläufe einstellbar sind.

Die Umsetzung erfolgt in zwei Schritten:

  1. Übersetzung des BASIC-Scripts in einen Bytecode.
  2. Ausführung des Bytecodes in einer virtuellen Maschine.

Vorteile der Teilung

  • Das Übersetzen in den Bytecode muß nicht auf demselben Mikrocontroller stattfinden wie dessen Abarbeitung. Stattdessen kann das Übersetzen auf einem anderen Controller oder auf dem PC stattfinden.
  • Wenn die Übersetzung stattgefunden hat, ist der resultierende Bytecode schnell ausführbar. Die virtuelle Maschine alleine ist klein genug, um auch auf einfacheren 8-Bit-Controllern eingesetzt zu werden.

Wo ist der Compiler?

  • Auf dem PC wird das BASIC-Skript geschrieben, dann übersetzt und der Bytecode über eine beliebige Schnittstelle auf den Controller gebracht. Dazu existiert der Compiler als eigenständiges Tool.
  • Die zu erfüllende gesamte Aufgabe wird von einem Host (PC oder anderer Controller) und dem Controller mit der virtuellen Maschine in Zusammenarbeit geleistet. Auf dem Host läuft der Compiler, erstellt kurze BASIC-Skripte, die übersetzt und dann als Bytecode an den Controller zur Ausführung verschickt werden.
  • Der Compiler kann auf größeren Controllern direkt eingesetzt werden, wodurch der Controller BASIC-Skripte direkt versteht.

BASIC-Compiler

  • Übersetzt BASIC-Programme in den Bytecode.
  • Lauffähig auf größeren 8-Bit-Controllern (z. B. Atmel AtMega128) oder z. B. auf ARM7 / ARM9 oder auf dem PC, entweder eigenständig oder eingebettet in Ihre Software.

Virtuelle Maschine (VM)

  • Stackorientierte RISC-Maschine. Viele Befehle mit kleinen Operanden werden oft in nur einem Byte kodiert.
  • Je nach Bedarf bildet die VM eine Harvard- oder von-Neumann-Architektur ab.
  • Lauffähig sowohl auf kleinen 8-Bit-Controllern (z. B. Atmel AtMega32) als auch auf großen ARM7-Controllern (z. B. Atmel At91SAM7).
  • Lauffähig sowohl auf Mikrocontrollern mit Harvard-Architektur (z. B. Atmel AVR-Serie, ARM9) als auch auf Mikrocontrollern mit von-Neumann-Architektur (z. B. ARM7).
  • Die VM hat Zugang über definierte Serviceroutinen zu bestimmten Funktionen außerhalb der virtuellen Maschine. Damit kann die VM z. B. andere Programmteile im Controller konfigurieren oder eine Ablaufsteuerung übernehmen.
  • Zu Debugzwecken kann die VM auf dem PC ausgeführt werden.
  • Zu Debugzwecken kann eine spezielle VM auf dem Controller mit Breakpoints versehen und somit vom PC aus getestet werden.

Unsere Virtuelle Maschine und unser BASIC-Compiler sind sowohl auf einer Vielzahl von Mikrocontrollern, z. B. Atmel AVR (8 Bit) und ARM (32 Bit), als auch auf dem PC einsetzbar und lauffähig mit GCC.