メインページ | モジュール | 名前空間一覧 | クラス階層 | 構成 | ファイル一覧 | 名前空間メンバ | 構成メンバ | ファイルメンバ | 関連ページ

クラス テンプレートtoppers::isr< Id, Diagnostics, Stub > の解説
[カーネルオブジェクト管理]

割込みサービスルーチンの機能をカプセル化したテンプレートクラス [詳細]

#include <toppers/interrupt.hpp>

すべてのメンバ一覧

Public 型

typedef t_cisr creation
 生成情報パケット型

typedef t_risr reference
 状態参照情報パケット型

typedef isr_body< Diagnostics,
Stub > 
body
 ボディクラス


Public メンバ関数

コンストラクタ
 isr ()
 デフォルトコンストラクタ

 isr (ID id)
 ID番号指定のコンストラクタ.

template<ID Id2, class Diagnostics2, class Stub2>  isr (const isr< Id2, Diagnostics2, Stub2 > &other)
 テンプレート引数違いの変換コンストラクタ

生成と削除
ER create (const creation *pk_cobj)
 割込みサービスルーチンの生成

ER create (ATR isratr, VP_INT exinf, INTNO intno, void(*entry)(VP_INT))
 割込みサービスルーチンの生成(個別のフィールド指定)

template<class Body> ER create (ATR isratr, VP_INT exinf, INTNO intno)
 割込みサービスルーチンの生成(ボディ指定)

ER destroy ()
 割込みサービスルーチンの削除

状態参照
ER refer (reference *pk_robj) const
 割込みサービスルーチンの状態参照


フレンド

ID get_unsafe_id (const isr< Id, Diagnostics, Stub > &obj)
 割込みサービスルーチンID番号の取得


解説

template<ID Id = 0, class Diagnostics = TOPPERS_DEFAULT_DIAGNOSTICS, class Stub = TOPPERS_DEFAULT_STUB>
class toppers::isr< Id, Diagnostics, Stub >

  isr テンプレートクラスは割込みサービスルーチンに対する操作をカプセル化している。
task 等と同様、ハンドラ内の処理はisr_body テンプレートクラスの派生クラスとして 記述する必要がある。

参照:
isr_body isr_entry interrupt interrupthandler