第 3 章 従来機能の変更 25
3.9 割込み管理機能
ATA_ISR
割込みサービスルーチンの追加(静的API,アクセス許可指定)cra_isr
割込みサービスルーチンの生成(アクセス許可指定)acra_isr
割込みサービスルーチンの生成(ID番号自動割付け,アクセス許可指定)【静的 API】
ATA_ISR ( { ATR isratr, VP_INT exinf, INTNO intno, FP isr }, ACVCT acvct ) ;
【 C言語 API】
ER ercd = cra_isr ( ID isrid, T_CISR *pk_cisr, ACVCT *p_acvct ) ; ER_ID isrid = acra_isr ( T_CISR *pk_cisr, ACVCT *p_acvct ) ;
【パラメータ】
ID isrid 生成対象の割込みサービスルーチンの ID番号
T_CISR * pk_cisr 割込みサービスルーチン生成情報を入れたパ
ケットへのポインタ(静的 APIではパケットの 内容を直接記述する)
ACVCT acvct 割込みサービスルーチンのアクセス許可ベク
タ pk_cisrの内容( T_CISR型)
ATR isratr 割込みサービスルーチン属性
VP_INT exinf 割込みサービスルーチンの拡張情報
INTNO intno 割込みサービスルーチンを付加する割込み番
号
FP isr 割込みサービスルーチンの起動番地
(実装独自に他の情報を追加してもよい)
【リターンパラメータ】
cra_isrの場合
ER ercd 正常終了( E_OK)またはエラーコード acra_isrの場合
ER_ID isrid 生成した割込みサービスルーチンの ID番号(正
の値)またはエラーコード
【エラーコード】
E_ID 不正 ID番号( isridが不正あるいは使用できない)
E_NOID ID 番号不足(割付け可能な割込みサービスルーチン ID
がない)
E_RSATR 予約属性( isratrが不正あるいは使用できない)
E_PAR パラメータエラー( pk_cisr, intno, isr, p_acvct, acvct が不正)
E_OBJ オブジェクト状態エラー(対象割込みサービスルーチン
が登録済み)
【機能】
isridで指定される ID番号を持つ割込みサービスルーチンを, pk_cisrで指定さ れる割込みサービ スルーチン生成情報に 基づいて生成する. ATT_ISR/ cre_isr/ acre_isrとの違いは,生成する割込みサービスルーチンに, acvctで 指定されるアクセス許可ベクタを設定することのみである.
sac_isr
割込みサービスルーチンのアクセス許可ベクタの変更【 C言語 API】
ER ercd = sac_isr ( ID isrid, ACVCT *p_acvct ) ;
【パラメータ】
ID isrid 変更対象の割込みサービスルーチンの ID番号
ACVCT acvct 割込みサービスルーチンのアクセス許可ベク
タ
【リターンパラメータ】
ER ercd 正常終了( E_OK)またはエラーコード
【エラーコード】
E_ID 不正 ID番号( isridが不正あるいは使用できない)
E_PAR パラメータエラー( p_acvct, acvctが不正)
E_NOEXS オブジェクト未生成(対象割込みサービスルーチンが未
登録)
【機能】
isridで指定される割込みサービスルーチンに対するアクセス許可ベクタを,
acvctで指定されるアクセス許可ベクタに設定する.
ref_isr
割込みサービスルーチンの状態参照【 C言語 API】
ER ercd = ref_isr ( ID isrid, T_RISR *pk_risr ) ;
【パラメータ】
ID isrid 状態参照対象の割込みサービスルーチンの ID
番号
T_RISR * pk_risr 割込みサービスルーチン状態を返すパケット
へのポインタ
【リターンパラメータ】
ER ercd 正常終了( E_OK)またはエラーコード pk_risrの内容( T_RISR型)
ACVCT acvct 割込みサービスルーチンのアクセス許可ベク
タ
(実装独自に他の情報を追加してもよい)
【エラーコード】
E_ID 不正 ID番号( isridが不正あるいは使用できない)
E_PAR パラメータエラー( pk_risrが不正)
E_NOEXS オブジェクト未生成(対象割込みサービスルーチンが未
登録)
【機能】
isridで指定される割込みサービスルーチンに関する状態を参照し, pk_risrで 指定されるパケットに返す. µITRON4.0仕様との違いは, acvctに対象割込み サービスルーチンのアクセス許可ベクタを返すことのみである.