1.9.6 Application Header Details

Extended Application Header Overview

At the beginning of each application binary is an Extended Application Header containing a variety of information about the application. The Extended Application Header has two basic sections. The first section contains the Application Header which contains just the basic information about the image.

  • The Checksum/CRC32/SHA256 or other signature of the application image used during verification.

  • The application Start and End addresses the code the signature checks.

  • A branch instruction that allows linking the bootloader code to the application

The second part of the Extended Application Header is the Application Details Header which contains other detailed information about the image such as version information of the image.

Application Header  

The format of the Application Header is shown below

Offset

Length

Description

0

4

CRC32 of the image(Size of this field varies with verification method)

4

4

Start Address (inclusive - PC addresses)

8

4

End Address (inclusive - PC addresses)

12

4

Branch command to entry point of the Firmware Image

Application Details Header

The second part of the Application Header is the Application Details Section. This section is designed to be expandable and allow the customer to add their own header types. In the current implimentation, only two types of headers are defined. The first is the generic Application Details Header and the Application Version Header. These are defined below.

Start of Application Details Section Indicator – Header ID Value - 0  

Offset

Length

Description

N

2

Start of Application Details Section Indicator ID (0x0000)

N+2

4

Start of Application Details Section Indicator Data Length (2 - always 2 bytes)

N+6

4

Count of Application Details in the section (Includes this one)

Application Version Number Header

The second Application Details header is the Application Version Number header. This header provides a place for the version number of this application image and is defined below

Application Version Number Header - ID Value - 2  

Offset

Length

Description

N

2

Version Number Header ID (0x0002)

N+2

4

Version Number Data Length (4)

N+6

4

Version Number in format of 0x00:major:minor:patch each major/minor/patch will be 0-255 limited.

CRC32 Extended Application Header Example

A detailed example of a complete Application header is shown below. The verification types is CRC32 which computes a 32 bit CRC of the image within the space give. The details are shown below.

The below examples go through the and example CRC32 header.

  • The application CRC32 is 0x24E3_722A

  • The application image starts at 0x0000_1C00

  • The application image ends at 0x0002_A7FE

  • The application version number is 0x010203

Offset

Length

Description

0

4

CRC32 0x24E3_722A

4

4

0x0000_1C00

8

4

0x0002_A7FE

12

4

Branch command to entry point of the Firmware Image

16

2

Start of Application Details Section Indicator ID (0x0000)

18

4

Start of Application Details Section Indicator Data Length (2 - always 2 bytes)

22

4

Count of Application Details in the section (2 In this example. Includes this one)

26

2

Version Number Header ID (0x0002)

28

4

Version Number Data Length (4)

32

4

Version Number in format of 0x00:major:minor:patch (0x010203).