rt-thread/components/external/lua
zhangjun c9591f825c 增加rt_strnlen,lua采用单独的线程 2016-08-12 22:19:52 +08:00
..
applications 增加rt_strnlen,lua采用单独的线程 2016-08-12 22:19:52 +08:00
exlibs move larduinolib.c into ART's repo, add lua external library example 2012-11-13 07:43:55 +00:00
lua add support of arm standard c library, support using armcc to compile lua 2012-11-22 03:39:22 +00:00
test add lua support for rt-thead 2012-11-10 07:32:39 +00:00
ChangeLog add lua support for rt-thead 2012-11-10 07:32:39 +00:00
README.md Update and rename README.TXT to README.md 2015-11-24 16:19:25 +08:00
SConscript Re-normalizing the repo 2013-01-08 22:40:58 +08:00

README.md

Lua on RT-Thread

简介

RT-Thread中的Lua修改自eLua的Lua-5.1.4版本。 采用gcc工具链时Lua依赖于newlib库采用keil时Lua依赖于arm的标准c库。 启动lua的RAM占用情况 - 标准的lua 17.1904296875 KB - 优化的lua 5.01953125 KB 注数据来自print(collectgarbage('count'))的输出 优化是指采用一个lua patch --- Lua Tiny RAM

使用

在RT-Thread的finsh中调用lua()获得一个lua解释器。 在lua解释器中 - 可以调用lua标准库中的函数print('hello, lua on rt-thread') - 可以执行脚本文件dofile('/hello.lua') - 可以定义新的函数function sinc(x) return math.sin(x)/x end - etc.

配置

1.通过在rtconfig.h中定义RT_USING_LUA加入lua组件
2.可以定义RT_LUA_OPTRAM减少RAM占用
3.可以定义RT_LUS_USE_EXLIBS而添加外部库如arduino的常用函数封装为一个arduino库
3.更多的配置项可以在luaconf.h中找到

开发相关

- lua组件依赖于libc需要在rtconfig.h中定义RT_USING_LIBC
- 开启编译器对C99的支持如MDK中在C/C++选项的Misc Controls输入框中添加--c99
- 使用gcc时需要在链接脚本中定义_stext和_etext.ordata*放在两者之间。用于判断数据是read-only和writable  
  使用keil时需要在分散加载文件中把rodata放在ER_IROM1区
- 添加新的模块参见exlibs/lexamplelib.c

目录说明

- lua从eLua获得Lua-5.1.4版本代码
- exlibsexternal libraries外部库代码如example库
- applicationsLua应用代码如finsh中lua()
- test测试代码