如何列出ESP32微控制器板载SPI Flash的所有可用分区?
列出ESP32板载SPI Flash分区的方法
下面是几个可行的方法,帮你查看ESP32的SPI Flash分区:
方法1:使用ESP-IDF命令行工具
- 确保你已经安装并配置好ESP-IDF开发环境,进入环境终端
- 用USB连接ESP32到电脑,执行以下命令读取分区表:
- 先读取分区表到本地文件:
esptool.py read_flash 0x8000 0x1000 partition_table.bin - 然后用
parttool.py解析并显示分区信息:parttool.py --partition-table partition_table.bin show
注:0x8000是ESP-IDF默认的分区表起始地址,0x1000是分区表大小,如果你的设备分区表地址不同,需要调整对应的参数
- 先读取分区表到本地文件:
方法2:在代码中遍历并打印分区
写一个简单的ESP-IDF应用,调用ESP32的分区API来获取所有分区信息:
#include <stdio.h> #include "esp_partition.h" void app_main(void) { const esp_partition_iterator_t iter = esp_partition_iterator_begin(ESP_PARTITION_TYPE_ANY, ESP_PARTITION_SUBTYPE_ANY, NULL); if (!iter) { printf("未找到任何分区\n"); return; } printf("ESP32 SPI Flash 分区列表:\n"); printf("类型 | 子类型 | 起始地址 | 分区大小 | 标签\n"); printf("-----|---------|------------|------------|------\n"); esp_partition_t part; while (esp_partition_iterator_next(iter, &part)) { printf("%-5d| %-7d| 0x%08x | 0x%08x | %s\n", part.type, part.subtype, part.address, part.size, part.label); } esp_partition_iterator_release(iter); }
编译烧录这个程序后,打开串口监视器,就能看到完整的分区列表。
方法3:查看启动串口日志
ESP32上电启动时,会在串口输出启动信息,其中包含分区表内容。只需:
- 用串口工具连接ESP32的UART引脚(一般是TX/RX对应GPIO1/GPIO3)
- 重启ESP32,在日志中找到类似以下的内容:
I (29) boot: Partition Table:
I (33) boot: ## Label Usage Type ST Offset Length
I (40) boot: 0 nvs WiFi data 01 02 00009000 00006000
I (47) boot: 1 phy_init RF data 01 01 0000f000 00001000
I (54) boot: 2 factory factory app 00 00 00010000 00100000
这些就是你的SPI Flash分区信息。
内容的提问来源于stack exchange,提问作者Miguel Tomás
相关产品推荐
相关产品推荐

