This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我用的IAR5.3,单片机是MSP430F5510,单片机操作过程
main()
{
……
while(1)
{
执行1;
……
LPM3;
}
}
#pragma vector=TIMER0_A1_VECTOR
__interrupt void TIMER1_A0_ISR(void)
{
……
LPM3_EXIT;
}
我让单片机全速运行(带MSP430FET),中间偶尔点一下IAR调试暂停按钮,VMAIFG就会置位导致程序出错,按我网上查询资料显示,大部分是由于栈溢出,查了我自己的程序,栈溢出可能性不大,因为我没有定义大数组的局部变量。这难道和仿真器一起调试的问题?如果我把程序下进去,跑起来好像还是比较正常?
这个问题,看上去与F5510的一个调试bug EEM13 的现象比较相似.请参考下面的F5510勘误表
MSP430F550x, MSP430F5510 Device Erratasheet
如果F5510进入低功耗模式,这个时候如果调试器尝试停止F5510的运行,可能导致PC指针跑飞,造成异常。
为确认是否是这个bug,你可以把程序简单修改下,去掉LPM3模式。再试试有没有这种情况出现。
这个bug只影响调试,实际独立运行时不会出现
在请教 Jason Guo ,我把仿真器去掉,实际运行的时候,有时候也会出现PC跑飞的情况,就是LPM3无法退出来了,参照了勘误表,我现在用外部晶振,MCLK=SMCLK=12Mhz(XT2),ACLK=32K(XT1),中断函数里面只对全局变量置位和复位,没有涉及到子程序的调用,程序在跑的过程中有时候还是会出现PC跑飞???