__irq

__irq キーワードは、C 関数または C++ 関数を、割り込みルーチンとして使用可能にします。

__irq は、関数修飾子です。これは、関数の型に影響します。

Show/hide制限

浮動小数点を除き、破壊されたレジスタは、AAPCS で通常保持されるものだけではなくすべて保持されます。この場合はデフォルトの AAPCS モードを使用する必要があります。

__irq 関数で引数や戻り値を使用することはできません。

ARMv6-M と ARMv7-M 以外のアーキテクチャでは、この関数からは、プログラムカウンタに lr-4 を、CPSRSPSR の値を設定することで終了できます。

Note

ARMv6-M と ARMv7-M では、__irq を指定してもコンパイルされる出力の動作に影響を与えません。ただし、ソフトウェアの移植を明確、かつ容易にするために例外ハンドラで __irq を使用することを推奨します。

Note

  • ARMv6T2、ARMv7-A、ARMv7-R など、ARM および 32 ビット Thumb をサポートするアーキテクチャの場合、__irq と指定されている関数は、コンパイルオプションまたは #pragma が ARM または Thumb を指定するかどうかに応じて ARM または Thumb コードにコンパイルされます。

  • ARMv6-M、ARMv7-M など、Thumb のみのアーキテクチャの場合、__irq と指定される関数は Thumb コードにコンパイルされます。

  • ARMv6T2 以前のアーキテクチャの場合、__irq と指定される関数は、--thumb#pragma thumb を使用してコンパイルしても ARM コードにコンパイルされます。

Show/hide関連項目

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0491EJ
Non-ConfidentialID081711