Chapter 11 NovAtel Firmware and Software
SMART7 Installation and Operation User Manual v6
125
Records beginning with S3 contain the actual firmware image data. Aside from the header, each pair of char-
acters forms the ASCII representation of a binary byte. The format is as follows:
S3
LL
AAAAAAAA
DDDDDDDD...DDDDDDDD
CC
Check Sum
Little Endian Data. These bytes are copied into the "data" field of the
SOFTLOADDATA
command
4 - Byte Address. Set this as the value of "offset" in the SOFTLOADDATA command
Length. This is the hexadecimal number of character pairs to follow in the record. This value minus 4 bytes for the
address and 1 byte for the check sum is copied into the "data length" field of the
SOFTLOADDATA
command
Header
11.7.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 *.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 firm-
ware 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 con-
secutive 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
Agriculture Commands and Logs Reference Manual
for command
details.
The *.shex file data may contain many gaps and jumps. For example, in many NovAtel *.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