Hello
I am working on a Nuclear Safety related embedded application using the TI MSP432.
I am trying to make use of the capability to create, using the linker a CRC for a zone of data in FLASH and to then be able to, during startup of the application, verify the target application calculated CRC for this same zone of data matches the CRC generated by the linker.
I have tried several different settings in the linker, one as shown below,
.const : > 0x00080200, crc_table(crc_table_for_const,algorithm= CRC32_PRIME)
.TI.crctab : > FLASH
In the Application loaded to target I am using the TI Runtime API for the CRC as shown below.
Ps…I have tried many settings….
//params.byteSwapInput = CRC_BYTESWAP_BYTES_AND_HALF_WORDS; // nope
//params.byteSwapInput = CRC_BYTESWAP_UNCHANGED; // nope
//params.byteSwapInput = CRC_BYTESWAP_HALF_WORDS; // nope
params.byteSwapInput = CRC_BYTESWAP_BYTES_IN_HALF_WORDS; // nope
params.returnBehavior = CRC_RETURN_BEHAVIOR_BLOCKING;
params.polynomial = CRC_POLYNOMIAL_CRC_32_IEEE;
params.dataSize = CRC_DATA_SIZE_32BIT;
params.seed = 0xFFFFFFFF;
status = CRC_calculateFull(handle, src, srcSize, &result);
No matter what settings I use I am not able to come up with the same CRC as calculated by the linker.
For ease of testing the data zone has been set to only 12 bytes of data.
It would be appreciated if I could get pointed in the right direction here, perhaps I need details on the calculation used by the linker?
Thank You In Advance.