我正在尝试在 ESP32 上运行 nodemcu(比 esp8266 更多的内存)。我使用 dev-esp32 分支 https://github.com/nodemcu/nodemcu-firmware.git 的源代码构建了固件。构建是在 Windows/WSL2/Ubuntu 系统上完成的。
固件可以工作,但是我在上传和保存 lua 文件时遇到问题。我尝试过各种工具,例如http://chilipeppr.com/esp32。
“堆”和“重置”等功能运行良好。但是,上传文件失败。控制台输出为:
file.open("unnamed1.lua", "w")
file.writeline([[print("Test")]])
file.writeline([[]])
file.close()
node.compile("unnamed1.lua")
> file.open("unnamed1.lua", "w")
Lua error: stdin:1: attempt to call field 'open' (a nil value)
stack traceback:
stdin:1: in main chunk
[C]: ?
[C]: ?
> file.writeline([[print("Test")]])
Lua error: stdin:1: attempt to call field 'writeline' (a nil value)
stack traceback:
stdin:1: in main chunk
[C]: ?
[C]: ?
> file.writeline([[]])
Lua error: stdin:1: attempt to call field 'writeline' (a nil value)
stack traceback:
stdin:1: in main chunk
[C]: ?
[C]: ?
> file.close()
Lua error: stdin:1: attempt to call field 'close' (a nil value)
stack traceback:
stdin:1: in main chunk
[C]: ?
[C]: ?
> node.compile("unnamed1.lua")
Lua error: stdin:1: cannot open unnamed1.lua: No such file or directory
stack traceback:
[C]: in function 'compile'
stdin:1: in main chunk
[C]: ?
[C]: ?
显然,ESP8266 NodeMCU 实现了 file.open(),而 ESP32 NodeMCU 没有(ESP32 似乎实现了 Lua io lib)。
我有构建问题吗?我不这么认为,因为 https://nodemcu.readthedocs.io/en/dev-esp32/modules/file/ 没有列出 file.open()
上传工具无法检测到我的 ESP32 是否存在问题?重置后,我的固件报告为: ''' NodeMCU ESP32 构建未指定,由 IDF v4.4.3 上的 Lua 5.1.4 [5.1-doublefp] 提供支持 '''
如有任何帮助,我们将不胜感激。
尝试使用
io
lib 代替。
do
local file = io.open("unnamed1.lua", "w")
file:write[[
print("Test")
]]
file:close()
end
node.compile("unnamed1.lua")