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 belowOffset
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).
-