久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 如何將lua移植到arm平臺的linux內核

如何將lua移植到arm平臺的linux內核

作者: 時間:2016-11-09 來源:網絡 收藏
將腳本移植到內核是一件很酷的事情,lua已經被移植到NetBSD的內核中,也有一個叫lunatik的項目把lua移植到了linux內核,只可惜只支持x86,不支持arm,在網上搜索了下,沒有找到現成的,于是自己研究了下,現將它分享出來。

移植到arm平臺,主要是要重新實現setjmp和longjmp兩個函數,網上相關的資料很少,最后終于找到一個klibc的項目,里面有setmp和longjmp的arm平臺的實現,于是直接拿來用了,不用說,當看到腳本在內核中執行并打印出"hello,world"的時候,還是很exciting的。這里講下使用的方法,具體的代碼可以去下面的位置下載:

本文引用地址:http://cqxgywz.com/article/201611/317668.htm

https://github.com/negtise/luak-arm

1、先下載代碼,下載下來后把里面的lunatik目錄放到lib目錄下。

2、配置內核:

2.1修改lib/Kconfig,添加以下的配置

config LUNATIK
tristate "Enable Lunatik Lua Engine"
default y
help
Enables the Lunatik Lua engine which allows execution of Lua code

2.2配置lua,生成ko文件

執行:

make ARCH=arm menuconfig

然后:

config Lunatik to compile as Module
Library routines --->
Enable Lunatik Lua Engine

3、編譯:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- modules SUBDIRS=lib/lunatik

會生成一個luak.ko

4、調試:

執行以下命令:

cat /proc/kmsg &

echo 9 > /proc/sys/kernel/printk

insmod luak.ko

echo "print(hello,world)" > /sys/class/lunak/eval

如果一卻OK,將會輸出:

hello,world

這可是從內核里執行的。

5.如何擴展功能?

可以查看bindings目錄中的代碼。



評論


技術專區

關閉