8.2.1. スタック領域残量の確認

マイコン入門spacer ad
トップページに戻る(マイコン徹底入門:STM32で始めるARM/Cortex-M3組み込み開発)
「マイコン徹底入門」とは? |  「マイコン徹底入門」を読む |  ダウンロード |  掲示板 |  筆者の自己紹介


Previous: 8.2. スタックオーバーフローの検知

Up: 8.2. スタックオーバーフローの検知

Next: 8.2.2. スタックオーバーフローのフック


マイコン徹底入門:RTOS編:フリーのリアルタイムOS活用法: 8. メモリ管理: 8.2. スタックオーバーフローの検知:

8.2.1. スタック領域残量の確認

 スタックの残り領域を表示するためには、uxTaskGetStackHighWaterMark関数を使用します。

関数名

uxTaskGetStackHighWaterMark関数

関数プロトタイプ

unsigned portBASE_TYPE

? uxTaskGetStackHighWaterMark( xTaskHandle xTask )

動作

タスク開始からこの関数の実行時点まででスタック領域の残量がもっとも少なくなったときのその残量を確認して返します。

引数

xTask

確認する対象のタスクのハンドラ。NULLを指定するとこの関数を実行したタスクを確認対象とします。

戻り値

動作の説明参照

 uxTaskGetStackHighWaterMark関数を使用するためには、FreeRTOSConfig.h中のマクロINCLUDE_uxTaskGetStackHighWaterMark1に定義されている必要があります。

 このサンプルプログラムは割込みを利用して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. スタックオーバーフローのフック


このページはITと知的財産の法律情報「法務ネット」の管理人が制作・運営しています。