割り込み制御用関数


【概要】

使用する割り込みの種類指定と、割り込みの許可禁止を制御する関数群です。


【全体割り込み制御用関数一覧】

主な割り込み制御用の関数およびマクロ命令には下記のようなものが含まれます。

関数、マクロ名 機能内容
INTEnableSystemMultiVectoredInt ベクタ方式割り込みを許可する
《書式》
  void INTEnableSystemMultiVectoredInt(void);
INTEnableSystemSingleVectordInt 単一ベクタ割り込みを許可する
《書式》
  void INTEnableSystemSingleVectordInt(void);
INTDisableInterrupts
INTEnableInterrupts
全体割り込みを禁止、許可
《書式》
  unsigned int INTDisableInterupts(void);
   戻り値:直前のCP0レジスタの値
INTRestoreInterrupts 全体割り込み状態(CP0レジスタ)を元に戻す
《書式》
  void INTRestoreInterrupts(unsigend int status);
    status :設定する割り込み指定(0=禁止、1=許可)
《使用例》
  unsigned int status;
  status = INTEnableInterrupts();
  ------(他の処理)
  INTRestoreInterrupts(status); 
INTGetPendingInterrupt 次の優先順の処理待ちの割り込み種別を返す
《書式》
  unsigned int INTGetPendingInterrupt(void);
    戻り値: 割り込み種類(下表参照)
《使用例》
  unsigned int int_num;
  while(int_num = INTGetPendingInterrupt())
  {
    (int_numに対応する割り込み処理)
  }
INTClearFlag
INTSetFlag
INTGetFlag
指定した割り込みベクタの割り込みフラグのセット、リセット、状態取得
《書式》
   void INTClearFlag(INT_SOURCE source);
   unsigned int INTGetFlag(INT_SOURCE source);
     source :割り込み種別指定(下表による)
《使用例》
   unisgned int flag;
   flag = INTGetFlag(INT_CT);
INTEnable
INTGetEnable
指定した割り込みの許可、禁止をする、状態を取得する
《書式》
  void INTEnable(INT_SOURCE source, unsigned int enable);
  unsigned int INTGetEnable(INT_SOURCE source);
    souce :割り込み種別指定(下表による)
    enable :0=禁止、 1=許可
    戻り値 :0=禁止、 1=許可
《使用例》
   INTEnable(INT_CT, 1);
INTSetPriority
INTGetPriority
指定割り込み種別の優先レベル設定
《書式》
  void INTSetPriority(INT_SOURCE source, unsigned int priority);
  unsigned int INTGetPriority(INT_SOURCE source);
    source :割り込み種別(下表による)
    priority  :優先レベル(0〜7)
《使用例》
  INTSetPriority(INT_CT, INT_PRIORITY_LEVEL_2);
INTSetSubPriority
INTGetSubPriority
指定割り込み種別のサブ優先レベルの設定
《書式》
  void INTSetPriority(INT_SOURCE source, unsigned int subPriority);
  unsigned int INTGetSubPriority(INT_SOURCE source);
    source :割り込み種別指定(下表による)
    subPriority :0〜3
    戻り値   :0〜3

上記関数で使用する割り込み種別指定(source)の記号は下記となっています。

      【ベクタ記号】                【指定される割り込み種別】







【周辺モジュール割り込み制御用関数】
周辺モジュールの割り込みの許可、禁止などの制御用の関数、マクロ命令です。
XXの部分で周辺モジュールを指定します。

関数、マクロ名 機能内容
mXXIntEnable XXモジュールの割り込みの許可禁止の制御(XXは下表による)
《書式》
  void mXXIntEnable(unsigned int enable);
    enable :割り込み制御(0=禁止、 1=許可)
《使用例》
  mINT1IntEnable(1);
mXXClearIntFlag 指定周辺モジュールの割り込みフラグをクリアする
《書式》
  void mXXClearIntFlag(void);
mXXGetIntFlag 指定周辺モジュールの割り込みフラグの現在値を取得する
《書式》
  unsigned int mXXGetIntFlag(void);
mXXSetIntPriority 指定周辺モジュールの割り込み優先レベルを指定する
《書式》
   void mXXSetIntPriority(unsigned int priority);
     priority :0〜7の優先レベル値
mXXGetIntPriority 指定周辺モジュールの割り込み優先レベル現在値を取得する
《書式》
  unisgned int mXXGetIntPriority(void);
    戻り値: 0〜7の優先レベル値
mXXSetIntSubPriority 指定周辺モジュールのサブ優先レベルを設定する
《書式》
   void mXXSetIntSubPriority(unsigned int subPriority);
     subPriority :サブ優先レベル(0〜3)
mXXGetIntSubPriority 指定周辺モジュールのサブ優先レベル値を取得する
《書式》
  unsigned int mXXGetIntSubPriority(void);

 上表のXX部は指定する周辺モジュールにより下記の記号に置きかえて使う。

       略 号                 指定される割り込み種別







【ソフトウェア割り込み制御関数】

ソフトウェアにより割り込みを発生させることができます。これを制御する関数
が下記となります。

関数・マクロ名 機能内容
mConfigIntCoreSW0
mConfigIntCoreSW1
コアのソフトウェア割り込みの許可禁止、割り込みレベルを設定する
《書式》
  void mConfigIntCoreSW0(config);
    config :下記で指定(OR可)
  @ CSW_INT_ON、 CSW_INT_OFF
  A CSW_INT_PRIOR_0 〜 CSW_INT_PRIOR_7
  B CSW_INT_SUB_PRIOR_0 〜 CSW_INT_SUB_PRIOR_7
《使用例》
  mConfigIntCoreSW0((CSW_INT_ON | CSW_INT_PRIOR_3 |
                CSW_INT_SUB_PRIOR_0));
mEnableIntCoreSW0
mEnableIntCoreSW1
mDisableIntCoreSW0
mDisableIntCoreSW1
コアのソフトウェア割り込みの許可、禁止制御
《書式》
  void mDisableIntCoreSW0(void)
mSetPriorityIntCoreSW0
mSetPriorityIntCoreSW1
コアのソフトウェア割り込みの優先レベルの設定
《書式》
  void mSetPriorityIntCoreSW0(priority);
    priority :割り込み優先レベル
          CSW_INT_PRIOR_0 〜 CSW_INT_PRIOR_7
SetCoreSW0
SetCoreSW1
コアのソフトウェア割り込みの生成(割り込みを発生する)
《書式》
  void SetCoreSW0(void);
ClearCoreSW0
ClearCoreSW1
コアのソフトウェア割り込み生成のリセット
《注意》
  これとが別に割り込みフラグのリセットを行う必要がある


【使用例】










目次に戻る