Top -> FreeRtos -> tickhook.html
フック関数
[More Advanced]
アイドル・フック関数
アイドル・タスクはオプションとしてアプリケーションによって定義されたフック(あるいは callback)関数(アイドル・フック)を呼ぶことができます。 アイドル・タスクは最も低い優先度で走ります、従って、実行可能なより高い優先度のタスクがない時のみ、このようなアイドル・フック関数は実行される。 これはアイドル・フック関数が、プロセッサをローパワーの状態にする理想的な場所です。(実行すべき処理がないときはいつでも、自動的に電源節約モードに移行します。)
configUSE_IDLE_HOOK が FreeRTOSConfig.h で1にセットした時のみ、アイドル・フックはコールされる。 これがセットされる時、アプリケーションは次に示すプロトタイプのフック関数を提供しなくてはなりません:
void vApplicationIdleHook(void);
アイドル・タスクが走っている限り、アイドル・フックは繰り返しコールされます。 アイドル・フック関数は自身をブロック状態にするAPI 関数をコールしないことはパラマウントです。
同じく、もしアプリケーションが vTaskDelete () API 関数を利用するなら、アイドル・タスクフックは周期的にreturnすることを可能にしなくてはなりません(これはアイドル・タスクがデリートされたタスクのカーネルによって割り当てられたリソースをクリーンアップする責任があるからです)。

システム時計(Tick)フック関数
チック割り込みはオプションとしてアプリケーションによって定義されたフック(あるいは callback)関数(チック・フック)を呼ぶことができます。 チック・フックはタイマ機能を実施するのに好都合です。
configUSE_TICK_HOOK が FreeRTOSConfig.h で1にセットした時のみ、チック・フックはコールされる。 これがセットされるとき、アプリケーションは次に示すプロトタイプのフック関数を提供しなくてはなりません:

void vApplicationTickHook(void);
vApplicationTickHook()は、ISRの中なので非常に短く実行する必要があります、そしてスタックの使用は最小限にし、また「FromISR」あるいは「FROM_ISR」で終わらない API 機能を呼び出してはならない。
チック・フックをどのように使うかの例はデモアプリケーションファイル crhook.c を見てください。
[More Advanced]