I am looking into the possibility of using the FCE peripheral in 32-bit CRC mode to validate application code stored in PFlash. The application code will contain its CRC value that is calculated at link time using the Tasking linker checksum algorithm which is also used to create the boot mode header (BMHD) CRC values. I can successfully get the linker to create a 32-bit CRC over a specified flash memory range and embed this value to a known location; I can also get the FCE to calculate its CRC over this same range but the two CRC's differ. I am still trying to understand why they are not the same and have even limited the address range to a single 32-bit value. I notice in the FCE and linker documentation, the former refers to using a polynomial of 0x04C11DB7 and the latter a polynomial of 0xEDB88320; apparently one is the reversed polynomial of the other. Does this render using the FCE and linker CRC calculations incompatible with each other? i.e. will they always return different CRC's?

Any help/suggestions much appreciated.