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

时间:2019-02-22 02:10:18

标签: lua nodemcu

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

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

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

2 个答案:

答案 0 :(得分:1)

  

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

这取决于您使用的工具。我要使用的工作流程是:

  1. 使用nodemcu-uploader
  2. 将Lua代码上传到NodeMCU
  3. 使用picocom
  4. 连接到NodeMCU
  5. 使用node.compile()
  6. 编译文件
  7. (可选)使用nodemcu-uploader
  8. 重新下载文件

不同的工具可能会略微改变所涉及的步骤,但总体思路仍将保持不变:

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

  

如果在重置时将init.lua编译为init.lc,董事会将执行已编译的代码吗?

尝试;)

如果它不起作用,您总是可以只写一行init.lua的{​​{1}};一旦启动并运行芯片,这并不会影响您的性能。

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

但是请记住,如文档所述:

  

[...]编译需要占用大量RAM,因此您将发现需要破坏应用程序[...]

答案 1 :(得分:1)

  

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

是的,根据我们的常见问题解答

  

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

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

  

(如何)我是否使用nodemcu-tool之类的工具通过terminal参数连接到开发板,并执行node.compile('myfile.lua')命令来创建.lc文件?

按照command reference

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