Daniel Zwirner

Lua: Einsatz von Lua in Embedded Systems

Nicht erst nach Stuxnet, Duqu und Flame oder aus World of Warcraft bekannt

ISBN 978-3-907857-15-1, 188 Seiten, Paperback, € 19,80, Lua (portugiesisch für Mond) ist eine Skriptsprache zum Einbinden in Programme, um diese leichter weiterentwickeln und warten zu können. Eine der besonderen Eigenschaften von Lua ist die geringe Grösse des kompilierten Skript-Interpreters. Lua Programme werden vor der Ausführung in Bytecode übersetzt.

Obwohl man mit Lua auch eigenständige Programme schreiben kann, ist Lua vorrangig als Skriptsprache von C-Programmen konzipiert. Der Lua Interpreter kann über eine C-Bibliothek angesprochen werden, die auch ein API für die Laufzeitumgebung des Interpreters für Aufrufe vom C-Programm aus beinhaltet. Mittels des API können verschiedene Teile des Programms in C und Lua geschrieben werden, während Variablen und Funktionen in beiden Richtungen erreichbar bleiben (d.h. eine Funktion in Lua kann eine Funktion in C aufrufen und umgekehrt). Lua ist in ANSI-C implementiert und unterstützt sowohl funktionale als auch objektorientierte Programmierung.

Da der Lua Interpreter extrem schnell und hochgradig portabel ist und sich leicht in C-Programme einbetten lässt, ist er gerade für Embedded Systems eine attraktive Alternative zu anderen Skript Interpretern. Obwohl er nur wenige Kilobyte umfasst, passt noch eine vollständige Garbage Collection hinein, die anfallenden Datenmüll automatisch aus dem Speicher wirft.

Mit dieser Broschüre wollen die Autoren anhand ihrer Erfahrungen die Leistungsmerkmale von Lua verdeutlichen und die Erweiterungsfähigkeit mit mehreren Beispielen demonstrieren.

Im ersten Beispiel wird der Lua Interpreter auf einem PC mit einer DLL erweitert, die die Ansteuerung eines über USB angeschlossenen AD-DA-Subsystems ermöglicht.

Im einem zweiten Beispiel wird Lua in eine Anwendung auf einem Embedded DOS System auf Basis eines Intel386™ EX Prozessors mit ROM-DOS (kompatibel zu MS-DOS 6.22) eingebettet und gezeigt, dass Lua auch in Systemen mit knappen Ressourcen eingesetzt werden kann.

Im dritten Beispiel wird die DOS-Applikation durch eine Linux-Anwendung ersetzt, bei der das kompakte FOX Board G20, ein Linux Embedded Single Board Computer auf der Basis eines Atmel AT91SAM9G20 Mikrocontrollers, zum Einsatz kommt.

Den Abschluss der Anwendungsbeispiele bildet mit eLua ein für Mikrocontrolleranwendungen angepasstes Lua. Hier kommt ein mbed Mikrocontrollermodul auf Basis eines Cortex-M3 zum Einsatz.

Im letzten Abschnitt werden mit SWIG und ToLua Tools vorgestellt, die unter gewissen Voraussetzungen die Verknüpfung von Lua und C/C++ vereinfachen können.

Alle Quelltexte sind unter SourceForge abgelegt. Zum Buch existiert ausserdem eine Webseite.