背景
在ESP32中实现littlefs,想先把一些素材文件直接烧录进去,就得先做1个小镜像。
步骤
1. 下载mklittlefs
下载地址:https://github.com/earlephilhower/mklittlefs
windows下载这个:
解压后就只有一个.exe的可执行文件
使用Windows自带的PowerShell,进入到含这个exe文件的目录:
使用帮助:
.\mklittlefs.exe -h
2. 生成镜像
在同一个目录中,准备好了需要打包的素材,放到了data文件夹中,data文件夹中含:
使用命令:
.\mklittlefs.exe -b 4096 -p 256 -c data -s 0x2B0000 littlefs.bin
其中的参数含义如下:
- -b 块大小,默认4096
- -p 页面大小,默认256
- -c 输入的素材文件夹
- -s 输出镜像大小,不能小于实际素材大小
- littlefs.bin 输出的镜像文件名称
大小的换算:
0x100000 = 1M
0x10000 = 64K
0x1000 = 4K
所以 0x2B0000 = 1M*2 + 64K*11 = 2048+704K = 2752KB
大小应该和 ESP32的分区表匹配,这里我的分区表如下:
# 0x100000 = 1M, 0x10000 = 64K, 0x1000 = 4K
# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x6000,
phy_init, data, phy, 0xf000, 0x1000,
factory, app, factory, 0x10000, 1216k,
littlefs, data, littlefs, 0x140000, 2752k,
即对应表的最后一行,2752K,烧录地址应该从 0x140000 开始。
3. 烧录镜像
使用 Flash Download Tools 下载
下载地址:https://www.espressif.com/en/support/download/other-tools
打开软件,选择对应的芯片后,到烧录表:
连接好设备后,选对COM口,然后点 START ,就开始烧录了,完成后如图: