NovAtel Firmware and Software
Chapter 8
OEM6 Family Installation and Operation User Manual Rev 12
108
S3 records can be sent individually to the receiver using the
SOFTLOADSREC
command. Alternatively, the
data from an S3 record can be parsed and packaged together with data from other S3 records into a binary
SOFTLOADDATA
command. Packaging data parsed from multiple S3 records into a binary
SOFTLOADDATA
command can result in improved firmware update times as each S3 record contains only a small number of
bytes of firmware data. A single
SOFTLOADDATA
command can package up to 4096 bytes of firmware data
from multiple S3 records, whereas a single
SOFTLOADSREC
command contains a maximum of 28 bytes of
firmware data from a single S3 record.
Multiple S3 records can be packaged into a single
SOFTLOADDATA
command as long as the data from one
S3 record follows immediately after the previous record.That is, the address from the current S3 record must
equal the address from the previous S3 record plus the data length of the previous S3 record. If the data is
not consecutive then the
SOFTLOADDATA
command can be sent with the amount of data it has packaged up
to that point. Subsequent data can be packaged in a new
SOFTLOADDATA
command. Within the
SOFTLOADDATA
command, the "offset" field remains the address of the first S3 record and the "data" and
"data length" are updated to include the new data. Refer to the
OEM6 Family Firmware Reference Manual
(OM-20000129) for more information regarding the
SOFTLOADDATA
command.
The *.hex and *.shex file data may contain many gaps and jumps. For example, in many NovAtel *.hex and
*.shex files, data for address 0x000_00000 is stored near the very end of the file.
Example Packaging Multiple S3 Records In A SOFTLOADDATA Command
Start a new
SOFTLOADDATA
command
S32100407AD48FCA63034B80F5CE0C36507DE3D8DCC0C6C0C00515D74BCACF2F2949E1
Address: 0x00407AD4 Num Data Bytes: 0x21 – 0x01 – 0x04 = 0x1C
S32100407AF04CCA4985F0F7B081E41D9B7D806C26989AE2D4E4CCBCB47C10FBFD3E43
Previous A Previous Num Bytes = 0x00 0x1C = 0x00407AF0
Address: 0x00407AF0 Num Data Bytes: 0x1C
Add data to existing
SOFTLOADDATA
command
S30D00407B0CDE0400A6374D5BFFC5
Previous A Previous Num Bytes = 0x00 0x1C = 0x00407B0C
Address: 0x00407B0C Num Data Bytes: 0x0D – 0x01 – 0x04 = 0x08
Add data to existing
SOFTLOADDATA
command
S3210000000007F0A7F1F4060000147B4000F49217813C7BB00014493F005C00000009
Previous A Previous Num Bytes = 0x00 0x08 = 0x00407B14
Address: 0x00000000 Num Data Bytes: 0x1C
Requires new
SOFTLOADDATA
command because address does not match previous a previous
number of data bytes. Wait until a response is received from the previous command before sending the new
command.
Send existing
SOFTLOADDATA
command, and start a new
SOFTLOADDATA
command
S3210000001C80040000E001000030000000082B0100D8060000E4060000C806000063
Address: 0x0000001C Num Data Bytes: 0x1C
Previous A Previous Num Bytes = 0x00 0x1C = 0x0000001C
Add data to existing
SOFTLOADDATA
command
The
SOFTLOADDATA
command must be sent as a NovAtel binary format command.