Start Code
  Byte Count
  Record Type

Ref : http://en.wikipedia.org/wiki/Intel_HEX
Relative Ref:
Motorola SREC Format : http://en.wikipedia.org/wiki/SREC_(file_format)

font 凧繕 < pre> http://alexw.me/


Hex File Formats

This appendix describes the Intel hex object format and the TI-txt file format.


The Intel hex object format supports 16-bit addresses and consists of a 9-character (4-field) prefix that defines the start of record, byte count, load address, record type, and a 2-character sumcheck suffix.


The record types, which are represented in the 9-character prefix, are:


             00 = Data record [begins with the colon (:) start character].

             01 = End-of-file record


Record type 00, the data record, begins with the colon (:) start character and is followed by the byte count, the address of the first data byte, the record type (00), and the sumcheck. The sumcheck is the twos complement (in binary) of the preceding bytes in the record including the byte count, address, and data bytes.


Record type 01, the end-of-file record, also begins with the colon (:) start character. The colon is followed by the byte count, the address, the record type (01), and the sumcheck.


To represent an address bus of more than 16 bits, other record types are defined:


             02 = Extended Segment Address Record, segment-base address. Used when 16 bits is insufficient, this mode is identical to 80x86 real-mode addressing. The address specified by the 02 record is multiplied by 16 (shifted 4 bits left) and added to the subsequent 00 record address. This allows addressing of up to one megabyte of address space. The address field of this record must be 0000,  the byte count is 02 (the segment is 16 bit). The least-significant hex digit of the segment address is always 0.


             04 = Extended Linear Address Record, allowing for fully 32-bit addressing. The address field is 0000, the byte count is 02. The two data bytes represent the upper 16 bits of the 32-bit address, when combined with the address of the 00 type record.


Figure A-1. Intel Hex Object Format


A.2 TI-txt File Format



        DATA01 DATA02 ........ DATA16

        DATA17 DATA18 ........ DATA32


        DATAm ........ DATAn


        DATA01 ........ DATAn





             @ADDR is the start address of a section (hexadecimal).

             DATAn represents a data byte (hexadecimal).

             q is the termination of the file.


For example:



        31 40 00 03 B2 40 80 5A 20 01 D2 D3 22 00 D2 E3

        21 00 3F 40 E8 FD 1F 83 FE 23 F9 3F


        00 F0





 , The number of sections is unlimited.

 , Each line can have a maximum of 16 data bytes, except the last line of a section.

 , Data bytes are separated by a single space.

 , The termination tag q indicates end-of-file is mandatory.



The ti-TXT format is used by the Texas Instruments MSP430 familty programming adapter.

The TI-TXT hex format supports 16-bit hexadecimal data. It consists of one or more sections, followed by the end-of-file indicator.

Each section consistes of an at (@) sign followed a start address (in hexadecimal), and newline, and then data bytes (in hexadecimal). The section address is followed by a newline. There are to be 16 data bytes per line, except for the last line in a section.

The end-of-file indicator is the letter q followed by a newline. The end-of-file indicator mandatory.

Size Multiplier

In general, binary data will expand in sized by approximately 3.0 times when represented with this format.


Here is an example ti-txt file taken from the reference below:


31 40 00 03 B2 40 80 5A 20 01 D2 D3 22 00 D2 E3

21 00 3F 40 E8 FD 1F 83 FE 23 F9 3F


00 F0