:04FEDC00210080CFB2 ^ ^ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | +-- checksum Adding all count, address, record | | | | | | | | type, data, and checksum bytes | | | | | | | | together modulo 256 will yield a sum | | | | | | | | of 0x00 if the record is valid. In | | | | | | | | this case, 0x04 + 0xFE + 0xDC + 0x00 + | | | | | | | | 0x21 + 0x00 + 0x80 + 0xCF + 0xB2 = | | | | | | | | 0x00. | | | | | | | | | | | | +-+-+-+---- data bytes There are four data bytes in this | | | | record: 0x21, 0x00, 0x80, and 0xCF. | | | | | | | +------------ record type 0x00 for data records, 0x01 for EOF | | | records. | | | | | +-------------- load address The first byte of this data record | | loads at address 0xFEDC. Subsequent | | data bytes load at subsequent | | addresses. For EOF records, program | | execution begins at this address. | | | +------------------ byte count There are 0x04 data bytes in this | data record. EOF records normally | have 0x00 data bytes. | +-------------------- start-of- All Intel hex records begin with an record char ASCII ':'. S107FEDC210080CFAE ^^ ^ ^ ^ ^ ^ ^ ^ || | | | | | | +--- checksum Adding all count, address, data, and || | | | | | | checksum bytes together modulo 256 || | | | | | | will yield a sum of 0xFF if the record || | | | | | | is valid. In this case, 0x07 + 0xFE + || | | | | | | 0xDC + 0x21 + 0x00 + 0x80 + 0xCF + || | | | | | | 0xAE = 0xFF. || | | | | | | || | | +-+-+-+----- data bytes There are four data bytes in this || | | record: 0x21, 0x00, 0x80, and 0xCF. || | | || | +------------- load address The first byte of this data record || | loads at address 0xFEDC. Subsequent || | data bytes load at subsequent || | addresses. For EOF records, program || | execution begins at this address. || | || +----------------- byte count There are 0x07 - 0x03 = 0x04 data || bytes in this data record. EOF || records normally have a byte count of || 0x03 because they have 0x03 - 0x03 = || 0x00 data bytes. || |+------------------- record type ASCII '0' for header records, '1' for | data records, or '9' for EOF records. | +-------------------- start-of- All S-records begin with an ASCII 'S'. record char