esp8266 - 如何构建 SPIFFS 和 LFS 文件系统?/本地/spiffs;/本地/lfs
问题描述
我正在从文档中提供的工具链构建 NodeMCU,我可以制作固件就好了,但是我在 /local/spiffs 中包含了一个文件作为测试,但是在构建结束时,我收到一条消息说 spiffs 是空间不足,建造被中止......
我只是想知道 /local/spiffs 和 /local/lfs 如果不构建与固件二进制文件一起构建的 SPIFFS 映像,则它们的用途是什么……
如果有人也有关于如何使用 LFS 文件夹的详细信息,如果它甚至以这种方式使用,也将不胜感激。
在此先感谢您的时间,
解决方案
第一个 SPIFFS
如您所料,要构建 spiffs 文件系统,您需要将文件放在local/fs中。当你这样做时,基本的 make 将创建一个 spiffs 图像并将两个 *.bin 文件放在bin/中。
您还可以使用手动构建 spiffs 图像
工具/spiffsimage/spiffsimage
至于 spiffs 图像的大小,在构建 nodemcu 时确实需要为图像留出空间。例如,在 nodemcu-firmware 主目录中使用不带选项的 make 将尝试为 32Mb (4MB)、8Mb(1MB,例如,通常标记为 esp-01S 或黑色 esp-01)和最后 4Mb( 512KB)。当一个失败时,该过程终止。
您可以针对所需的特定闪存大小进行构建,例如:
- FLASHSIZE=32m make <--- 将只构建 4MB 的闪存图像片段
- FLASHSIZE=8m 使 <--- 用于具有 1MB 闪存的黑色 esp-01s。
现在对于 LFS 图像
在主nodemcu-firmware目录中使用通用make时,您需要首先编辑文件app/include/user_config.h并取消注释两个 LFS 命令。您应该根据需要设置大小——对我来说,这通常意味着 64KB,因为很多 lua 代码可以存储在该空间中。
如果要手动构建 lfs,则需要一个目录来放置文件。在该目录中执行命令:
luac.cross -o lfs.img -f *.lua
这会将您的文件编译到文件 lfs.img 中。
- 如果您使用 LFS,您应该查看docs/getting-started.md,其中包含有关您的 lfs 的起始文件集的非常有用的信息,以及有关使用 luac.cross 的信息,如上所示。你当然已经看过docs/lfs.md 了。
推荐
一个快速的建议是使用以下过程:
- 选择一个闪存大小作为目标,比如 32Mb (4MB)
- 取消注释 app/include/user_config.h 中的 LFS 行并调整大小
- 创建一个目录,比如 local/lfs 并将启动器 lfs 文件放入其中。
- 在 local/lfs 中,执行 luac.cross -o lfs.img *.lua
- 将 lfs.img 移动或复制到 local/fs(请注意fs)以制作 spiffs 图像。
- 将推荐的 init.lua 放入 local/fs 并根据需要对其进行任何更改。
- 最后将您想要的任何其他 *.lua 或 LC(编译)文件放入本地/fs
- 在 TOP_DIR (nodemcu-firmware) 中执行:FLASHSIZE=4m make
- 查看bin/中的文件
推荐阅读
- validation - 有人可以帮我在 Postman 中创建一个测试,以验证一个键在嵌套组中是否具有预期值?
- c# - 如何测试调用存储过程的代码
- hibernate - 是否有 Eclipselink 替代 Hibernate @where 注释?
- excel - VBA - 花括号 {} 等效操作
- sql - 检查数据库是否包含任何行的最有效方法?
- android - 应用程序处于后台状态时,继续恢复不起作用
- php - 如何使用延迟强制下载的 PHP 下载文件?
- javascript - 媒体查询适用于不要使用引导程序来完整视口/split.js/
- java - 从用户中删除组成员身份会保留相关的应用程序角色吗?
- pandas - 如何将多个时间序列数据集合并到一个数据框,然后在其上使用交叉验证?