質問: SHマイコンのシリアルデータフレームの割り込み受信プログラムについて
回答: まず、SHで割り込みを用いたプログラムを作られた経験はあるのでしょうか?SHの割り込みは、0番地から始まる割り込みベクタテーブルに割り込みルーチンとして用いるプログラムのアドレスを羅列しておく形式になっています。SCI0の受信割り込み(RXI_0)なら0x204番地、SCI1の受信割り込み(RXI_1)なら0x214番地です。まず、この「割り込みベクタテーブルを作って、リンカに対して特定アドレスにマッピングする指示を与える」手続きはできているのでしょうか? また、割り込み処理として用いるルーチンは、入るときと出るときで特別な処理が必要になります。ルネサス純正コンパイラであれば、#pragma interruptを使って割り込み関数であることを明示したりするのですが、お使いのコンパイラでその辺りの手続きを正しくしているでしょうか?或いは、導入処理はアセンブラによるルーチンで行い、C言語では普通の関数のように記述する手法もありますが、そういう仕組みはあるのでしょうか? 純正コンパイラは使っているのでサンプルを示すこともできるけど、GDLってよくわからないので。 関数名だけは割り込み要素名に合わせてあるけど、その関数のアドレスがベクタに正しく記述されているのかこのソースからはわからないので、何とも言えません。