ESP32 OTA(3)


app 镜像格式

链接:App Image Format – ESP32 – — ESP-IDF 编程指南 v4.4.1 文档 (espressif.com)

一个app镜像由下列结构组成:

esp_image_header_t结构体描述了SPI flash的模式和内存段的计数。

esp_image_segment_header_t结构体描述了每个段,长度和位于ESP32内存中位置。跟随数据后面的是data_len的长度。镜像中每一段的数据偏移量按如下方式计算:

0段偏移量 = sizeof(esp_image_header_t) + sizeof(esp_image_segment_header_t)。

1段偏移量 = 0段偏移量 + 0段长度 + sizeof(esp_image_segment_header_t)。

2段偏移量 = 1段偏移量 + 1段长度 + sizeof(esp_image_segment_header_t)。

每个段的计数在存储在esp_image_header_t中的segment_count定义。这个计数不能超过esp_image_max_segments

esp_image: segment 0: paddr=00110020 vaddr=3f400020 size=1f6fch (128764) map

esp_image: segment 1: paddr=0012f724 vaddr=3ffb0000 size=008f4h (  2292)

esp_image: segment 2: paddr=00130020 vaddr=400d0020 size=a3bdch (670684) map

esp_image: segment 3: paddr=001d3c04 vaddr=3ffb08f4 size=02fb8h ( 12216)

esp_image: segment 4: paddr=001d6bc4 vaddr=40080000 size=1444ch ( 83020)

esp_image: segment 5: paddr=001eb018 vaddr=50000000 size=00010h (    16)

ESP32 OTA(3)

 

 ESP32 OTA(3)

 

 镜像有一个校验和字节在最后的段。这个字节被写在16个字节被填充的边界上,所以application image可能需要被填充。

如果hash_appended域在esp_image_header_t被设置,SHA256校验和将会被填充。SHA256的值是在范围内计算的从第一个字节直到这个范围内的最后。这个范围的长度是32字节。

如果CONFIG_SECURE_SIGNED_APPS_SCHEME选项设置为ECDSA,那么应用程序映像将有额外的68个字节用于ECDSA签名,这包括:

版本字节(4字节),

签名数据(64字节)。

 

 

  

 

原创文章,作者:sunnyman218,如若转载,请注明出处:https://blog.ytso.com/277360.html

(0)
上一篇 2022年7月27日
下一篇 2022年7月27日

相关推荐

发表回复

登录后才能评论