NovAtel Firmware and Software
Chapter 8
OEM6 Family Installation and Operation User Manual Rev 7
95
8.4.3
Sending Firmware Data
C++ source code is available to provide example code of processing S-Records and converting them to
NovAtel format commands, as well as providing help with the SoftLoad process. Contact
and ask about the srec2softload utility.
The
SOFTLOADSREC
and
SOFTLOADDATA
commands can be used to send firmware data from *.hex
or *.shex files to the receiver.
S0, S5 and S7 S-Records should be sent directly to the receiver using the
SOFTLOADSREC
command,
by enclosing the S-Record in quotation marks and issuing the command to the receiver, as follows:
SOFTLOADSREC "<S-RECORD>"
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
(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