1
0
mirror of https://github.com/elua/elua.git synced 2025-01-08 20:56:17 +08:00
elua/doc/en/overview.txt
2011-02-02 17:52:12 +00:00

212 lines
8.8 KiB
Plaintext

// $$HEADER$$
[[overview]]
What is eLua?
-------------
eLua stands for *Embedded Lua* and the project aims to offer the full
implementation of the http://www.lua.org[Lua Programming Language] to
the embedded world, extending it with
specific features for efficient and portable software embedded development.
[[features]]
General Features
----------------
*eLua* allows you to develop and run Lua programs on a wide variety of microcontrollers.
Some aspects of eLua are:
* *Transforms hardware in commodity:* Design and code your products for
eLua and make them as hardware-independent as possible. Upgrade or
completely change your hardware in the future and save time and money,
using the approved source code with little or no modifications.
* *Source code portability:* Like in Lua, you program in C, Lua or a
mixture of both and your program runs in a wide varied of (sometimes
radically different) platforms and architectures supported.
Full control of the platform.: eLua runs on the "bare-metal". There
is no Operating System between your programs and the microcontroller.
Develop on targets: fully functional Lua and a dedicated shell on the
microcontroller itself. No need to install a specific development
environment on the PC side, other than a serial or ehternet
console/terminal emulator. You can also use any text editor, save your
programs in sd/mmc and other media and use them directly in your
platforms.
* *Flexible products:* Add modern high level script-language capabilities
to your projects, resulting in highly adaptable, field-programable and
reconfigurable designs. Efficient (and cheap!) future evolution to
your systems.
* *Learn embedded:* Simple interactive and interpreted experimenting
cycle. Use your desktop programming skills to become an embedded
systems developer in no time and with a lot of fun.
* *Embedded RAD:* Prototype and experiment on a Rapid Aplication Develop
model. Test your ideas directly on the target platforms and cheap
development kits. No need for simulators or future code adaptations.
* *Ready to use kits:* A big (and growing!) number of Open Source hardware
and commercially available platforms supported. Prototype cheap and
fast and design your final hardware later using the produced code.
* *Longevity:* Add user configuration and scripting capabilities to your
projects, making them adaptable to the always changing contexts of
industrial processes, evolving engineering, automation standards,
field optimizations etc...
* *Worry-free Licence:* eLua is free and open-source software and we
promote it as much as we can. But our MIT licence (the same as Lua's)
allows you to use eLua in your commercial and private-code products as
well. Nothing to ask, no royalties to pay, just tell the world you're
using eLua.
For more information about the functionality (implemented and planned)
in eLua check link:status.html[our status page].
[[audience]]
Audience
--------
*eLua* 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 that want to extend their programs with the high-level
Lua libraries and portable features.
*eLua* 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 eLua, 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.
The list below summarizes eLua's target audience:
* Embedded developers that are looking for a fast, easy to use and
powerful way of coding.
* First-time embedded programmers (or simply first time programmers)
who are looking for an easy way to "dive" into the embedded
programming world. eLua is a great learning tool.
* People that aren't really developers, but still want to be able to
prototype an embedded system fast and painless, without having to
learn C for that. Embedded developers who need powerful
meta-language mechanisms for complex code algorithms and data
description.
* Field engineers that can go to their customer site and debug an eLua
module on site, without any preparation at all, since the whole
development environment resides on chip already.
* Final clients and decision makers, who benefits from the fact that
eLua portability transforms hardware into comodities. In systems
using eLua, replacing field sensor and actuator controllers by
diferent models, brands and architectures have no impact on the main
application software.
Current Status
--------------
The project is very active and the worldwide distributed collaboration has
been growing steadly. Manufacturers, user's companies and other organizations
are also starting to collaborate and support the project.
The current official version is *eLua v0.8* and we have released 9 versions
since the project was published.
Supported platforms and features include a wide range of microcontroller
families and architectures. A list of currently supported platforms,
peripherals and features can be seen in our link:status.html[Status page]
[[authors]]
Authors
-------
eLua is a joint project of link:overview.html#contacts[Bogdan Marinescu], a
software developer from Bucharest, Romania and
link:overview.html#contacts[Dado Sutter], head of the Led Lab at PUC-Rio
University, in Rio de Janeiro, Brazil.
Its origins come from the
http://www.circuitcellar.com/renesas2005m16c/winners/1685.htm[ReVaLuaTe]
project, also developed by Bogdan Marinescu (as a contest entry for
the 2005 Renesas M16C Design Contest), and the Volta Project, managed
by Dado Sutter at PUC-Rio from 2005 to 2007.
eLua is developed in an fully open, distributed and colaborative
model. An always growing list of collaborators from all over the
planet can be found in our link:comunity.html#credits[Credits Page].
[width="70%", align="center", cols="^,^", options="header"]
|====================================================================================================================
| *ReVaLuaTe Project* | *Volta Project*
| image:images/terminalreneseas.jpg[ReVaLuaTe project picture] | image:images/volta-small.jpg[Volta project picture]
|====================================================================================================================
[[contacts]]
Contacts
--------
eLua authors and main developers can be contacted at:
Bogdan Marinescu: bogdan.marinescu -at- gmail -dot- com
Dado Sutter: dadosutter -at- gmail -dot- com
James Snyder: jbsnyder -at- gmail -dot- com
You are also welcomed to share your questions and suggestions on our
link:comunity.html#lists[Mail Discussion List]
[[license]]
License
-------
eLua is Open Source and is freely distributed under the MIT license.
The Lua code (with all the eLua specific changes) is included in the
source tree and is, of course, licensed under the same
http://en.wikipedia.org/wiki/MIT_License[MIT license that Lua uses].
Other (few) components have different licenses. Please see the file
LICENSE in the source distribution for details.
The Lua part of eLua is licensed under the Lua licensing terms, which
you can find at http://www.lua.org/license.html.
The XMODEM code is adapted from the FreeBSD at91 library, which was
written by M. Warner Losh and is released under the BSD license.
The "pack" module is adapted from the "lpack" module by Luiz Henrique
de Figueiredo and it's placed in the public domain.
The "bit" module is adapted from the "bitlib" library by Reuben
Thomas, distributed under a MIT license.
The "integer only lua" is based on the "Go Long Lua!" patch by
John D. Ramsdell (from the Lua Power Patches page) and is placed in
the public domain.
The multiple memory allocator (dlmalloc) is written by Doug Lea and is
placed on the public domain.
The TCP/IP stack is adapted from uIP, written by Adam Dunkels and
released under a BSD license.
The FAT file sistem is based on FatFs, written by
http://elm-chan.org/[Elm Chan]. A copy of the FatFs license can be
found in the LICENSE.fatfs file.
The RPC implementation is based on Russell Smith's
http://q12.org/lua/index.html[Lua-RPC] A copy of the Lua-RPC license
can be found in the LICENSE.luarpc file.
Manufacturer provided CPU support libraries are licensed under their
own terms. Check src/platform/*platform-name* for details of each
license.
https://github.com/antirez/linenoise[linenoise] (eLua's readline replacement)
is released under a BSD license.
The rest of the eLua code is licensed under http://en.wikipedia.org/wiki/MIT_License[MIT].
// $$FOOTER$$