Lua代码符合ANSI C标准,只要有C编译器的开发环境就能跑Lua。
虽说只要有C编译器就能跑Lua,但是单片机的环境太简单,有些C标准的内容仍旧无法支持。
Lua的官网是:www.lua.org
移植
(1) 把 lua.c 和 luac.c 删除,这两个是一个Lua Shell,和平台相关,单片机中一般没用。
(2) 对内存敏感的项目可以替换掉 lauxlib.c 文件里 l_alloc 函数调用的 free 和 realloc 函数。
(3) loslib.c 和系统相关,单片机中最多跑RTOS,所以这个文件可以删除。
(4) liolib.c 中使用了标准文件操作fopen、fclose、fread、fwrite等函数。虽然有些单片机支持这些函数,但还是要自己重定向这些函数,而且在单片机中一般也不用文件来操作IO,所以这个文件可以删除。
(5) 如果删除了 loslib.c 和 liolib.c,那么在 linit.c 中要把 loadlibs 数组中相关的元素注释掉。这样调用 luaL_openlibs 时就不会加载这两个库了。