Skip to main content

IAR Embedded Workbench for Arm 9.70.x

__get_interrupt_state

このセクションの内容:
構文
__istate_t __get_interrupt_state(void);
説明

32ビットモード:

グローバル割り込み状態を返します。リターン値は、__set_interrupt_state組み込み関数の引数として使用して、割り込み状態を復元することができます。

この組み込み関数は、特権モードでのみ使用でき、--aeabiコンパイラオプションを使用している場合は使用できません。

64ビットモード:

DAIF システムレジスタの下位4ビット(__istate_t は unsigned long long)を返します。

#include "intrinsics.h"

void CriticalFn()
{
  __istate_t s = __get_interrupt_state();
  __disable_interrupt();

  /* Do something here. */

  __set_interrupt_state(s);
}

__disable_interrupt__enable_interruptを使用する場合と比べ、このコードシーケンスを使用する利点は、この例の場合では、__get_interrupt_stateの呼び出し前に無効化された割り込みを有効化することがないことです。

注記

アプリケーションで組込み関数を使用するには、宣言するヘッダファイルを含める必要があります。組み込み関数の概要を参照してください。