分区表
partition_table(分区表)模块是一个编译脚本工具,用于解析分区表描述文件并生成头文件ptab.h,ptab.h中包含了与分区信息相关的一系列宏定义,该头文件可被工程引用以获取分区信息。
分区表可以描述所有memory的地址规划,包括NOR Flash、NAND Flash、eMMC、TF卡、PSRAM和片内SRAM等。每个板子会有自己的分区表描述,使用该板子编译的工程都遵循对应分区表定义的地址规划;
工程也可以使用自定义 PTAB 覆盖板子的默认配置。
使能分区表
选中middleware中的Use partition table to manage all memory layout使能分区表功能

同时还需要在工程的Kconfig.proj中定义如下开关,所有示例工程的Kconfig.proj都已包含了这段代码
#APP specific configuration.
config CUSTOM_MEM_MAP
bool
select custom_mem_map
default y if !SOC_SIMULATOR
分区表语法
SDK 目前同时支持两类 PTAB 语法:
v1/v2:使用
ptab.jsonv3:使用
ptab.yaml
其中,v3 提供了更清晰的 YAML 结构、芯片内部分区建模和工程级 ptab.overlay.yaml 支持。新项目推荐优先采用 v3。
具体语法参考:
查看 ftab.bin
工程构建完成后,构建目录中会生成 ftab.bin,这是由分区表生成的二进制 Flash Table。排查启动地址、镜像大小、XIP 地址或 DFU 镜像标志时,可以使用 sdk.py ftab-dump 将该文件解析为可读内容。
使用前需要先初始化 SDK 环境:
source ./export.sh
Windows PowerShell 下执行:
./export.ps1
在工程目录下执行以下命令,会自动查找该工程目录中的第一个 build_*/ftab.bin 并输出:
sdk.py ftab-dump
如果同一个工程目录中存在多个板子的构建目录,建议显式指定文件路径,避免查看到非预期的构建产物:
sdk.py ftab-dump --path build_<board_name>/ftab.bin
默认输出为表格格式;如果需要给脚本处理,可以输出 JSON:
sdk.py ftab-dump --path build_<board_name>/ftab.bin --format json
参数说明:
参数 |
说明 |
|---|---|
|
|
|
输出格式: |
表格输出包含三部分:
部分 |
说明 |
|---|---|
Partition Table Entries |
Flash Table 分区条目,包括镜像存储基地址、分区大小、XIP 或执行基地址以及 flags。 |
Image Description Table |
DFU 和启动流程使用的镜像元信息,包括镜像长度、块大小、 |
Image Index Table |
各 core 镜像槽位的运行镜像指针,例如 HCPU、LCPU、bootloader 和 boot image。 |