Part Number: TMS320F28027
Hi,
I need to calculate the Boot ROM checksum for the TMS320F28027.
According to the TMS320x2802x Piccolo Boot ROM Reference Guide, taking a 64-bit summation of all addresses within the ROM, except for the checksum locations, generates this checksum.
To calculate the checksum, I followed the checksum.c example below on a similar processor which calculates the same blocks:
https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/185956
The blocks are:
MEMORY_BLOCK memblock[NUMBLOCKS] = {
(ui16 *)0x003FE000, (ui16 *)0x003FFFBB,
(ui16 *)0x003FFFC0, (ui16 *)0x003FFFFF
};
Inside the block in the algorithm, these calculations were used:
lowHalfLSW += *currentVal ^ ((unsigned long)currentVal & 0x0000FFFF);
and
lowHalfMSW += *currentVal ^ ((unsigned long)currentVal & 0x0000FFFF);
However, I got incorrect checksum. Could it be possible that the checksum algorithm for the 28027 is different within the blocks? What would be the correct algorithm?
Thank you.