如何在 ESP8266 板上编译 Lua 代码?
How do you compile Lua code on ESP8266 Board?
node
模块有一个名为 compile
的方法,它编译代码并创建 .lc 文件。
我是否使用像nodemcu-tool
这样的工具通过terminal
参数连接到开发板,并执行node.compile('myfile.lua')
命令来创建.lc
文件?
如果init.lua
在复位时被编译为init.lc
,开发板会执行编译后的代码吗?
How do you compile lua code on ESP8266 Board?
这取决于您使用的工具。我使用的工作流程是:
- 使用
nodemcu-uploader
将Lua代码上传到NodeMCU
- 使用
picocom
连接到 NodeMCU
- 使用
node.compile()
编译文件
- (可选)使用
nodemcu-uploader
再次下载文件
不同的工具可能会稍微改变所涉及的步骤,但总体思路将保持不变:
上传->编译(->下载)
If init.lua is compiled as init.lc upon reset will the board execute the compiled code?
试试看 ;)
如果它不起作用,你总是可以只写一行 init.lua
需要 init.lc
;一旦您的芯片启动并且运行.
,这不会影响您的性能
或者您可以将编译后的文件重命名为 init.lua,它应该也可以。
但请记住,正如文档所述:
[...] compilation is RAM-intensive and hence you will find that you will need to break your application [...]
If init.lua
is compiled as init.lc
upon reset will the board execute the compiled code?
是的,根据我们的常见问题解答
Note that if you use require("XXX")
to load your code then this will automatically search for XXX.lc
then XXX.lua
so you don't need to include the conditional logic to load the bytecode version if it exists, falling back to the source version otherwise.
但是,另请注意,您的 init.lua
预计会相当小,因为实际应用程序会拆分为动态加载的单独文件。
(How) Do I use a tool like nodemcu-tool
to connect to the board via the terminal
parameter, and execute node.compile('myfile.lua')
commands to create .lc
files?
$ nodemcu-tool upload --port=/dev/ttyUSB0 myfile.lua --compile
node
模块有一个名为 compile
的方法,它编译代码并创建 .lc 文件。
我是否使用像nodemcu-tool
这样的工具通过terminal
参数连接到开发板,并执行node.compile('myfile.lua')
命令来创建.lc
文件?
如果init.lua
在复位时被编译为init.lc
,开发板会执行编译后的代码吗?
How do you compile lua code on ESP8266 Board?
这取决于您使用的工具。我使用的工作流程是:
- 使用
nodemcu-uploader
将Lua代码上传到NodeMCU
- 使用
picocom
连接到 NodeMCU
- 使用
node.compile()
编译文件
- (可选)使用
nodemcu-uploader
再次下载文件
不同的工具可能会稍微改变所涉及的步骤,但总体思路将保持不变:
上传->编译(->下载)
If init.lua is compiled as init.lc upon reset will the board execute the compiled code?
试试看 ;)
如果它不起作用,你总是可以只写一行 init.lua
需要 init.lc
;一旦您的芯片启动并且运行.
或者您可以将编译后的文件重命名为 init.lua,它应该也可以。
但请记住,正如文档所述:
[...] compilation is RAM-intensive and hence you will find that you will need to break your application [...]
If
init.lua
is compiled asinit.lc
upon reset will the board execute the compiled code?
是的,根据我们的常见问题解答
Note that if you use
require("XXX")
to load your code then this will automatically search forXXX.lc
thenXXX.lua
so you don't need to include the conditional logic to load the bytecode version if it exists, falling back to the source version otherwise.
但是,另请注意,您的 init.lua
预计会相当小,因为实际应用程序会拆分为动态加载的单独文件。
(How) Do I use a tool like
nodemcu-tool
to connect to the board via theterminal
parameter, and executenode.compile('myfile.lua')
commands to create.lc
files?
$ nodemcu-tool upload --port=/dev/ttyUSB0 myfile.lua --compile