Hello there,
I write application for the TMS570LS2134 MCU and would like to runtime checking the application binary code residing in the 2 MB Flash ROM. For this I set the main application area ROM from 0x00000000 to 0x001FDFFF, which is 2MB-8KB in size, and use 0x001FE000 to 0x001FFFFF (8KB) to store the precomputed CRC code of 64 bits or 8 bytes.
So I configure the DMA channel to transfer 8160 frames of 32 elements each. The transfer element size is 64 bits.
To match the DMA transfers, I configure accordingly the CRC module to generate End Of Compression (EOC) interrupt once the 64-bit counts reaches 261120.
I then use another simple project to flash only 8 bytes from memory address 0x001FE000 to 0x001FE007 for the precomputed CRC code. All surrounding addresses contain 0xFF, blank.
With this configuration, the CRC module EOC interrupts are generated cyclically, occurrences are with accordance to the programmed frequency. Every time when I change a single bit in the code, the computed CRC is changed. No problem until now.
However, to be sure that the DMA/CRC Module is reaching the end of address 0x001FDFFF, I purposely write a dummy 8-byte data to memory address range from 0x001FDFF8 to 0x001FDFFF. To my surprise, the newly computed CRC is the same as the previous one, which means that at least the last 8 bytes of data are not taken into the CRC computation!
Do you see what is my problem and any suggestion to troubleshoot?
Thanks!