如何在ESP8266板上编译Lua代码?

node模块有一个名为compile的方法,可以编译代码并创建.lc文件。

我是否需要使用像nodemcu-tool这样的工具通过terminal参数连接到板上,并执行node.compile('myfile.lua')命令来创建.lc文件?

如果在重置时将init.lua编译为init.lc,板子会执行编译后的代码吗?

点赞
用户4984564
用户4984564

如何在 ESP8266 开发板上编译 Lua 代码?

这取决于你使用的工具。我会使用以下工作流程:

  1. 使用 nodemcu-uploader 将 Lua 代码上传到 NodeMCU。
  2. 使用 picocom 连接到 NodeMCU。
  3. 使用 node.compile() 编译文件。
  4. (可选)使用 nodemcu-uploader 再次下载文件。

不同的工具可能会稍微更改涉及的步骤,但总的想法将保持不变:

上传 -> 编译(-> 下载)

如果将 init.lua 编译为 init.lc,那么在重置时板子会执行编译后的代码吗?

试一下;)

如果不起作用,你可以写一个只有一行的 init.lua,那就是要求 init.lc。一旦芯片启动并运行,这不会影响你的性能。

或者你可以将编译后的文件重命名为 init.lua,这也应该可以工作。

但请注意,正如文档所说:

“... 编译需要大量的 RAM,因此您将发现您需要将应用程序分为...”

2019-02-22 09:05:24
用户131929
用户131929

如果 init.lua 被编译为 init.lc,在重置后板子会执行编译过的代码吗?

会的,按照我们的 FAQ。

注意,如果您使用 require("XXX") 来加载您的代码,那么它会自动搜索 XXX.lc 然后是 XXX.lua,所以您不需要包括条件逻辑来加载存在的字节码版本,否则回退到源版本。

然而,还请注意您的 init.lua 应该很小,实际应用程序拆分为单独的文件,动态加载。

如何使用类似 nodemcu-tool 的工具通过 terminal 参数连接到板子并执行 node.compile('myfile.lua') 命令创建 .lc 文件?

根据 命令参考

$ nodemcu-tool upload --port=/dev/ttyUSB0 myfile.lua --compile

2019-02-23 20:54:10