ルネサスのSH2におけるTRAPA命令についてです。

H8ではTRAP命令に対して固定の割り込みベクタテーブルが存在しましたが、SH2ではイミディエイトで指定したベクタ番号のアドレスに飛ぶようになっているようです。

この時、TRAPA命令を使った時に使えるベクタは特に制限はないのでしょうか?
割り込みプライオリティを指定して使いたいのでIPRの設定できるベクタで空いているところを適当に使おうと思うのですが・・・。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:pyopyopyo No.1

回答回数377ベストアンサー獲得回数98

ポイント100pt

 ユーザベクタ(ソフトウェア割込)として

利用できるのは32から63までの32個です.

この中のベクタであれば,自由に利用できます.

trapa 命令は 0から255までの番号を

利用できるようになっていますが,

32から63以外のベクタは,ハードウェア割り込み(NMIやリセット,IRQなど)に割り当てられています.

また,割り込みの優先順位ですが,リセット直後の状態では,割り込みベクタ番号が小さいほど優先されます.

SHの仕様書にベクタの一覧があると思いますので,詳細はそちらをみると良いと思います.

id:tanpa

回答ありがとうございます!

ベクタ一覧見つけました。

確かに32〜63がユーザベクタになっていました。

トラップは割り込みと共に、例外処理の仲間という事なんですね。

認識が間違っていました。勉強になります。

簡単なタスク切り替えディスパッチャを作っていて、任意のタイミングでタスク切り替えさせるためにトラップを使おうと思ったのでした。

例外処理の項を見て、割り込み例外よりもトラップ命令例外の方が優先順位が低い事も分かりました。

(ハードウェア割り込み中にトラップでタスクを切り替えられてしまうとおかしな事になるのでIPRで・・・などと考えていましたがはじめから優先順位が低いなら問題なしです)

これで仕事が進みます。

ありがとうございました(^_^)

2004/10/21 13:19:04

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません