您的位置 首页 观点

Lua在单片机中的移植

Lua代码符合ANSIC标准,只要有C编译器的开发环境就能跑Lua。虽说只要有C编译器就能跑Lua,但是单片机的环境太简单,有些C标准的内容仍旧…

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就移植完结了。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/guandian/265987.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部