(toppers-users 1523) Re: TOPPERS/FI4 の割り込みサービスルーチンについて

Kominami Yasuo NBC00224 @ nifty.com
2004年 7月 6日 (火) 22:11:27 JST


こんばんは。
小南です。

倉本さんは割込みハンドラと割り込みサービスルーチンを混同されている
のではないかと思いました。
割込みハンドラは、割込みテーブルに登録され、割込みが発生したときに
起動されます。
それに対して、割込みサービスルーチンは割込みハンドラから起動されます。
一つの割込みに対し、割込みハンドラは一つしか定義できませんが、割込み
サービスルーチンは複数個登録できます。

今回倉本さんがなさりたいのは、割込みハンドラの定義と割込みサービス
ルーチンの定義のどちらなのでしょうか。

On Tue, 6 Jul 2004 19:31:34 +0900 (JST)
倉本 雅史 <mkuramoto_1967 @ yahoo.co.jp> wrote:

> 倉本です。
> 
> JTAGエミュレータが使えるようになって評価がだいぶ進んでい
> ます。
> 今回は首記の件について質問させて頂きます。
> 
> 現在、割り込みを使うアプリを検証しているのですが、acre_isr
> で登録しているにもかかわらずcpu_interruptが呼ばれてしま
> います。
> 

** Cut quoted 5 lines by the mail filter. **

attached_isr_initializeで割込みテーブルに登録
しているのは、割込みサービスルーチンではなく、割込みサービスルーチン
を起動する特別な割込みハンドラです。

> 
> 私の認識が間違っているのかもしれませんが、acre_isrはintno
> を予約しておかなくてもISRを登録できるAPIではなかったでし
> ょうか。
> #もちろん、テーブルを決めるための最大intnoは決めておく
> 必要はありますが。
> 
> 
μITRON4.0仕様のacre_isrの説明では、指定する割込み
に関する制約はありません。
しかしfi4のacre_isrのソースと、コメントを読む限り、予め
割込みサービスルーチン起動用割込みハンドラを登録して置かなければな
らないという制約を設けているようです(これに反した場合はE_PAR
を返すようです)。

ただし、fi4のユーザーズマニュアル(fi4_user.docbook)
ではacre_isrの項目が空欄になっているので、私には「fi4の
仕様」と断言する自信は有りません。

fi4では、ATT_ISRで静的に定義し、実行時に追加したいときに
acre_isrを用いるという使用法を想定しているのではないかと想像
します。

----------- 
小南 靖雄
ykominami @ nifty.com
(NBC00224 @ nifty.com)