You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何列出ESP32微控制器板载SPI Flash的所有可用分区?

列出ESP32板载SPI Flash分区的方法

下面是几个可行的方法,帮你查看ESP32的SPI Flash分区:

方法1:使用ESP-IDF命令行工具

  1. 确保你已经安装并配置好ESP-IDF开发环境,进入环境终端
  2. 用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上电启动时,会在串口输出启动信息,其中包含分区表内容。只需:

  1. 用串口工具连接ESP32的UART引脚(一般是TX/RX对应GPIO1/GPIO3)
  2. 重启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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 23:05:15