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.

MSP430F5510空地址读写的问题

Other Parts Discussed in Thread: MSP430F5510

我用的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 ,去掉LPM确实不会发生上诉问题,查看勘误表,我觉得还是您所说的bug  EEM13 的现象,谢谢

  • 在请教 Jason Guo ,我把仿真器去掉,实际运行的时候,有时候也会出现PC跑飞的情况,就是LPM3无法退出来了,参照了勘误表,我现在用外部晶振,MCLK=SMCLK=12Mhz(XT2),ACLK=32K(XT1),中断函数里面只对全局变量置位和复位,没有涉及到子程序的调用,程序在跑的过程中有时候还是会出现PC跑飞???