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


Previous: 3.9. 優先度の取得

Up: 3. タスク管理

Next: 3.11. タスクの削除(自身の削除)


マイコン徹底入門:RTOS編:フリーのリアルタイムOS活用法: 3. タスク管理:

3.10. タスクの削除(他のタスク)

サンプルプログラム

freertos_task_delete

 タスクを登録した後、そのタスクによる処理が不要になったのであれば、タスクを削除することにより、CPUの処理能力を空けたり、RAMに余裕を持たせたりすることができます。タスクを削除するために使用するのが、vTaskDelete関数です。

関数名

vTaskDelete関数

関数プロトタイプ

void vTaskDelete( xTaskHandle pxTask )

動作

タスクを削除します。

引数

pxTask

削除する対象のタスクのタスクハンドラを指定します。NULLを指定するとこの関数を実行したタスクを指定したことになります。

戻り値

無し。

 サンプルプログラムの実行結果は以下の通りです。

ABBBBBBBBBBBCCCCCCCCCCCCBBBBBBBBBBBCCCCCCCCCCCCACCCCCCCC

CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCA

 サンプルプログラムではまずTaskAvTaskDelay関数を実行して4Tick分待っています。その間、次順位の優先度を持つTaskBTaskCが実行されるため、”B””C”が交互に表示されます。

cprintf(pcTaskName);

vTaskDelay(4);

 次にTaskBvTaskDelete関数で削除しています。そのためvTaskDelete関数で待つと、TaskCによって、”C”のみが表示されます。

cprintf(pcTaskName);

vTaskDelete(xTaskBHandle);

vTaskDelay(4);

 最後に、TaskCTaskA自身を削除しています。そのためカーネル上はIdleタスクのみとなるため、ターミナルには何も表示されなくなります。

cprintf(pcTaskName);

vTaskDelete(xTaskCHandle);

vTaskDelete(NULL);


Previous: 3.9. 優先度の取得

Up: 3. タスク管理

Next: 3.11. タスクの削除(自身の削除)


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