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.

DSP F2812 进入非法中断问题



使用的是F2812,CCS3.3,自己开发的板子,其他功能完好
Uint32 ABC( )
~~  
{
~~  
      if(strcmp(s,"STOP")==0)   // 比较s数组和STOP字符串是否相同:若相同进入下一步
{ EALLOW; XIntruptRegs.XNMICR.bit.SELECT=0; //定时器1连接到XINT13,中断不再被响应 EDIS; goto loop; }
memset(s,0,20*sizeof(Uint32)); // s数组和STOP字符串不同,将s数组清零
loop:return(0);
}
以上为程序段。在进入此程序段之间,已经将中断XINT13打开,且只有在这个中断产生了之后,才能进入这段程序。
程序过程为:s数组与STOP字符串进行比较,如果完全相同,进入括号内;若果不是完全相同,将s数组清零,然后等待下一个S数组的到来,再进行比较。
括号内的内容为:关闭中断XINT13,跳到loop中,返回0到别的子程序中。

现在的情况是:

输入STOP到s数组中,进入到程序段后,经过比较,能进入括号中,跳转能return(0),返回0到别的子程序中;

输入非STOP到s数组中,进入到程序段后,经过比较,不能进入括号中,s数组被清零。再次输入STOP到s数组中,进入到程序段后,经过比较,能进入括号中,跳转能return(0),但程序此时跑飞,进入interrupt void ILLEGAL_ISR(void)

请问问题出在哪里了?