學習elua(一)

來源:互聯網
上載者:User

標籤:stm32f4   elua   lua   嵌入式   

本文主要介紹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(一)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.