タスク制御をするために用意された補助機能の関数です。
【タスク制御用マクロ命令】
割り込みの制御用マクロ
マクロ名 機能と書式 taskDISABLE_INTERRUPTS 全割り込みを禁止する taskENABLE_INTERRUPTS 割り込みを許可する
【タスク制御用補助関数】
タスクユーティリティとして用意されているマクロ
関数名 機能と書式 xTaskGetCurrentTaskHandle 現在の実行中タスクのハンドルを返す
《インクルード》 #define INCLUDE_xTaskGetCurrentTaskHandle 1
《書式》
xTaskHandle xTaskGetCurrentTaskHandle(void);xTaskGetTickCount スケジュールを開始してからのTickのカウント値を返す
《書式》
volatile portTickType xTaskGetTickCount(void);xTaskGetSchedulerState スケジューラの状態を返す
《書式》
portBASE_TYPE xTaskGetSchedulerState(void);
戻り値:下記のいずれか
taskSCHEDULER_NOT_STARTED
taskSCHEDULER_RUNNING
taskSCHEDULER_SUSPENDEDuxTaskGetNumberOfTasks 現在生成されているタスクの数を返す。削除されていてもFreeにされていないタスクも含む
《書式》
unsigned portBASE_TYPE uxTaskGetNumberOfTasks(void);vTaskList 現在のタスク状態のリストをバッファに出力する
《インクルード》
#define configUSE_TRACE_FACILITY 1
#define INCLUDE_vTaskDelete 1
#define INCLUDE_vTaskSuspend 1
《書式》
void vTaskList(portCHAR *pcWriteBuffer);
pcWriteBuffer:出力バッファ タスク当り40バイト必要
'B' = blocked 'R' = ready 'D' = deleted
'S' = suspendedvTaskStartTrace 実行中タスクのトレースをバッファに出力する、バッファフルで中止
(旧バージョンの互換用でTrace Hook Macrosが新規)
《書式》
void vTaskStartTrace(portCHAR *pcBuffer,
unsigned portLONG ulBufferSize);
pcBuffer :トレースを出力するバッファ
ulBufferSize :バッファのサイズバイトulTaskEndTrace タスクトレースを終了する
《書式》
unsigned portLONG usTaskEndTrace(voi);
戻り値:バッファに書き込まれているサイズバイトvTaskSetApplicationTaskTag タスクにタグ名を付ける。タグ名はアプリのみが使用可能
《インクルード》 #define configUSE_APPLICATION_TASK_TAG 1
《書式》
void vTaskSetApplicationTaskTag(xTaskHandler xTask,
pdTASK_HOOK_CODE pxTagValue);
xTask :タスクのハンドル値 NULLで呼び出し元タスク
pxTagValue:タグ名xTaskCallApplicationTaskHook フック時、タスクにタグを出力するように指定する
《インクルード》 #define configUSE_APPLICATION_TASK_TAG 1
《書式》
portBASE_TYPE xTaskCallApplicationTaskHook(xTaskHandle xTask,
void *pvParameter);
xTask :タスクのハンドル値
pvParameter :フック関数へのパラメータ
【協調型の場合の補助関数】
協調型でFreeRTOSを使った場合にタスクを制御するために用意された
マクロ命令とAPI関数です。
マクロ名 機能と書式 taskYIELD コンテキストを強制的に切り替えるマクロ taskENTER_CRITICAL クリティカルな領域であることを指定する。この領域ではコンテキストの切替は行われない taskEXIT_CRITICAL クリティカル領域を終了する
目次に戻る