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