I am updating my boot-loader to perform a CRC check across the application -
it will stay in the BL if the CRC is bad.

 

I am trying to use srec_cat to generate the CRC value.  I am having no
success getting the CRC value to match what the bootloader calculates.
Since srec_cat operation is opaque to me, I am asking for some help.

 

How do I get srec_cat to calculate a CRC value from 0 to (lets say) 0x1F7FD
and plop that value down in 0x1F7FE?  I.e. deposit the CRC into the last two
bytes prior to my bootloader (2k byte, m128).

 

This is the command line I am using w/o luck (well, *something* is getting
deposited.)

 

srec_cat $(TARGET).hex -Intel -fill 0xFF 0 0x1F7FE -Little_Endian_CRC16
0x1F7FE -Cyclic_Redundancy_Check_16_XMODEM -Output $(TARGET).hex -Intel

 

Does the above process the CRC over the entire address range?  Or just the
extents of the input file?  Srec_cat isn't clear on that.

 

Has anyone used these tools to do this?  The only example I have uses the
application to check itself - it "knows" it's extents because the linker
provides that.  Unfortunately the boot-loader doesn't have access to that
information.

 

Alternatively if I could get srec_cat to put both the maximum extent and the
CRC near the end of FLASH, I could adjust my boot-loader to read those
values in generating the CRC.

 

Thanks in advance.

_______________________________________________
AVR-GCC-list mailing list
AVR-GCC-list@nongnu.org
http://lists.nongnu.org/mailman/listinfo/avr-gcc-list

Reply via email to