1
0
mirror of https://github.com/elua/elua.git synced 2025-01-08 20:56:17 +08:00
elua/doc/pt/overview.html

140 lines
10 KiB
HTML
Raw Normal View History

2009-09-26 17:00:44 +00:00
$$HEADER$$
<a name="whatis" /><h3>O que é eLua ?</h3>
<p><strong>eLua</strong>
significa <strong>Embedded Lua</strong> e o projeto projeto visa trazer a
funcionalidade completa da linguagem de programação <a href="http://www.lua.org">Lua</a> para o mundo
do desenvolvimento de software embedded.</p>
<p>A implementação busca oferecer isto de uma forma
simples, para que não só desenvolvedores experientes mas também iniciantes no mundo embarcado e até
mesmo usuários finais dos sistemas, possam desenvolver e alterar os
programas dos seus produtos.</p>
2009-09-26 17:00:44 +00:00
<p><strong>eLua</strong> não é uma versão reduzida de Lua, muito pelo contrário, ela
oferece os recursos completos da versão desktop de Lua, complementando-a
ainda com características específicas para o uso embedded.
Oferece também a mesma possibilidade de escolha no uso de implementações diferentes
de Lua (ex: Lua Inteiro x Lua Ponto-Flutuante). Muito trabalho foi e ainda será feito no sentido de tornar Lua mais "amigável" no mundo embedded,
2009-09-26 17:00:44 +00:00
como as características já adicionadas que permitem a redução dos requisitos de memória.</p>
<p>Lua é o exemplo perfeito de uma linguagem mínima e, ainda assim, totalmente funcional. Embora geralmente anunciada como uma linguagem de "scripting" (e utilizada
fortemente como tal na indústria de jogos e em tantas outras áreas), Lua é capaz de executar programas como qualquer outra linguagem
tradicional.
Grandes sistemas e aplicações (desktop ou web) hoje, são desenvolvidos utilizando
seu poder e sua performance (ex: Adobe Lightroom, World of Warcraft, ...).
Suas reduzidas necessidades de recursos de hardware, a tornam especialmente adequada para um grande número de famílias de microcontroladores.
2009-09-26 17:00:44 +00:00
A alta portabilidade intrínseca do código Lua original (que é ANSI C e funciona praticamente em todas as plataformas
que se conhece hoje), combinada com a arquitetura do software de <b>eLua</b>, altamente portátil,
permite a migração fácil para uma grande variedade e arquiteturas de
microcontroladores.
As bibliotecas de acesso a periféricos disponibilizadas por <b>eLua</b> também são portáteis por
2009-09-26 17:00:44 +00:00
definição, podendo-se assim executar um mesmo programa em Lua, sem ou com poucas
modificações, em qualquer hardware que "rode" <span style="font-weight: bold;">eLua</span> (o <a href="status.html">status do projeto &amp; roadmap</a>
mostram uma lista sempre crescente de plataformas com suporte à <b>eLua</b>).
2009-09-26 17:00:44 +00:00
<b>eLua</b> herdou o design minimalista e funcional de Lua, mantendo a filosofia bem conhecida do "<b>KISS</b>" - "<i>Keep It Small and Simple</i>", que significa "Mantenha seu código
e sua arquitetura simples e sua complexidade reduzida".</p>
2009-09-26 17:00:44 +00:00
<a name="features"></a><h3>Recursos</h3>
<p><b>eLua</b> permite que você execute Lua diretamente no seu microcontrolador.
2009-09-26 17:00:44 +00:00
Um grande conjunto de módulos complementares já existe para a programação de periféricos <strong>eLua</strong>
e o desenvolvimento de novos tem um crescimento cada vez mais rápido.</p>
<p>Relacionamos a seguir algumas funções que estão prontas ou sendo implementadas:</p>
2009-09-26 17:00:44 +00:00
<ul>
<li>um sistema de configuração do build flexível e um serviço de build
remoto via web</li>
<li>acesso ao interpretador Lua diretamente na sua MCU, através de uma variedade de
protocolos de transportes físicos (RS-232, ethernet, ...)</li>
2009-09-26 17:00:44 +00:00
<li>uma biblioteca de periféricos independentes de plataforma (PIO, UART, PWM, SPI, TMR, ADC, NET,
I2C, CAN ...)</li>
<li>um File System (por enquanto apenas em ROM), fácil de ser portado para diferentes tipos de chips de memória e outros dispositivos de armazenamento</li>
2009-09-26 17:00:44 +00:00
<li>um pequeno Fyle System FAT R/W, para cartões MMC e SD</li>
<li>um shell próprio mínimo (para operações com arquivos, configuração do ambiente e outros recursos)</li>
<li>suporte a redes TCP/IP</li>
<li>um servidor http embedded escrito em Lua</li>
<li>terminal/console via serial ou Ethernet</li>
2009-09-26 17:00:44 +00:00
<li>depuração (diretamente no MCU ou remotamente com o PC)</li>
<li>execução distribuida de código (LuaRPC)</li>
</ul>
<p>Para obter mais informações sobre as funcionalidades (implementadas e previstas) em <strong>eLua</strong> veja a <a href="status.html">página de status</a>.</p>
<p>O projeto foi concebido de forma que migrar <strong>eLua</strong> para uma outra plataforma
2009-09-26 17:00:44 +00:00
ou mesmo arquitetura, seja algo fácil de ser realizado.
Atualmente, esta migração está restrita às plataformas para as quais gcc + newlib
ou toolchains completos (ex:CodeSourcery) estejam disponíveis.
Esta restrição irá desaparecer em um futuro próximo, já que <b>eLua</b> terá sua própria libc e portanto
2009-09-26 17:00:44 +00:00
estará disponível em um leque mais amplo de MCUs.</p>
<p>Assim como para os ambientes Desktop, Lua em <strong>eLua</strong> está disponível em duas implementações: "Lua padrão" (usando ponto flutuante) e "Lua inteiro" (usando inteiro).
2009-09-26 17:00:44 +00:00
"Lua padrão" realiza operações de ponto flutuante (mais lentas devido a emulação via software no MCU),
enquanto "Lua inteiro" realiza operações com números inteiros
(suporte para ponto fixo e ponto flutuante podem ser adicionados em módulos separados) e assim será mais rápido.</p>
<a name="audience"></a><h3>Público Alvo</h3>
<p><span style="font-weight: bold;">eLua</span> tem uma audiência ampla e
variada, desde recém-chegados ao mundo embedded que desejam um fácil e poderoso ambiente para prototipação,
desenvolvimento e produção rápida de aplicações, como desenvolvedores altamente
qualificados, que precisam expandir seus programas com recursos de
bibliotecas de alto nível com muita portabilidade.</p>
<p><span style="font-weight: bold;">eLua</span> permite que programadores
com pouca experiência no mundo embedded utilizem a simplicidade
e o poder da linguagem de programação Lua, sem precisarem se preocupar com as complexidades e
da arquitetura do hardware em uso.
Utilizando <b>eLua</b>, o programador pode concentrar-se na implementação do seu programa,
sem ter que se preocupar com detalhes de acessos à registros, configuração de periféricos e mesmo gerenciamento de memória.
2009-09-26 17:00:44 +00:00
Com isso, aumentamos a produtividade e eliminamos tarefas muitas vezes frustrantes de lidar com drivers
complexos de plataformas específicas. <stront>eLua</strong> absorve a
complexidade das diversas arquiteturas, sem afastar demais o usuário do hardware.</p>
2009-09-26 17:00:44 +00:00
<p>A lista abaixo resume o público-alvo de <b>eLua</b>:</p>
<ul>
<li>Desenvolvedores de sistemas embarcados que estão procurando uma maneira rápida, fácil de usar e uma poderosa forma de codificação.</li>
<li>Novos programadores de sistemas embarcados (ou simplesmente programadores) que estão procurando uma maneira fácil de "mergulhar" no mundo da programação
embedded. <b>eLua</b> é uma grande ferramenta de aprendizagem.</li>
<li>Pessoas que não são realmente os desenvolvedores, mas ainda assim querem ser capazes de projetar
e prototipar sistemas embarcados de forma rápida e sem muita dor-de-cabeça, sem ter para isso que aprenderem a linguagem C.
2009-09-26 17:00:44 +00:00
(Designers, artistas, ...)</li>
<li>Desenvolvedores de sistemas embarcados que necessitam de mecanismos poderosos de meta-linguagem, para codificar algoritmos complexos e descrição de dados.</li>
<li>Engenheiros de campo que podem ir aos seus clientes realizar depuração de módulos de <b>eLua</b> no local
ou mesmo remotamente, sem para isso necessitar de preparação, já que todo o ambiente de desenvolvimento reside em um chip.</li>
2009-09-26 17:00:44 +00:00
</ul>
<a name="authors" /><h3>Autores</h3>
<p><strong>eLua</strong> é um projeto conjunto de <strong><a href="#contacts">Bogdan Marinescu</a></strong>, um desenvolvedor de software de Bucarest,
na Romênia e <strong><a href="#contacts">Dado Sutter</a></strong>, que
dirige o Laboratório LED Lab na <a href="http://www.puc-rio.br/">Pontifícia Universidade Católica, PUC-Rio</a>, no Rio de
Janeiro, Brasil.</p>
<p>Suas origens vêm dos projetos <a
href="http://www.circuitcellar.com/renesas2005m16c/winners/1685.htm">ReVaLuaTe</a>,
também desenvolvido pelo Bogdan Marinescu (como participante do concurso Renesas M16C Design de 2005) e do Projeto Volta,
desenvolvido por Dado Sutter na PUC-Rio entre 2005 e 2007.</p>
<p><strong>eLua</strong> é um projeto Open Source e uma lista crescente de colaboradores pode ser encontrada na nossa <a
href="en_comunity.html#credits">página de créditos</a></p>
<br />
<table style="width: 578px; height: 256px; text-align: left; margin-left: auto; margin-right: auto;" border="1" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="text-align: center; font-family: Verdana; font-weight: bold;"><big>Projeto ReVaLuaTe</big></td>
<td style="text-align: center; font-family: Verdana; font-weight: bold;"><big>Projeto Volta</big></td>
</tr>
<tr>
<td style="text-align: center;"><img style="width: 278px; height: 188px;" alt="ReVaLuaTe project picture" src="images/terminalreneseas.jpg" /></td>
<td style="text-align: center;"><img style="width: 278px; height: 209px;" alt="Volta project picture" src="images/volta-small.jpg" /></td>
</tr>
</tbody>
</table>
<br />
<br />
<br />
<a name="contacts" /><h3>Contatos</h3>
<p>Os autores de <strong>eLua</strong> podem ser contactados em:</p><p><strong>Bogdan Marinescu:</strong> bogdan.marinescu -at- gmail.com</p>
<p><strong>Dado Sutter:</strong> dadosutter -at- gmail.com</p>
<p>Sejam bem-vindos e compartilhem suas dúvidas e sugestões em nossa <a href="comunity.html#lists">Lista de Discussão</a></p>
<br />
<br />
<a name="license" /><h3>Licença</h3>
<p><strong>eLua</strong> é Open Source e é distribuída gratuitamente sob a licença MIT.</p>
<p>A licença MIT, diferentemente de outras licenças de código aberto (ex:
GPL), permite que produtos de código proprietário sejam desenvolvidos
utilizando <b>eLua</b>.</p>
<p>O código Lua (com todas as mudanças específicas de <strong>eLua</strong>) está incluído na árvore de origem e
é, naturalmente, licenciado sob a mesma <a href="http://en.wikipedia.org/wiki/MIT_License">licença MIT de Lua.</a></p>
<p>Há ainda outros (poucos) componentes com diferentes licenças hoje, em uso no código de <strong>eLua</strong>.
Consulte o arquivo <strong>COPYING</strong> na distribuição fonte para maiores detalhes.</p>
$$FOOTER$$