请教一下,CH579编程时,在数据处理时,当16位(32位)数据指针指向一个奇地址时,芯片会死掉,进入HardFault,导致程序没法继续执行。这是芯片问题吗?有没什么办法解决呢?
例:
UINT cksum(UCHAR *check,UINT length) //计算校验和 当传进来的check地址为奇地址,程序无法跑下去
{
LONG sum=0;
UINT i;
UINT *ptr;
ptr=(UINT *)check;
for (i=0;i<(length/2);i++)
{
//sum+=*ptr++;
printf("%d ",ptr);//地址指向奇地址时,芯片进入HardFault
sum += HTONS(*ptr);
ptr++;
}
......
return ( (UINT)((sum)&0xffff));
}