As already stated, eLua allows you to run Lua completely on the microcontroller. A fast-growing set of complementary modules is also provided, with Lua code for using eLua generic peripherals.
The following modules are ready or being implemented:
- a (mostly) platform independent peripheral library (I/O, UART, SPI, I2C...)
- a very low footprint embedded flash file system, easy to port to different types of memory chips and other storage devices
- a small FAT FS layer for SD cards.
- an editor (to edit Lua programs directly via a serial connection or other input devices)
- a minimal "shell" (for file operations, configuration and others)
- network support
Porting eLua to another compatible platform should be as easy and painless as possible. Currently this is restricted to platforms for which the gcc+newlib combo is available. This might change in the future, but please not that this is not a priority of the project at this point.
Also, the Lua "core" comes in two flavors: "regular Lua" (using floating point as the number type) and "integer Lua" (using "integers" as the number type). We'll add more about this in a future tutorial about Lua. For now, it's enough to say that "regular Lua" will be able to perform floating point operations (but will be slower because the floating point operations will be emulated in software on the MCU), while "integer Lua" will only be able to perform operations with integer numbers (but support for fixed and even floating point can be added with separate modules) and thus will be faster.
Status of ports
You can see below the status of eLua implementation by platform/module.
Symbol list
Symbol | ||||
---|---|---|---|---|
Meaning | Implemented and tested | Implemented, not tested | Not yet implemented | Not applicable |
eLua ports status
Module | PIO | SPI | UART | TMR | PWM | NET | CPU |
---|---|---|---|---|---|---|---|
MCU | |||||||
LM3S8962 | |||||||
LM3S6965 | |||||||
i386 | |||||||
AT91SAM7X256 | |||||||
AT91SAM7X512 | |||||||
STR912FW44 | |||||||
LPC2888 | |||||||
STR711FR2 | |||||||
AVR32 | Comming soon | ||||||
STM32 | Comming soon |
Status of features / roadmap
You can see below the status of the existent and planned eLua features. These are generic features (not platform dependent, so they should be available on any platform). The list is ordered by feature priority, with all the completed features at the top of the list.
eLua features status
Feature | Status |
---|---|
Lua interpreter running on target | |
Various Lua test scripts running properly | |
Choose floating point or integer Lua | |
Lua PIO module | |
Lua UART module | |
Lua timer module | |
Lua platform data module | |
XMODEM receive | |
Embedded ROM file system | |
Lua SPI module | |
eLua term module | |
eLua shell | Partially implemented and tested |
Lua PWM module | |
Lua I2C module | |
Lua ADC/DAC modules | |
Lua interrupt support | |
Lua bit operations module | |
Lua binary pack/unpack module | |
eLua "memory limiting" mode | |
Networking (LuaSocket or similar) | |
Lua CPU module | |
FAT FS layer | |
Embedded R/W file system | Partially implemented and tested |
Lua FP module (for integer Lua) | |
Embedded text editor | |
Lua debugging on target | |
eLua example programs | Partially implemented and tested |
GUI interface for eLua |