__task
このセクションの内容:
構文
関数で使用される型属性の構文を参照してください。
説明
このキーワードを使用すると、関数でのレジスタ保護の規則を緩和できます。通常、このキーワードは、RTOSでのタスクの開始関数で使用されます。
デフォルトでは、関数は使用された保護レジスタの内容を入口でスタックに保存し、出口で復元します。__taskを使用して宣言された関数の場合、レジスタを保存しないため、必要なスタックエリアが小さくなります。
__taskを使用して宣言された関数は、呼び出し元関数で必要とされるレジスタを壊す可能性があるため、__taskを使用するのは、リターンしない関数やアセンブラコードからの呼び出す関数のみにする必要があります。
関数mainは、アプリケーションから明示的に呼び出される場合を除き、__taskを使用して宣言されるのが普通です。複数のタスクを持つリアルタイムアプリケーションにおいては、通常、それぞれのタスクのルート関数が__taskを使用して宣言されます。
例
__task void my_handler(void);