I've got an application where I need to CRC program memory and be as sure as I can be about it having a correct checksum - I don't want to jump to a bit-errored program. I'm thinking some sort of CRC checksum, probably 32 bit (or two different 16 bit algorithms) - I can live with a 1 in 4.2billion chance of it actually being an errored program. Not so much one in 65,536. I'm aware that different checksum algorithms are more sensitive to certain types of errors - for instance the CRC was specifically developed to catch bit-errors in a serial bitstream. I've also seen other discussions about different modifications of the CRC or other algorithms specifically to catch bit errors common in other mediums. Mailnly I'm looking for something well suited to common flash memory failures (words not quite programmed, or failures, etc.), and also which will catch some of the likely flash-update algorithm failures (i.e. missed programming a block of 16 for some reason, etc).. but I don't seem to be able to locate anything specifically related to this type of application - instead everything seems to be a serial checksum or similar (magnetic media, etc), applied to program memory, and stating some nebulus claim about it being 'better' than a normal checksum ... which may or may not be true when applied to flash program memory. So, I'm curious what others are using... of course this is going to run inside a PIC, so something code-constrained would be nice....don't want to take up all my code space with the CRC ;) -forrest -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist