#pragma interrupt

こんにちは、やなと申します。

ハードウェア割り込みハンドラにつきましてご質問させていただきます。

開発環境は以下の通りです。

・統合開発環境:CS+(V8.05.00)

・コンパイラ:CC-RL(V1.10.00)

現在コーディングの作業をしており実機での動作確認が出来ない為、相談させてください。

下記2つのコードがあれば割り込みが発生するのでしょうか?

また、CS+のコード生成では割り込み関数のプロトタイプ宣言のコードがないようですが、「#pragma interrupt 関数名(vect=ベクタ番号)」がその代わりをしているのでしょうか?

#pragma interrupt 関数名(vect=ベクタ番号)

void 関数名(void)

{

    /* 省略 */

}

以上、よろしくお願い致します。

 

  • チョコです。

    >下記2つのコードがあれば割り込みが発生するのでしょうか?

    割り込みを発生するのはあくまでハードウェアです。これはハードウェアが発生した割り込みをソフトウェアで処理するためのものです。

    >また、CS+のコード生成では割り込み関数のプロトタイプ宣言のコードがないようですが、「#pragma interrupt 関数名(vect=ベクタ番号)」が>その代わりをしているのでしょうか?

    割り込み関数はハートウェアで起動されるだけで、プログラムから呼び出すことはないので、通常のプロトタイプ宣言はありません。

    「#pragma interrupt ***」で割り込み要因とそれを処理する関数が関連付けされるだけで充分です。なお、割り込み関数はプログラムから呼び出されないように関数の頭に「static void __near 」がついて宣言されます。

    例えば、TM12の割り込みの宣言部は以下の例のように宣言します。コード生成では、(vect=INTTM12)だけしか生成されませんが、CC-RLでは、それ以外に使用するレジスタ・バンクを指定したり、多重割り込みを許可するかも指定できます。

    #pragma interrupt r_tau1_channel2_interrupt(vect=INTTM12,bank=RB2,enable=true)

    また、これに対応した割り込み処理関数は以下の例のようになります。

    static void __near r_tau1_channel2_interrupt(void)
    {

      ここに処理内容が記述される

    }

    >現在コーディングの作業をしており実機での動作確認が出来ない為、相談させてください。

    RL78には、システムシミュレータが準備されているので、CS+CC-RLの環境ではほとんどのRL78では、実機がなくてもある程度の確認は行うことが可能です。

  • やなです。

    ①下記2つのコードがあれば割り込みが発生するのでしょうか?

    >割り込みを発生するのはあくまでハードウェアです。これはハードウェアが発生した割り込みをソフトウェアで処理するためのものです。

    →理解致しました。

    ②また、CS+のコード生成では割り込み関数のプロトタイプ宣言のコードがないようですが、「#pragma interrupt 関数名(vect=ベクタ番号)」がその代わりをしているのでしょうか?

    >割り込み関数はハートウェアで起動されるだけで、プログラムから呼び出すことはないので、通常のプロトタイプ宣言はありません。

    >「#pragma interrupt ***」で割り込み要因とそれを処理する関数が関連付けされるだけで充分です。なお、割り込み関数はプログラムから呼び>出されないように関数の頭に「static void __near 」がついて宣言されます。

    >例えば、TM12の割り込みの宣言部は以下の例のように宣言します。コード生成では、(vect=INTTM12)だけしか生成されませんが、CC-RLで

    >は、それ以外に使用するレジスタ・バンクを指定したり、多重割り込みを許可するかも指定できます。

    >#pragma interrupt r_tau1_channel2_interrupt(vect=INTTM12,bank=RB2,enable=true)

    >また、これに対応した割り込み処理関数は以下の例のようになります。

    >static void __near r_tau1_channel2_interrupt(void)
    >{

    >  ここに処理内容が記述される

    >}

    →具体的に説明していただきありがとうございます。

     理解することが出来ました。

    現在コーディングの作業をしており実機での動作確認が出来ない為、相談させてください。

    >RL78には、システムシミュレータが準備されているので、CS+CC-RLの環境ではほとんどのRL78では、実機がなくてもある程度の確認は>行うことが可能です。

    →こちらの調査不足でした。申し訳ございません。

     

    初歩的な内容にご回答いただきありがとうございます。