[H8-ML(2810)] __interruptキーワードでユーザーベクタ設定
From: Morizzo <morizzo@xxxxxxxxxxxxxxxxxxxx>
Date: 2003年02月15日(土)12時16分28秒
Morizzoと申します。

これまではエディタ&コマンドライン環境で自由に書いていたのですが、
今回初めてHEWを使ってソフトを書いています。

HEWのウィザードが吐き出したコードをみると、
割込ベクタの設定に

  __interrupt(vect=16) void INT_IRQ0(void) {/* sleep(); */}

などと__interrupt(vect=xx)キーワードを使って書くことで
ベクタテーブルを生成しておりました。
これは便利な機能なのですが、
日立のモニタと組み合わせて使うときには、ベクタテーブルを
モニタ側の「ユーザーベクタ」に移動させなければなりません。
しかし、上の__interruptを使うと、割込へのジャンプアドレスは
強制的に所定の場所(000h〜1FFh)に配置されてしまいます。

このベクタテーブルをユーザーベクタへ(任意のアドレスへ)配置して、
.motに落とすうまい方法はないでしょうか?

これまでは自前でasmやCでベクタテーブルを作っていたので
どのようにでも料理できたのですが、
今回は出来る限りHEWが吐き出すコードから外れないようにとの指示なので、
何らかの方法がないか探っています。

調べた感じでは、リンクオプション設定では難しそうです。

日立のモニタを改造する(.motファイルに000h〜1FFhが含まれていたら、
自動的にユーザーベクタへ移動させる)とかは、ちょっと手間ですね。

やっぱり、__interruptを使う限りムリなのでしょうか。

よろしくお願いします。

スレッド概略
[表示中](起点)


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]