Lua ist eine imperative und erweiterbare Skriptsprache zum Einbinden in Programme, um diese leichter weiterentwickeln und warten zu können. Eine der besonderen Eigenschaften von Lua ist die geringe Größe des kompilierten Skript-Interpreters (Wikipedia).
Lua V.5.1.4 kann von lua.org heruntergeladen werden.
Im Dezember 2011 wurde die Lua Version 5.2 freigegeben. Die Version 5.2 unterscheidet sich von der 5.1.4 vor allem hinsichtlich Erweiterungen bei der Garbadge Collection und bei Bitoperationen. Ausserdem ist ein goto Statement hinzu gekommen. Wir betrachten hier (vorerst) Lua weiterhin in der Version 5.1.4, da die heute verfügbare Literatur zu Lua und entsprechende Programmbeispiele sich fast ausnahmslos auf die V.5.1 beziehen.
Download die aktuelle Lua V.5.1.4 durch Eingabe von
wget http://www.lua.org/ftp/lua-5.1.4.tar.gz
Nach erfolgreichem Download ist das TAR File durch Eingabe von tar xvfz lua-5.1.4.tar.gz
auszupacken. Nach dem Wechsel in das neue Verzeichnis durch cd lua-5.1.4
kann das Paket installiert werden. Allerdings bedarf es zusätzlich noch der GNU Readline Library, die vorher installiert werden muss. Für die Installation auf dem FOX Board G20 ist make linux
gefolgt von make install
zu verwenden. Eine erfolgreiche Installation kann mit make test
getestet werden. Das File INSTALL
enthält Hinweise zur Installation von Lua.
tar xvfz lua-5.1.4.tar.gz cd lua-5.1.4 apt-get install libreadline-dev make linux make install make test
Blinken einer LED über das Sysfs Interface (Managing the GPIO lines using the sysfs interface)
io.write("Blinking...\n") function sleep(n) -- sleep n seconds os.execute("sleep " .. tonumber(n)) end function GPIO_init() -- initialize PA26 as output os.execute ("echo 58 > /sys/class/gpio/export") os.execute ("echo out > /sys/class/gpio/gpio58/direction") end function GPIO_kill() -- free PA24 os.execute ("echo 58 > /sys/class/gpio/unexport") end function GPIO_Hi() -- switch PA24 to Hi os.execute ("echo 1 > /sys/class/gpio/gpio58/value") end function GPIO_Lo() -- switch PA24 to Lo os.execute ("echo 0 > /sys/class/gpio/gpio58/value") end GPIO_init() for i = 1,10 do GPIO_Hi() sleep(1) GPIO_Lo() sleep(1) io.write(".") -- print "." to console io.flush() end GPIO_kill() io.write("\nEnd.\n") os.exit(1)
Weitere Programmbeispiele sind auf SourceForge zu finden.