如何加载spiffsimg文件的正确地址是什么
我使用spiffsimg创建了一个包含多个lua文件的单个文件:
# ./spiffsimg -f lua.img -c 262144 -r lua.script
f 4227 init.lua
f 413 cfg.lua
f 2233 setupWifi.lua
f 7498 configServer.lua
f 558 cfgForm.htm
f 4255 setupConfig.lua
f 14192 main.lua
#
然后,我使用esptool.py将NodeMCU固件和包含lua文件的文件烧写到esp8266(NodeMCU开发套件)中:
c:\esptool-master>c:\Python27\python esptool.py -p COM7 write_flash -fs 32m -fm dio 0x00000 nodemcu-dev-9-modules-2016-07-18-12-06-36-integer.bin 0x78000 lua.img
esptool.py v1.0.2-dev
连接...
运行Cesanta flasher stub...
设置Flash参数为0x0240
写入446464 @ 0x0... 446464 (100 %)
在38.9秒内在0x0处写入了446464字节(91.9 kbit/s)。
写入262144 @ 0x78000... 262144 (100 %)
在22.8秒内在0x78000处写入了262144字节(91.9 kbit/s)。
跳出...
然后我运行ESPLorer以检查状态并得到:
PORT OPEN 115200
Communication with MCU..Got answer! AutoDetect firmware...
Can't autodetect firmware, because proper answer not received.
NodeMCU custom build by frightanic.com
branch: dev
commit: b21b3e08aad633ccfd5fd29066400a06bb699ae2
SSL: true
modules: file,gpio,http,net,node,rtctime,tmr,uart,wifi
build built on: 2016-07-18 12:05
powered by Lua 5.1.4 on SDK 1.5.4(baaeaebb)
lua: cannot open init.lua
>
----------------------------
No files found.
----------------------------
>
Total : 3455015 bytes
Used : 0 bytes
Remain: 3455015 bytes
NodeMCU固件烧写正确,但是找不到lua文件。
我尝试将文件烧写到其他位置(0x84000、0x7c000),但我只是根据在Github上阅读的帖子猜测这些位置。
我使用了NodeMCU file.fscfg()例程来获取Flash地址和大小。如果我只烧写NodeMCU固件,我会得到以下结果:
print (file.fscfg())
524288 3653632
534288为0x80000,所以我尝试仅将spiffsimg文件(lua.img)烧写到0x80000,然后运行相同的打印语句并得到:
print (file.fscfg())
786432 3391488
闪存地址增加了lua.img中确切的字节数-我不明白为什么闪存地址会改变?file.fscfg返回的第一个数字不是起始闪存地址,而是结束闪存地址吗?
烧写一张包含由spiffsimg创建的lua文件的图像文件的正确地址是什么?
以下是翻译后的中文: 在 此处 找到的 spiffsimg 版本可以提供包含 lua 文件的映像文件的正确烧写地址。
不要使用 此处 的 spiffsimg 版本,因为它已经过时了。
要安装 spiffsimg 工具,您需要下载并安装整个 nodemcu-firmware 包(在 Linux 环境下,使用 make 安装 - 注意:在我的 Debian Linux 上,make 生成了一个错误,但我能够进入 ../tools/spiffsimg 子目录并在那个目录中找到的 Makefile 上运行 make 来创建该工具)。
此处 找到的 spiffsimg 指令非常清晰,只有一个例外:在 -f 参数中指定的文件名需要包括字符 %x。 %x 将会替换成映像文件应该烧写到的地址。
例如,以下命令:
spiffsimage -f %x-luaFiles.img -S 4MB -U 465783 -r lua.script
将在本地目录中创建一个名为 80000-luaFiles.img 的文件。这意味着您应该将该映像文件安装在 ESP8266 的 0x80000 地址处。
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

我从未亲自完成过这项工作,但我相当有信心正确的答案可以从 docs 中提取。
还有更进一步的解释:
然而,这两个陈述之间存在轻微的不一致。我们的文档可能存在错误。如果“
'%x'将被替换为……”,那么我期望最终的名称将不再包含0x。此外,当您构建固件时,可以定义固定的 SPIFFS 位置。