本帖最后由 纪国圣 于 2021-1-17 13:37 编辑
Lua是一个小巧的脚本语言。它是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo三人所组成的研究小组于1993年开发的。 其设计目的是为了通过灵活嵌入应用程序中从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。Lua 有一个同时进行的JIT项目,提供在特定平台上的即时编译功能。
Lua脚本可以很容易的被C/C++ 代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,ini等文件格式,并且更容易理解和维护。Lua由标准C编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行。一个完整的Lua解释器不过200k,在所有脚本引擎中,Lua的速度是最快的。这一切都决定了Lua是作为嵌入式脚本的最佳选择。
以上就是摘自百度百科关于Lua的简介。Lua小巧易用,只需编写脚本就可运行,十分适合对运行速度要求不高,但又有功能扩展要求的场景。本文就是介绍将lua-5.4.1移植到STM32H7A3。
1.登陆Lua官网,下载5.4.1版本的源码:
lua-5.4.1.tar.gz
(345.67 KB)
2.解压,将src文件夹复制到STM32工程中,重命名为lua:
3.将lua源码加入工程中,排除lua.c和luac.c:
4.添加lua头文件路径:
5.新建lua_sys.c,将如下内容添加到lua_sys.c:
6.将如下内容添加到main.c中:
这里简单说一下LUA_SCRIPT_GLOBAL就是Lua脚本,意思是LD1每500ms闪烁,共运行10次。
编译下载,LD1每500ms闪烁,共运行10次,之后LD3每1000ms闪烁,并打印This is sram。
Lua.zip
(1.09 MB)
|