您好,
我需要计算 TMS320F2.8027万的启动ROM校验和。
根据TMS320x2802x Piccolo引导ROM参考指南,对ROM中的所有地址(校验和位置除外)进行64位求和,将生成此校验和。
为了计算校验和,我在一个计算相同块的类似处理器上按照下面的checksum.c示例进行了操作:
https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/185956</s>18.5956万
这些块包括:
MEMORY_BLOCK MEMBLOCK [NUMBLOCKS]={
(ui16 *) 0x003FE000,(ui16 *) 0x003FFFBB,
(ui16 *) 0x003FFFC0,(ui16 *) 0x003FFFFFFF
};
在算法的块内,使用了以下计算:
lowHalfLSW +=*currentVal ^((unsigned long) currentVal & 0x0000FFFF);
和
lowHalfMSW +=*currentVal ^((unsigned long) currentVal & 0x0000FFFF);
但是,我得到了不正确的校验和。 2.8027万的校验和算法在数据块中是否可能不同? 正确的算法是什么?
谢谢你。