Top -> FreeRtos -> idle-hook.html
フック関数
[More Advanced]

アイドル・フック関数
アイドル・タスクはオプションとしてアプリケーションによって定義されたフック(あるいは callback)を関数アイドル状態のタスクはオプションとしてアプリケーションによって定義されたフック(あるいは callback)関数を呼ぶことができます − アイドル・フック。 アイドル状態のタスクは最も低い優先度で走ります、実行可能なより高い優先度のタスクがないときだけアイドルフック関数は実行できる。 これはアイドル・フック関数をプロセッサをローパワー状態に入れる理想的な場所にします − 実行すべき処理がないときは自動的に電源節約を行う。
もし configUSE_IDLE_HOOK が FreeRTOSConfig.h の中で1にセットされるだけで、アイドル・フックはコールされるようになる。 これがセットされると共に、アプリケーションは次のプロトタイプをフック関数に提供しなくてはなりません:
void vApplicationIdleHook(void );
アイドル・タスクが走っている限り、アイドル・フックは繰り返してコールされます。 アイドル状態のホック関数がそれをブロックさせることが得た API 関数を呼び出さないことは最高です。 同じく、もしアプリケーションが vTaskDelete () API 関数を利用するなら、 アイドル状態のタスクフックは周期的にリターンすることを可能にされなくてはなりません(これはアイドル状態のタスクがデリートされたタスクにカーネルによって割り当てられたリソースをクリーンアップすることに責任があるからです)。
チック・フック関数
tick interrupt はオプションとして application defined フック(あるいは callback)を関数 − tick フックと呼ぶことができます。 tick hook はタイマ機能性を実装する都合が良い場所を提供します。
もし configUSE_TICK_HOOK が FreeRTOSConfig.h の中で1にセットされだけで、 tick hook はコールされるようになる。 これがセットするとき、アプリケーションは次のプロトタイプをフック関数に用意しなくてはなりません:
void vApplicationTickHook(void);
vApplicationTickHook() は ISR の中から実行します、従って非常に短く組み、スタックの使用は最小にしなくてはなりません、そして「FromISR」あるいは「FROM_ISR」で終わらない API 関数を呼び出してはいけません。
デモアプリケーションファイル crhook.c を見てください。
tick hook を使用方法の例。 − アイドル・フックと呼ぶ。 アイドル・タスクは最も低い優先度で走ります、ここで実行が可能なより高い優先権のタスクがないとき、このようなアイドル・フック関数が実行される。 これはアイドル・フック関数をプロセッサをローパワーの状態に入れる理想的な場所にします − 実行すべき処理がないときはいつでも、自動的な電源節約を実行します。
もし configUSE_IDLE_HOOK が FreeRTOSConfig.h の中で1にセットされるなら、アイドル・フックはコールされるようになる。 これをセットするとき、アプリケーションは次のプロトタイプをフック関数に提供しなくてはなりません:
void vApplicationIdleHook(void);
アイドル・タスクが走っている限り、アイドル・フックは繰り返してコールされます。 アイドル・フック関数がそれをブロックさせるAPI 関数を呼び出さないことは最高です。 同じく、もしアプリケーションが vTaskDelete () API 関数を利用する場合、アイドル・タスク・フックは周期的にリターンしなくてはなりません(これはアイドル・タスクがデリートされたタスクのカーネルによって割り当てられたリソースをクリーンアップする責を追っているからです)。

チック・フック関数
チック割り込みはオプションとして アプリケーション定義のフック(あるいは callback)関数 − チック フックと呼びます。 チックフックはタイマ機能を実装するに都合良い場所を提供します。もし configUSE_TICK_HOOK が FreeRTOSConfig.h の中で1にセットされるなら、 チックフックはコールされるようになる。 これがセットされるとき、アプリケーションは次のプロトタイプをフック関数に用意しなくてはなりません:
void vApplicationTickHook(void );
vApplicationTickHook() が ISR の中から実行しますので、できる限り短くして、また多くのスタックを消費してはならない、そして「FromISR」あるいは「FROM_ISR」で終わらない API 機能を呼び出してはいけない。
チックフックの使用法はデモアプリケーションファイル crhook.c を見てください。