1 Intel HEX

Intel HEX is a standard file format created by Intel. Intel HEX files end with a HEX or IHX extension (for example, file2.hex or file3.ihx).

Memory contents are stored in ASCII files using hexadecimal characters. Each file contains a series of records (lines of text) delimited by new line, ‘\n’, characters and each record starts with a ‘:’ character. For more information about this format, see the Intel HEX Record Format Specification document on the web (search for Intel Hexadecimal Object File for several examples).

The Intel HEX record is composed of five fields arranged as follows:

:llaaaatt[dd...]cc

Where:

  • : is the start code of every Intel HEX record.
  • ll is the byte count of the data field.
  • aaaa is the 16-bit address of the beginning of the memory position for the data. Address is big Endian.
  • tt is the record type that defines the data field:
    • 00 data record
    • 01 end of file record
    • 02 extended segment address record
    • 03 start segment address record (ignored by Microchip SoC tools)
    • 04 extended linear address record
    • 05 start linear address record (ignored by Microchip SoC tools)
  • [dd...] is a sequence of n bytes of the data (n is equivalent to what was specified in the ll field).
  • cc is a checksum of count, address, and data. The following is an example of an Intel HEX record:

    :0300300002337A1E

Note: Configurator organizes data according to big Endian sequence. Intel HEX format requires byte-aligned port widths (for more information, see section Write Port Width Alignment).