Previous: 8.2. スタックオーバーフローの検知 |
Up: 8.2. スタックオーバーフローの検知 |
Next: 8.2.2. スタックオーバーフローのフック |
スタックの残り領域を表示するためには、uxTaskGetStackHighWaterMark関数を使用します。
関数名 |
uxTaskGetStackHighWaterMark関数 |
|
関数プロトタイプ |
unsigned portBASE_TYPE ? uxTaskGetStackHighWaterMark( xTaskHandle xTask ) |
|
動作 |
タスク開始からこの関数の実行時点まででスタック領域の残量がもっとも少なくなったときのその残量を確認して返します。 |
|
引数 |
xTask |
確認する対象のタスクのハンドラ。NULLを指定するとこの関数を実行したタスクを確認対象とします。 |
戻り値 |
動作の説明参照 |
uxTaskGetStackHighWaterMark関数を使用するためには、FreeRTOSConfig.h中のマクロINCLUDE_uxTaskGetStackHighWaterMarkが1に定義されている必要があります。
このサンプルプログラムは割込みを利用して100ms毎にタスクの割込み処理用タスクを実行しています。そしてuxTaskGetStackHighWaterMark関数を利用してその割込み処理用タスクのスタック領域残量を取得し、表示させています。
cprintf("Handler task called.\r\n"); Print_Decimal(uxTaskGetStackHighWaterMark(NULL)); cprintf(" stack spaces available.\r\n"); |
Previous: 8.2. スタックオーバーフローの検知 |
Up: 8.2. スタックオーバーフローの検知 |
Next: 8.2.2. スタックオーバーフローのフック |