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