首页 > 代码库 > 学习elua(一)

学习elua(一)

本文主要介绍elua的背景知识,分为三部分

先介绍lua语言,之后介绍lua的应用,从而引导出elua,最后介绍elua的硬件平台

什么是lua

Lua 是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。

Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,Ini等文件格式,并且更容易理解和维护。

Lua由标准C编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行。

一个完整的Lua解释器不过200k,在目前所有脚本引擎中,Lua的速度是最快的。这一切都决定了Lua是作为嵌入式脚本的最佳选择。

http://www.oschina.net/p/lua

Lua简明教程 http://coolshell.cn/articles/10739.html

Lua Tutorial http://lua-users.org/wiki/LuaTutorial

lua的应用

  • Adobe Photoshop Lightroom uses Lua for its user interface.
  • Cisco uses Lua to implement Dynamic Access Policies within theAdaptive Security Appliance.
  • Codea 为ios平台下的游戏开发程序。
  • 作为游戏的脚本语言
    • 暴雪 魔兽世界
    • UBI 孤岛惊魂
    • 网易 大话系列
    • 完美 神鬼传奇
    • 金山 剑网3
    • 巨人 征途
    • minecraft 中的mod
  • web 应用:LUCI & openwrt。OpenWrt是适合于嵌入式设备的一个Linux发行版,现在大多数智能路由器内运行的是openwrt操作系统。LuCI是OpenWrt上的Web管理界面,LuCI采用了MVC三层架构,同时其使用Lua脚本开发。

http://luci.subsignal.org/

https://openwrt.org/

  • 在嵌入式领域:eLua stands for Embedded Lua and theproject offers the full implementation of the Lua Programming Language to theembedded world, extending it with specific features for efficient and portablesoftware embedded development.

http://www.eluaproject.net/overview


eLua的部分特性:

可控制整个平台:因为没有OS,所以可以使用Lua语言实现整个平台的控制;

源码可移植:可轻松将你的代码移植到其他架构和平台上;

只需要通过终端或者串口将你的PC和目标板连接起来,开发时PC端不需要安装额外的开发环境;

高度灵活性的产品:让你的产品可以利用现代的脚本语言,实现高适应性、可编程和重新配置。

eLua不是什么?

eLua不是OS;

eLua不是去除Lua的一些东西以适应嵌入式平台,eLua拥有Lua桌面版的全部功能和特性。eLua不是针对特定平台开发的;

eLua不是OS或者RTOS或者特定处理器的一个应用程序,而是自包含的,支持一系列处理器架构;

eLua是开源软件,基于MIT Liscence,因此你可以在商业产品上使用eLua

引自http://blog.csdn.net/tcpipstack/article/details/8259179

elua的硬件平台

CPU

Architecture

Platform name

Supported boards

Status

LM3S8962

Cortex-M3

LM3S

EK-LM3S8962

 

LM3S6965

Cortex-M3

LM3S

EK-LM3S6965

 

LM3S6918

Cortex-M3

LM3S

Eagle 100

 

LM3S9B92

Cortex-M3

LM3S

EK-LM3S9B92

 

LM3S9D92

Cortex-M3

LM3S

EK-LM3S9D92

 

LM3S1968

Cortex-M3

LM3S

EK-LM3S1968

 

AT32UC3A0512

AVR32

AVR32

ATEVK1100

 

AT32UC3B0256

AVR32

AVR32

ATEVK1101

 

AT32UC3A0512

AVR32

AVR32

Mizar32

 

AT91SAM7X256

ARM7TDMI

AT91SAM7X

SAM7-EX256

 

AT91SAM7X512

ARM7TDMI

AT91SAM7X

None

 

LPC1768

Cortex-M3

LPC17xx

mbed

 

LPC2468

ARM7TDMI

LPC24xx

PUC-Rio Demo

 

LPC2888

ARM7TDMI

LPC288x

LPC-H2888

 

STR711FR2

ARM7TDMI

STR7

MOD711

 

STR912FAW44

ARM966E-S

STR9

STR9-comStick

 

STR912FAW44

ARM966E-S

STR9

STR-E912

 

STM32F103ZE

Cortex-M3

STM32

STM3210E-EVAL

 

STM32F103RE

Cortex-M3

STM32

ET-STM32 Stamp

 

i386

x86

i386

PCs/emulators

 

 

http://www.eluaproject.net/overview/status

这个部分所介绍的并不完全,在elua的源代码中可以看到支持的更多的平台。例如:我们将采用的stm32F4discovery

采用这个平台的理由是这个开发板价格便宜90元左右,而且很容易买到,性能强大,featuring a 168Mhz ARM Cortex M4 (STM32F407VGT6) The ARM is programmed via an STLINK/V2 interface connected to a PC‘s USB port. 1M flash 192 KBRAM.

http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF252419?sc=internet/evalboard/product/252419.jsp


不过,我买的一个玩了一周,micro usb就松了,而且usb的数据线断掉了。。。



下一节,我们完整讲解在ubuntu 的环境下交叉编译elua,并烧写与stm32f4discovery平台之上



学习elua(一)