割込み管理 -tISR

割込みサービスルーチン(割込み処理関数)を登録して、割込み発生時に呼び出す機能です。

課題

to be filled in

使用方法

割込みの生成

アプリケーション開発者は tISR セルタイプのセルを生成することにより、割込みを生成することができます。次の例では MyISR という名前の割込みセルを生成し、 MyCelleISRBody をメインルーチンとして結合しています。

app.cdl
celltype tMyCellType {
    entry sHandlerBody eISRBody;
};

cell tMyCellType MyCell {};

cell tISR MyISR {
    cBody = MyCell.eISRBody;
    category = 2;
    priority = 15;
    entryNumber = 48;
    interruptsource ="ENABLE";
};
tMyCellType.c
void eISRBody_main(CELLIDX idx)
{
}

リファレンス

セルタイプ

celltype tISR

割込みの生成を行うコンポーネントです。

attr char_t * name = C_EXP("$cell$")

割込みの名前を指定します。 指定しない場合、セルの名前が使用されます。

attr uint32_t category

割込みのカテゴリを指定します。

1

カテゴリ1ISR(C11SR) OSのコードを経由せずに高速に呼び出される 割込み制御関連以外のOSのシステムサービスを呼び出せない C11SRは,C21SRよりも割込み優先度が高い

2

カテゴリ2ISR(C21SR) OSのコードを経由して呼び出される OSのサービスを呼び出せる

attr uint32_t priority

割込みの優先度を指定します。

attr uint32_t entryNumber

割込み番号を指定します。

attr char_t * interruptsource

割込み要因の初期状態を指定します。 SC3、SC4のみで使用可能です。 categoryに1を指定した場合に、本パラメータにDISABLEを指定した場合、ジェネレータはエラーを検出します。 SC3、SC4で本パラメータを省略した場合、ジェネレータはエラーを検出します。

ENABLE

有効

DISABLE

無効

attr char_t * resource

割込みが獲得するリソースを選択します(複数選択可能)。

シグニチャ

signature sHandlerBody

割込みハンドラを呼び出すためのシグニチャです。

void main(void)