私はCode Composer StudioとTMDSEMU100V2U-14T - XDS100v2 USB JTAG EmulatorでTexas IntrumentsのLCDK C6748を使用し て います。
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 ループが 1 回だけ入力されました。
ブレークポイントを設定しないと割り込みが継続的に入力されるので、驚きました。他に何もせずにサンプルをスピーカーラインに渡そうとしたところ、音楽が聞こえました。
割り込みについて非常に基本的なことが欠けているように感じます。私はこのテーマにまったく慣れていません。
誰かが私に説明してくれませんか[または、DSPでメカニズムがどのように機能するかを説明する適切な情報源に私をリンクしてください]:
1) 割り込み内にブレークポイントを設定できないのはなぜですか?
2)メインにブレークポイントを設定しても割り込みが発生しないように見えるのはなぜですか?
3) CCS で実行時に変数にアクセスする必要があるのはどのような方法ですか?
ありがとう