esp32将partitions.csv文件启用到工程项目中的配置
在ESP32项目里,partitions.csv
文件用于定义闪存的分区表,它规定了不同类型数据(如代码、文件系统、OTA 分区等)在闪存中的存储位置和大小。下面为你详细介绍如何将 partitions.csv
文件集成到工程项目中以及相应的配置步骤。
1. 创建或准备 partitions.csv
文件
首先,你需要有一个 partitions.csv
文件。你可以手动创建该文件,也可以基于ESP-IDF提供的示例文件进行修改。下面是一个简单的 partitions.csv
文件示例:
# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x5000,
otadata, data, ota, 0xe000, 0x2000,
app0, app, ota_0, 0x10000, 0x140000,
app1, app, ota_1, 0x150000,0x140000,
spiffs, data, spiffs, 0x290000,0x170000,
这个示例定义了多个分区,包括NVS(非易失性存储)、OTA数据、两个OTA应用分区和一个SPIFFS(SPI Flash文件系统)分区。
2. 将 partitions.csv
文件添加到项目中
把 partitions.csv
文件放置在项目的根目录或者特定的配置目录下。通常,建议将其放在项目根目录,这样便于管理和引用。
3. 配置项目以使用自定义的分区表
在ESP-IDF项目中,你可以通过以下两种常见方式配置项目使用自定义的 partitions.csv
文件:
方式一:使用 idf.py menuconfig
- 打开终端,进入项目的根目录。
- 运行以下命令打开项目配置菜单:
idf.py menuconfig
- 在配置菜单中,导航到
Partition Table
选项:Partition Table
->Custom partition table CSV
。
- 输入你自定义的
partitions.csv
文件的路径,通常直接输入文件名即可(如果文件在项目根目录)。 - 保存配置并退出菜单。
方式二:在 sdkconfig
文件中手动配置
- 打开项目根目录下的
sdkconfig
文件。 - 找到并修改以下配置项:
CONFIG_PARTITION_TABLE_CUSTOM=y
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
这两行配置指定使用自定义的分区表,并指明了分区表文件的名称。
4. 编译和烧录项目
完成上述配置后,就可以编译和烧录项目了。在终端中运行以下命令:
idf.py build
idf.py -p /dev/ttyUSB0 flash # 请将 /dev/ttyUSB0 替换为你的ESP32设备的实际串口设备路径
编译过程中,ESP-IDF会根据你指定的 partitions.csv
文件生成相应的分区表,并将其烧录到ESP32的闪存中。
验证分区表配置
烧录完成后,你可以通过以下方式验证分区表是否正确配置:
- 在代码中使用ESP-IDF提供的分区表API获取分区信息并打印输出。示例代码如下:
#include "esp_partition.h"
#include "esp_log.h"void app_main()
{const esp_partition_t *partition = esp_partition_find_first(ESP_PARTITION_TYPE_APP, ESP_PARTITION_SUBTYPE_APP_OTA_0, NULL);if (partition != NULL) {ESP_LOGI("Partition", "Found OTA app0 partition at offset 0x%x, size 0x%x", partition->address, partition->size);} else {ESP_LOGE("Partition", "OTA app0 partition not found");}
}
- 运行代码后,查看日志输出,确保分区信息与
partitions.csv
文件中的定义一致。
通过以上步骤,你就可以将 partitions.csv
文件成功集成到ESP32工程项目中,并完成相应的配置。