aims to offer the full set of features of the <ahref="http://www.lua.org">Lua Programming Language</a> to the embedded world. </p><p><spanstyle="font-weight: bold;">eLua</span>
is not a stripped down set fo Lua; much on the contrary, it strives to offer the same features as the desktop version of Lua, but introducing specific features for embedded use.
Besides offering different flavors of the full Lua implementation
(like the possiblity of choosing between an integer-only and a floating point implementation),
a lot of work was (and will be) done in the direction of making Lua more "embedded-friendly" by augmenting the core language with features that allow lower memory requirements.</p>
families. The intrinsic high portability of the original Lua code (which is ANSI C and runs virtually on every platform for which an ANSI C compiler is available) combined with the highly portable software architecture of <b>eLua</b> allow for easy porting of the project to a large variety or architectures. The peripheral access libraries exported by <b>eLua</b> are also portable by design, so one could run a Lua program (without or with very few modifications) on every <spanstyle="font-weight: bold;">eLua</span> supported platform (the <ahref="status.html">project roadmap</a> shows a constantly growing list of platforms on which <b>eLua</b> is supported). <b>eLua</b> inherits the minimalistic and functional design of Lua, staying in line with the well known <b>KISS</b> (<i>Keep It Small and Simple</i>) philosophy.</p>
<p>The aim of the project is to have a fully functional Lua development
without the need to install a specific development environment on the PC side. This includes the ability to both edit and debug programs directly on target.
microcontroller) will be usable with a variety of input/output devices.</p>
<p>We can't end this short presentation without presenting our project motto: no matter what you do with <b>eLua</b>, always remember to have fun with it :)</p>
<aname="features"></a><h3>Features</h3>
<p>As already stated, <b>eLua</b> allows you to run Lua completely on
the
target microcontroller. A fast-growing set of complementary modules is also
provided, for Lua programming eLua's generic (portable) peripherals. </p>
<p>The following important features are ready or being implemented:</p>
<ul>
<li>access to the Lua interpreter on the target MCU via a variety of physical transports (RS-232 being the most popular).</li>
<li>debugging (directly on the MCU or remotely with the PC).
</ul></p>
<p>For more information about the functionality (implemented and planned) in eLua check <ahref="status.html">the status page</a>.</p>
<p>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 restriction will disappeaer in the near future, as <b>eLua</b> will have its own libc and thus it will be available on a much
broader range of MCUs.</p>
<p>The Lua implementation comes in two flavors: "regular Lua"
(using
floating point as the number type) and "integer Lua" (using integers).
"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.</p>
<aname="audience"></a><h3>Audience</h3>
<p><spanstyle="font-weight: bold;">eLua</span> has a wide and varied audience, starting from newcomers to the embedded world who want an
easy and powerful environment for prototyping, rapid application
development and quick production, and ranging towards highly skilled developers
allows embedded-oriented programmers to use the simplicity and
power of the Lua programming language and to hide the low-level
complexities and platform/architecture-dependent features. With <b>eLua</b>, the programmer can focus on the actual implementation of his program, without having to worry about accessing the low-level peripheral configuration and data registers, as the platform libraries already take care of this. This increases productivity and eliminates the often frustrating task of dealing with platform-specific drivers. </p>
<p>The list below summarizes <b>eLua</b>'s target audience:<br><ul><li>Embedded developers that are looking for a fast, easy to use and powerful way of coding.</li><li>First-time
<p><strong>Dado Sutter:</strong> dadosutter at gmail dot com</p><p>You are also welcomed to share your questions and suggestions on our <ahref="comunity.html#lists">Mail Discussion List</a></p>
<p>The Lua code (with all the <b>eLua</b> specific changes) is included in the source tree and is, of course, licensed under the same MIT license that Lua uses.</p>
<p>There are other components with different licenses in <b>eLua</b>, see the file <b>COPYING</b> in the source distribution for details.</p>