This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MCU-PLUS-SDK-AM243X: TMS570_CRC64_ISO algorithm from the linker is uncompatible with MCRC Full-CPU mode

Part Number: MCU-PLUS-SDK-AM243X
Other Parts Discussed in Thread: AM2432

Tool/software:

I use a SoC AM2432 with Industrial Communication SDK 09.02.00

According to the TI Clang compiler documentation I found here:

https://software-dl.ti.com/codegen/docs/tiarmclang/rel4_0_1_LTS/compiler_manual/linker_description/09_linker_generated_crc_tables/a-note-on-the-tms570-crc64-iso-algorithm-stdz0756196.html

it says:

<< Another issue with the algorithm is that it requires the run-time CRC calculation to be done with 64-bit chunks. The MCRC module allows smaller chunks of data, but the values are padded to 64-bits. The TMS570_CRC64_ISO algorithm does not perform any padding, so all CRC computations must be done with 64-bit values. >>

Unfortunately the Full-CPU example I found shows only CRC calculation made with 32bit chunks of data padded with 32bit zeroes.

To have the MCRC module to compute at 64bit chunks of data it must be used with DMA but no examples (in my referring question the TI support mentioned examples will be available since SDK 09.01.00)

I have tried to pass to the TI Clang compiler the algorithm CRC32_PRIME, working with 32bit chunks of data, but as well I cannot have the same calculation I get with MCRC module (because CRC32_PRIME doesn't add any padding, I suppose ...).

So, how to use MCRC with DMA ?

Thank you in advance

   Andrea