This format allows binary files to be uploaded and downloaded between two computer systems, typically between a computer system (such as a PC, Macintosh, or workstation) and an emulator or evaluation board for microcontrollers and microprocessors.
Lines always start with a percent (%) character. Each line consists of 5 fields. These are the length field, the type field, the checksum, the address field (including address length), and the data field.
- Record Length
The record length field is a 2 character (1 byte) field that specifies the number of characters (not bytes) in the record, excluding the percent.
The type field is a 1 character field that specifies whether the record is data (6) or termination (8).
The checksum is an 2 character (1 byte) field that represents the sum of all the nibbles on the line, excluding the checksum.
This is a 9 character field. The first character is the address size; it is always 8. The remaining 8 chgaracters are the 4-byte address that specifies where the data is to be loaded into memory.
The data field contains the executable code, memory-loadable data or descriptive information to be transferred.
A record containing data. The data is placed at the address specified.
A termination record. The address field may optionally contain the address of the instruction to which control is passed. There is no data field.
In general, binary data will expand in sized by approximately 2.5 times when represented with this format.
Here is an example Tektronix extended file. It contains the data “Hello, World” to be loaded at address 0x006B.
srec_cat version 1.64
Copyright © 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Peter Miller
The srec_cat program comes with ABSOLUTELY NO WARRANTY; for details use the 'srec_cat -VERSion License' command. This is free software and you are welcome to redistribute it under certain conditions; for details use the 'srec_cat -VERSion License' command.