1

I was working on a USB thumbwheel bootloader and reading in a number of records successfully, but around 2000 bytes it throws a check_sum error. I initially figured it had to be my code, but having finally nailed down the offending records in the Hex file, I am even more puzzled.

Here are a few extracts (below) of the lines of code in the hex file that is causing the problem. They all show the data length field as zero. Now to be best of my knowledge the only type of file in the INTEL HEX format that should have a data length of zero should be the end of file record, the very last one which has a format of: :00000001FF // End oF File Record. The two zeros after the colon ":" indicating the number of bytes in the data field – zero - since there are none in an EOF record.

However, extracted from my code are following 3 examples of code with ":00" that are not end of file records and in searching the internet, I can find no indication of what they may be.

Yes, the code compiles and hex code I load runs fine on the board.

:1094F00044E3400B000000703EE5400B00000070AC
:009500006B  <<<< not EOF record so what is it?
:102F1C0081BF1E3C00F2C283C418027C81BF1E3CE0
.

:105B5400FFFF0234748822A40800E00300000070F0
:005B640041  <<<<not EOF record so what is it?
:104E5C00F4FFBD270000BFAF0400B9AF8594400F2D
.
:104F5C000400B98F0000BF8F0800E0030C00BD27D0
:004F6C0045  <<<<<<<not EOF record so what is it?
:020000041D01DC
.
:020000041FC01B
:102FF000000007C07505000003E606000FF00F1182
:00000001FF  // End of File Record

Thanks in advance

  • How was this hex file produced ? Maybe this zero length type 0 record is in here to mess with those who try to make use of hex files they have no rights to. – Jim Nickerson Apr 10 '18 at 16:28
1

There is nothing violating the intel hex format as far as I can see.

The end of file record

:000000_01_FF

has a record type of "01" (fourth byte), indicating end of file, whereas

:009500_00_6B

is a data record (fourth byte = 00) starting at address 0x0095 containing 0 bytes. I suspect your ihex generator uses this as a sort of indicator for an address change in the subsequent lines.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.