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 时就不会加载这两个库了。
6) 在luaconfig.h 中有 luai_writestring 和 luai_writeline 两个宏,这两个宏联系到了 lua 中 print 的输出,需求针对渠道重定向,一般定向到调试串口就行。还有个 luai_writestringerrir 宏,界说了 lua 怎么报错,能够界说到调试串口,也能够界说到log文件,或许两者兼有。
完结以上6步,lua就移植完结了。