我正在使用Texas Intruments的LCDK C6748和Code Composer Studio 和 TMDSEMU100V2U-14T - XDS100v2 USB JTAG Emulator。
LCDK 带有一堆支持函数,包括一个初始化板的函数,并定义每个中断调用哪些回调函数。
我刚刚实现了回调函数,所以每当新样本来自 ADC 时它就会执行一些操作。
我试图在中断内设置一个断点,但在运行时程序“流”没有到达那里。
此外,我做了一些更简单的事情:
volatile int flag = 0;
interrupt void interrupt4(void) // interrupt service routine
{
flag = 1;
return;
}
int main(){
// board initializing function, defining sampling rate etc.
L138_initialise_intr(FS_48000_HZ,ADC_GAIN_0DB,DAC_ATTEN_0DB);
while(1){
if (flag == 1){
printf("interrupt entered");
flag = 0;
}
}
}
但是由于某种原因,while循环只输入了一次。
这让我感到惊讶,因为如果我不设置断点,则会连续输入中断 - 我试图将样本传递到扬声器线路而不做任何其他事情,我听到了音乐。
我有一种感觉,我错过了一些关于中断的非常基本的东西,我对这个主题很陌生。
有人可以向我解释一下[或将我链接到解释该机制如何在 DSP 中工作的好资源]:
1)为什么我们不能在中断中设置断点?
2)为什么即使我在主程序中设置断点,似乎中断也没有发生,如果我不这样做。
3) 在 CCS 中,我必须通过哪些方式在运行时访问变量?
谢谢