There are five banks of image files composing the entire firmware. Inside each image file, there
are many records indicating which type of hex record the records in the image file
represent.
The following are the three types of hex records:
Bank start record
Data record or Firmware
record
Bank end record
Note: The firmware data resides in the data type
record.
The file size of each bank of image files in the firmware is 64 Kbytes. Align the data record or
the firmware record from the offset 0x0000 of the each bank in ascending order. There is
no hole between the records.
Table 3-1. Hex Record Format
Start
Data Length
Starting Address
Category
Data
Checksum
End
Nibble#
0
1-2
3-6
7-8
9-N
N+1
N+2
Value
:
0xNN
0x0000 – 0xFFE0
0x04 – Start of bank
0x00 – Data
0x01 – End of bank
Data – up to 32 bytes
0xXX
‘\n’
In some exceptional cases, the offset does not always start from 0x0000, and there can be an
empty hole between the data/firmware records. The following are the steps to generate
one large .hex file where each data record or firmware record is placed
in sequence using the isUpdate tool; see the following figure:
Click Browse to select
five bank files.
Click Rehex to initiate
the reHex process.
The isUpdate tool converts five
bank files into one large .hex file.
Fill each empty hole and each non-zero offset with an empty record of 0xFF so that the
host MCU can download the firmware data in sequence from 0x0000 of bank0 to the end of
bank4. At the same time, generate a binary file. In the BM78 Module
DFU Demo with SAMG55 Xplained Pro Evaluation Kit, turn the binary
file into a large constant C array, which is inside the Flash memory of the host
MCU.Figure 3-1. reHex Operation with isUpdate
Tool