FRK-SH2A (5) 問題点 (3) ― 2010年05月08日 09時23分15秒
●KPIT GNUSH v1001 の割り込み処理がうまくいかない。
これについては重要なことを見落としていた。
インターフェースの記事によると
「シリアル接続HEWモニタは、ダウンロードするユーザ・プログラムがレジスタバンクをイネーブルに設定しなくても、すでにイネーブル状態で動作しているので、割り込みが発生するとレジスタセットが切り替わって割り込み処理プログラムが実行されます。よって、割り込み処理から戻るところで、レジスタをもとに戻す命令を埋め込まないと、割り込み処理から正常に復帰できません。」
ということだ。
つまり、FRK-SH2A をシリアルモニタで使う場合、レジスタバンクを使わないならディセーブルにしなければならない。
INTC.IBNR.WORD = 0x0000;
を追加して確かめる。
割り込みも問題なく動く。
これで、お気に入りの KPIT GNUSH v0601 も継続して使えそうだ。
コメント
_ 寿々郎 ― 2010年05月16日 21時01分40秒
_ syslab ― 2010年05月17日 20時30分11秒
KPIT GNUSH v1001 は動くのですが
KPIT GNUSH v0601 はサポートして無いようです。
どのバージョンからサポートしているのかは今のところ不明です。
以前試したところでは KPIT GNUSH v0701 も未対応でした。
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※投稿には管理者が設定した質問に答える必要があります。
トラックバック
このエントリのトラックバックURL: http://syslab.asablo.jp/blog/2010/05/08/5072426/tb
割込み関数にこのような指定はできませんか?
void foo(void) __attribute__((interrupt_handler, resbank));
これが指定できればレジスタバンクを有効に出来そうです。