タスク制御用補助関数の使い方


タスク制御をするために用意された補助機能の関数です。

【タスク制御用マクロ命令】

割り込みの制御用マクロ
マクロ名 機能と書式
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_SUSPENDED
uxTaskGetNumberOfTasks 現在生成されているタスクの数を返す。削除されていても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' = suspended 
vTaskStartTrace 実行中タスクのトレースをバッファに出力する、バッファフルで中止
(旧バージョンの互換用で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 クリティカル領域を終了する



目次に戻る