Skip to main content

IAR Embedded Workbench for Arm 9.70.x

__task

このセクションの内容:
構文

関数で使用される型属性の構文を参照してください。

説明

このキーワードを使用すると、関数でのレジスタ保護の規則を緩和できます。通常、このキーワードは、RTOSでのタスクの開始関数で使用されます。

デフォルトでは、関数は使用された保護レジスタの内容を入口でスタックに保存し、出口で復元します。__taskを使用して宣言された関数の場合、レジスタを保存しないため、必要なスタックエリアが小さくなります。

__taskを使用して宣言された関数は、呼び出し元関数で必要とされるレジスタを壊す可能性があるため、__taskを使用するのは、リターンしない関数やアセンブラコードからの呼び出す関数のみにする必要があります。

関数mainは、アプリケーションから明示的に呼び出される場合を除き、__taskを使用して宣言されるのが普通です。複数のタスクを持つリアルタイムアプリケーションにおいては、通常、それぞれのタスクのルート関数が__taskを使用して宣言されます。

__task void my_handler(void);