错误:引导加载程序二进制大小 0x7780 字节对于分区表偏移 0x8000 来说太大。引导加载程序二进制文件最大可为 0x7000 (28672) 字节,除非在项目配置菜单的分区表部分中增加分区表偏移量。
在 esp32 固件中启用 flash 加密。
CONFIG_PARTITION_TABLE_OFFSET
更改为更高的值(例如使用 idf.py menuconfig
)。默认值为 0x8000。我将其设置为 0x1F000 为引导加载程序保留 0x17000 个字节(总共 120 KiB)。您可能想要查看并更新所有的位置和大小 接下来的分区,而不仅仅是第一个分区。
在您的
partitions.csv
中可见的分区表之前有3个“隐藏分区”。默认情况下它们是:
# Start | Length | Partition
# ----------+--------------------+----------------------
# 0x0000 | 0x1000 (4 KB) | (hidden) Secure boot IV and app image signature
# 0x1000 | 0x7000 (28 KB) | (hidden) Bootloader
# 0x8000 | 0x1000 (4 KB) | (hidden) Partition table
# ----------+--------------------+----------------------
partitions.csv
中声明的可见分区从该表结束处开始,默认为0x9000。
您可以使用配置键
CONFIG_PARTITION_TABLE_OFFSET
更改分区表的偏移量,这会将分区“分区表”移动到新地址。这样做会为引导加载程序留下更多(或更少,如果你愿意的话:))空间。
显然,
partitions.csv
中的所有可见分区向前移动(或向后移动,如果你愿意的话:))移动相同的量。
下面是 16 MiB 闪存的示例分区表。
为引导加载程序留下 120 KiB 的空间。其次是半强制OTA数据、PHY分区。一个 884 KiB 的大 NVS 分区。最后两个 OTA 分区,每个大约 7.6 MiB。
CONFIG_PARTITION_TABLE_OFFSET
设置为 0x1F000partitions.csv
更新为以下内容:# Start | Length | Partition
# ----------+--------------------+----------------------
# 0x0000 | 0x1000 (4 KB) | (hidden) Secure boot IV and app image signature
# 0x1000 | 0x1E000 (120 KB) | (hidden) Bootloader
# 0x1F000 | 0x1000 (4 KB) | (hidden) Partition table
# ----------+--------------------+----------------------
otadata, data, ota, 0x20000, 0x2000,
phy_init, data, phy, 0x22000, 0x1000,
nvs, data, nvs, 0x23000, 0xDD000,
app0, app, ota_0, 0x100000, 0x780000,
app1, app, ota_1, 0x880000, 0x780000,