請教一下,CH579編程時,在數(shù)據(jù)處理時,當(dāng)16位(32位)數(shù)據(jù)指針指向一個奇地址時,芯片會死掉,進(jìn)入HardFault,導(dǎo)致程序沒法繼續(xù)執(zhí)行。這是芯片問題嗎?有沒什么辦法解決呢?
例:
UINT cksum(UCHAR *check,UINT length) //計算校驗和? ?當(dāng)傳進(jìn)來的check地址為奇地址,程序無法跑下去
{
LONG sum=0;
UINT i;
UINT? *ptr;?
? ? ptr=(UINT *)check;
for (i=0;i<(length/2);i++)
{
//sum+=*ptr++;
printf("%d ",ptr);//地址指向奇地址時,芯片進(jìn)入HardFault
sum += HTONS(*ptr);
ptr++;
}
......
return ( (UINT)((sum)&0xffff));
}