移植 Lua 到嵌入式平台 OMAPL138

2021-09-18 07:50:43 字數 1814 閱讀 3266

lua 是十分小巧精簡的,編譯安裝也是很簡單。

先來看下在 x86 ubuntu 上的編譯安裝:

curl -r -o 

sudo apt-get install libreadline-dev

tar xf lua-5.3.5.tar.gz && cd lua-5.3.5

make linux test

sudo make install

整個過程大約不到 2 分鐘就完成了。

然後我們基於廣州創龍的 tl138-evm 開發板說明移植過程,也是相當簡單的。

curl -r -o 

tar xf lua-5.3.5.tar.gz && cd lua-5.3.5

2、在 src/luaconf.h 去掉 readline 依賴。開啟檔案找到以下位置並注釋對應行。

#if defined(lua_use_linux)

#define lua_use_posix

#define lua_use_dlopen /* needs an extra library: -ldl */

//#define lua_use_readline /* needs some extra libraries */

#endif

3、開啟 src/makefile 配置交叉編譯環境。更新以下 cc、libs、ar、ranlib 變數以及 linux 規則。

#cc= gcc -std=gnu99

cc= arm-arago-linux-gnueabi-gcc -std=gnu99

cflags= -o2 -wall -wextra -dlua_compat_5_2 $(syscflags) $(mycflags)

ldflags= $(sysldflags) $(myldflags)

#libs= -lm $(syslibs) $(mylibs)

libs= -lm $(syslibs) $(mylibs) -static

#ar= ar rcu

#ranlib= ranlib

ar= arm-arago-linux-gnueabi-ar rcu

ranlib= arm-arago-linux-gnueabi-ranlib

linux:

$(make) $(all) syscflags="-dlua_use_linux" syslibs="-wl,-e -ldl"

#$(make) $(all) syscflags="-dlua_use_linux" syslibs="-wl,-e -ldl -lreadline"

4、source omapl138 的 mcsdk 開發環境並執行編譯。

source /home/jack/omapl138/ti/mcsdk_1_01_00_02/linux-devkit/environment-setup

make linux

5、strip 生成的 lua 虛擬機器並放到開發板上使用。

arm-arago-linux-gnueabi-strip src/lua
這個操作可以把 lua 檔案從 45+mb 降到 1mb 。

建立乙個內容為 print(「hello world!」) 的 hello.lua 檔案,執行以下命令即可看到執行效果。

./lua hello.lua
至此,移植完成!

參考:2019-4-16 - 廖傑良

ubuntu移植到嵌入式平台

ubuntu乙個以桌面應用為主的開源gnu linux作業系統。ubuntu 用在pc的intel框架,我們比較熟悉,ubuntu 在arm平台下執行,可能比較陌生。以下我們介紹ubuntu 14.04 到dlt rk3288 arm平台上。使用到的硬體平台 dlt rk3288 補充說明 雖然dl...

嵌入式平台移植 libiconv 庫

解壓 tar xvzf libiconv 1.10.tar.gz 編譯前配置 configure prefix root libiconv 1.10 cc arm linux gnueabihf gcc host arm linux enable shared enable static 注 pre...

libcurl移植到嵌入式ARM

curl 庫的主要功能是用不同的協議連線不同的伺服器,也就是相當封裝了的 socket 的協議庫,libcurl 當前支援 等常用協議,libcurl 也支援https 證書授權,是網路程式開發的一把利器。unzip curl curl 7 50 0.zip 也可以把目錄名字修改為libcurl m...