一、参考资料
- 用于研究的官方示例代码:esp-idf-v5.3\examples\storage\partition_api\partition_find
- 参考的官方文档:ESP-IDF编程指南:分区表
二、准备工作
- 用VS Code打开示例代码,打开示例代码的CSV自定义分区表,如下图所示:
- 编译后,生成的分区表BIN文件,保存在“partition_find\build\partition_table”路径下,以二进制方式打开,如下图所示:
三、开始分析
- 将CSV分区表,得到下图:
- 二进制数据整理后,得到下图:
- 起始标记:每条分区表都以 “0xAA,0x50”开始
- Name属性:参考官方文档ESP-IDF编程指南:分区表Name属性,Name 字段可以是任何有意义的名称,但不能超过 16 个字节,最后一个字节是‘\0’(之后的内容将被截断)
- Type和SubType属性:只需要一个字节足以表示枚举类型
- Offset和Size属性:用32位(4个字节)小端表示
- Flags属性:为4个字节(没有验证过,只是分析)
- MD5校验:16个字节,在分区表的最后,参考ESP-IDF编程指南:概述
- 其他:猜测 “0xEB,0xEB” 应该是结束标志,其他的0xFF就不知道什么意思了