README.TXT 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. # Lua on RT-Thread
  2. ## 简介
  3. RT-Thread中的Lua修改自[eLua](http://www.eluaproject.net/)的Lua-5.1.4版本。
  4. 采用gcc工具链时,Lua依赖于newlib库,其它工具链暂时还不支持。
  5. 启动lua的RAM占用情况
  6. - 标准的lua 17.1904296875 KB
  7. - 优化的lua 5.01953125 KB
  8. 注:数据来自print(collectgarbage('count'))的输出
  9. 优化是指采用一个lua patch --- [Lua Tiny RAM](http://www.eluaproject.net/doc/v0.8/en_arch_ltr.html)
  10. ## 使用
  11. 在RT-Thread的finsh中,调用lua()获得一个lua解释器。
  12. 在lua解释器中
  13. - 可以调用lua标准库中的函数,如:print('hello, lua on rt-thread')
  14. - 可以执行脚本文件,如:dofile('/hello.lua')
  15. - 可以定义新的函数,如:function sinc(x) return math.sin(x)/x end
  16. - etc.
  17. ## 配置
  18. 1.通过在rtconfig.h中定义RT_USING_LUA加入lua组件
  19. 2.可以定义RT_LUA_OPTRAM减少RAM占用
  20. 3.可以定义RT_LUS_USE_EXLIBS而添加外部库,如arduino的常用函数封装为一个arduino库
  21. 3.更多的配置项可以在luaconf.h中找到
  22. ## 开发相关
  23. - 采用gcc工具链时,依赖于newlib,需在rtconfig.h中定义RT_USING_NEWLIB
  24. - 开启编译器对C99的支持,如MDK中,在C/C++选项的Misc Controls输入框中添加--c99
  25. - 需要在链接脚本中定义_stext和_etext,.ordata*放在两者之间。
  26. 用于判断数据是read-only和writable。MDK中如何实现??
  27. - 添加新的模块,参见lexample.c
  28. ## 目录说明
  29. - lua:从eLua获得Lua-5.1.4版本代码
  30. - exlibs:external libraries,外部库代码,如example库
  31. - applications:Lua应用代码,如finsh中lua()
  32. - test:测试代码