如何嵌入 Lua?

我正在开发一款设备,需在消耗品操作时支持不同的配方。当消耗品插入时,会扫描一个二维码,根据扫描结果应用相应的配方。

我使用 Cortex-M4F 和 FPGA 控制一些电机,代码是用 C++ 写的,并在 FreeRTOS 上运行。我最想使用 Lua 的功能是处理 if/then/else 逻辑和循环等操作。我还需要扩展它来支持我的电机,这似乎不难使用 C API 实现(尽管我从未为 Lua 做过这个)。但我不需要大多数甚至所有的库。

eLua 看起来不是很适合。如果我了解这个项目,它是关于为板子创建二进制图像,然后在上面运行用 Lua 编写的应用程序。我只想让一个任务能够加载和运行一个脚本。

我可能只能为 Lua 单独分配约 100-200 kB 的闪存,这我认为已经足够了。RAM 是 256 kB。

如果有人已经尝试过,请告诉我它的效果如何。

点赞
用户8572843
用户8572843

我尝试过类似的东西,但是只有 64 kB RAM 的裸机足以运行虚拟机。总的来说,我会说你拥有的 RAM 越多,越好(不少于 64 KB)。为了节省 RAM,我使 GC 更加积极,并将默认的数字表示减小到 32 位(#define LUA_32BITS)。如果必要的话,您还可以交换内存分配功能(malloc,等等)。 闪存应该足够了。 我建议使用 Lua 5.3(应急 GC,二进制运算符内建,...)。

通常 源代码 应该没有问题的构建。我不得不更改的唯一部分是 IO 操作(stdio.h)和从 time.h 函数,但这取决于你的平台如何处理它。

祝你好运。

2019-01-17 07:57:27