看到另外一个帖子,问题和我是一样的http://bbs.eccn.com/viewthread.php?tid=92766
我的程序是加了一段SPI通讯程序后出现了这个问题,该程序是向电源芯片内写入控制字,程序段如下:
word PwrSPIReadWriteWord(word PwrSet)
{ word tmp, bitmsk=0x0001;
byte i;
PwrSPICS_ClrVal();
for(i = 0; i<16; i++)
{
PwrSPISCK_SetVal();
if(PwrSet&bitmsk)
PwrSPISI_SetVal();
else
PwrSPISI_ClrVal();
asm nop;
asm nop;
asm nop;
asm nop;
asm nop;
asm nop;
asm nop;
asm nop;
PwrSPISCK_ClrVal();
if(PwrSPISO_GetVal())
tmp |= bitmsk;
asm nop;
asm nop;
asm nop;
asm nop;
asm nop;
asm nop;
asm nop;
asm nop;
bitmsk = bitmsk<<1;
}
PwrSPISI_ClrVal();
PwrSPICS_SetVal();
return tmp;
}
在线调试时,这段程序运行不了,出现ILLEGAL_BP,但去掉一个asm nop,就可正常运行,但离线运行时就会出问题,现象应该还是ILLEGAL_BP |