首页 > 解决方案 > 如何构建 SPIFFS 和 LFS 文件系统?/本地/spiffs;/本地/lfs

问题描述

我正在从文档中提供的工具链构建 NodeMCU,我可以制作固件就好了,但是我在 /local/spiffs 中包含了一个文件作为测试,但是在构建结束时,我收到一条消息说 spiffs 是空间不足,建造被中止......

我只是想知道 /local/spiffs 和 /local/lfs 如果不构建与固件二进制文件一起构建的 SPIFFS 映像,则它们的用途是什么……

如果有人也有关于如何使用 LFS 文件夹的详细信息,如果它甚至以这种方式使用,也将不胜感激。

在此先感谢您的时间,

标签: esp8266nodemcu

解决方案


第一个 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 了

推荐

一个快速的建议是使用以下过程:

  1. 选择一个闪存大小作为目标,比如 32Mb (4MB)
  2. 取消注释 app/include/user_config.h 中的 LFS 行并调整大小
  3. 创建一个目录,比如 local/lfs 并将启动器 lfs 文件放入其中。
  4. 在 local/lfs 中,执行 luac.cross -o lfs.img *.lua
  5. 将 lfs.img 移动或复制到 local/fs(请注意fs)以制作 spiffs 图像。
  6. 将推荐的 init.lua 放入 local/fs 并根据需要对其进行任何更改。
  7. 最后将您想要的任何其他 *.lua 或 LC(编译)文件放入本地/fs
  8. 在 TOP_DIR (nodemcu-firmware) 中执行:FLASHSIZE=4m make
  9. 查看bin/中的文件

推荐阅读