请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:MSP430F6736 主题中讨论的其他部件:MSP430WARE
工具/软件:Code Composer Studio
您好,
我正在尝试在TI的EVM启动板仿真器上调试我的代码。 我的代码进入SD24 ISR,但从ISR返回时显示此错误。 没有"0x2.1008万"可用的源。 任何人都可以帮助解决此问题。
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.
工具/软件:Code Composer Studio
您好,
我正在尝试在TI的EVM启动板仿真器上调试我的代码。 我的代码进入SD24 ISR,但从ISR返回时显示此错误。 没有"0x2.1008万"可用的源。 任何人都可以帮助解决此问题。
我查看了TI 16.9 v.2.LTS编译器为该代码生成的汇编器。 创建了名为ISR的函数,该函数注册为 SD24_B中断源的处理程序。 但是,ISR功能以RETA指令结束。 为了正确操作中断处理程序,函数必须以RETI (从中断返回)指令结束。 函数以RETA指令结束这一事实解释了从函数返回时的崩溃。Gaurav Kumar44 说:#pragma vector = SD24B_vector
ISR (SD24B,ADC_INTERRUPT)
{
带签名的短整型SD24BSample[2],noofsamples=0;
/*原始样本*/
SD24BSample[0]=(带符号短整型) SD24BMEMH0;
SD24BSample[1]=(带符号的短整型) SD24BMEMH1;
nofsamples++;
}
而是尝试使用 __interrupt限定符来定义中断处理程序,MSP430ware示例就是这样做的。 我检查了生成的汇编程序,函数以预期的RETI指令结束:
#pragma vector = SD24B_vector
__interrupt void SD24BIR(void)
{
带签名的短整型SD24BSample[2],noofsamples=0;
/*原始样本*/
SD24BSample[0]=(带符号短整型) SD24BMEMH0;
SD24BSample[1]=(带符号的短整型) SD24BMEMH1;
nofsamples++;
}