FreeRTOS V9.0.0 の各APIについて一言で説明してみました。
命名規則
先頭文字 | コメント |
---|---|
pc | 戻り値が char * |
pv | 戻り値が void * |
v | 戻り値が void |
ux | 戻り値がUBaseType_t |
x | 戻り値がBaseType_t |
タスクとスケジューラ
API | Comment |
---|---|
portSWITCH_TO_USER_MODE() | Supervisor モードから User モードへ切り替える |
vTaskAllocateMPURegions() | タスクにMemory Protection Unit (MPU) regionsを割り当てる |
xTaskAbortDelay() | タスクを Blocked state に遷移させる |
xTaskCallApplicationTaskHook() | タスクにtaskhookを関連付ける。 |
xTaskCheckForTimeOut() | タスクにタイムアウトを設定、expireしたら Blocked state に遷移させる |
xTaskCreate() | タスクを生成する |
xTaskCreateStatic() | 静的なメモリを使ってタスクを生成する |
xTaskCreateRestricted() | Memory Protection Unit (MPU) restricted task を生成する |
vTaskDelay() | タスクを指定tickだけ Blocked statee に入れる |
vTaskDelayUntil() | タスクをある絶対時刻まで Blocked statee に入れる |
vTaskDelete() | タスクを削除する |
taskDISABLE_INTERRUPTS() | 割り込むを無効にする |
taskENABLE_INTERRUPTS() | 割り込みを有効にする |
taskENTER_CRITICAL() | クリティカルセクションに入る |
taskENTER_CRITICAL_FROM_ISR() | クリティカルセクションに入る |
taskEXIT_CRITICAL() | クリティカルセクションから出る |
taskEXIT_CRITICAL_FROM_ISR() | クリティカルセクションから出る |
xTaskGetApplicationTaskTag() | タスクのタグを取得する |
xTaskGetCurrentTaskHandle() | Running Stateにいるタスクのハンドルを取得する |
xTaskGetIdleTaskHandle() | Idle Stateにいるタスクのハンドルを取得する |
xTaskGetHandle() | 名前を指定して るタスクのハンドルを取得する |
uxTaskGetNumberOfTasks() | タスク数を取得する |
vTaskGetRunTimeStats() | タスクの統計情報を取得する (タスク名、CPU時間、CPU時間の割合) |
xTaskGetSchedulerState() | スケジューラの状態を取得する (開始していない、実行中、サスペンド中) |
uxTaskGetStackHighWaterMark() | タスクの残りスタック量を取得する |
eTaskGetState() | タスクの enumerated type な状態を取得する |
uxTaskGetSystemState() | 複数タスクの詳細な状態を取得する。 |
vTaskGetTaskInfo() | ある一つのタスクの詳細な状態を取得する。 |
pvTaskGetThreadLocalStoragePointer() | タスクの Thread local storage のポインタを取得する |
pcTaskGetName() | タスクの名前を取得する |
xTaskGetTickCount() | タスクが消費したtickcountを取得する |
xTaskGetTickCountFromISR() | タスクが消費したtickcountを取得する |
vTaskList() | タスクの状態を読みやすい形式で表示する |
xTaskNotify() | タスクにNotify (32bitの値)を送る |
xTaskNotifyAndQuery() | タスクにNotify (32bitの値)を送る 以前の値を使う |
xTaskNotifyAndQueryFromISR() | タスクにNotify (32bitの値)を送る 以前の値を使う |
xTaskNotifyFromISR() | タスクにNotify (32bitの値)を送る |
xTaskNotifyGive() | タスクにNotifyを送る 値はインクリメントする |
vTaskNotifyGiveFromISR() | タスクにNotifyを送る 値はインクリメントする |
xTaskNotifyStateClear() | タスクのpending notificationをクリアする。 notification valueはクリアしない |
ulTaskNotifyTake() | タスクにNotifyを送る 値はデクリメントする |
xTaskNotifyWait() | タスクに指定tickcout後にNotifyを送る |
uxTaskPriorityGet() | タスクのプライオリティを取得する |
vTaskPrioritySet() | タスクのプライオリティを設定する |
vTaskResume() | タスクの状態をSuspendからReadyに復帰する |
xTaskResumeAll() | すべてのSuspendのタスクを Activeに復帰する |
xTaskResumeFromISR() | タスクの状態をSuspendからReadyに復帰する |
vTaskSetApplicationTaskTag() | タスクにタグを割り当てる |
vTaskSetThreadLocalStoragePointer() | タスクの Thread local storage のポインタを設定する |
vTaskSetTimeOutState() | タイムアウトの構造体を設定する |
vTaskStartScheduler() | スケジューラを開始する |
vTaskStepTick() | tiklessの場合にtickを進ませる。 |
vTaskSuspend() | タスクをsuspendする |
vTaskSuspendAll() | すべてのタスクをsuspendする |
taskYIELD() | タスクのコンテキストスイッチを強制する |
キュー
API | Comment |
---|---|
vQueueAddToRegistry() | キューに読みやすい名前を割り当てる |
xQueueAddToSet() | キューセットにキューまたはセマフォを追加する |
xQueueCreate() | キューを生成する |
xQueueCreateSet() | キューセットを生成する |
xQueueCreateStatic() | 静的なメモリを使ってキューを生成する |
vQueueDelete() | キューを削除する |
pcQueueGetName() | キューの名前を取得する |
xQueueIsQueueEmptyFromISR() | キューが空かどうか確認する |
xQueueIsQueueFullFromISR() | キューが満杯かどうか確認する |
uxQueueMessagesWaiting() | キューが保持しているアイテム数を取得する |
uxQueueMessagesWaitingFromISR() | キューが保持しているアイテム数を取得する |
xQueueOverwrite() | キューが満杯でも、値を詰め込み上書きする。 |
xQueueOverwriteFromISR() | キューが満杯でも、アイテムを詰め込み上書きする |
xQueuePeek() | キューからアイテムを取り出す、取り出したアイテムはキューにそのまま残す |
xQueuePeekFromISR() | キューからアイテムを取り出す、取り出したアイテムはキューにそのまま残す |
xQueueReceive() | キューからアイテムを取り出す、取り出したアイテムはキューから削除する |
xQueueReceiveFromISR() | キューからアイテムを取り出す、取り出したアイテムはキューから削除する |
xQueueRemoveFromSet() | キューセットからキューまたはセマフォを削除する |
xQueueReset() | キューを空の状態にリセットする |
xQueueSelectFromSet() | キューセットから利用可能なキューまたはセマフォをselectする |
xQueueSelectFromSetFromISR() | キューセットから利用可能なキューまたはセマフォをselectする |
xQueueSend() | キューの最後にアイテムを追加する。 |
xQueueSendToFront() | キューの先頭にアイテムを追加する。 |
xQueueSendToBack() | キューの最後にアイテムを追加する。 |
xQueueSendFromISR() | キューの最後にアイテムを追加する。 |
xQueueSendToFrontFromISR() | キューの先頭にアイテムを追加する。 |
xQueueSendToBackFromISR() | キューの最後にアイテムを追加する。 |
uxQueueSpacesAvailable() | キューの空きサイズを取得する |
セマフォ
API | Comment |
---|---|
vSemaphoreCreateBinary() | バイナリセマフォを生成する [非推奨] |
xSemaphoreCreateBinary() | バイナリセマフォを生成する |
xSemaphoreCreateBinaryStatic() | 静的なメモリを使ってバイナリセマフォを生成する |
xSemaphoreCreateCounting() | カウンティングセマフォを生成する |
xSemaphoreCreateCountingStatic() | 静的なメモリを使ってカウンティングセマフォを生成する |
xSemaphoreCreateMutex() | ミューテックスを生成する |
xSemaphoreCreateMutexStatic() | 静的なメモリを使ってミューテックスを生成する |
xSemaphoreCreateRecursiveMutex() | 再帰ミューテックスを生成する |
xSemaphoreCreateRecursiveMutexStatic() | 静的なメモリを使って再帰ミューテックスを生成する |
vSemaphoreDelete() | セマフォ、ミューテックスを削除する |
uxSemaphoreGetCount() | セマフォのカウント値を取得する |
xSemaphoreGetMutexHolder() | ミューテックスを保持するタスクのハンドルを取得する |
xSemaphoreGive() | セマフォを解放する |
xSemaphoreGiveFromISR() | セマフォを解放する |
xSemaphoreGiveRecursive() | 再帰ミューテックスを解放する |
xSemaphoreTake() | セマフォを獲得する |
xSemaphoreTakeFromISR() | セマフォを獲得する |
xSemaphoreTakeRecursive() | ミューテックスを獲得する |
ソフトウェアタイマ
API | Comment |
---|---|
xTimerChangePeriod() | タイマの周期を設定する |
xTimerChangePeriodFromISR() | タイマの周期を設定する |
xTimerCreate() | タイマを生成する |
xTimerCreateStatic() | 静的なメモリを使ってタイマを生成する |
xTimerDelete() | タイマを削除する |
xTimerGetExpiryTime() | タイマがexpireする時刻 を取得する |
pcTimerGetName() | タイマの名前を取得する |
xTimerGetPeriod() | タイマの周期を取得する |
xTimerGetTimerDaemonTaskHandle() | タイマデーモンタスクのハンドルを取得する |
pvTimerGetTimerID() | タイマのIDを取得する |
xTimerIsTimerActive() | タイマを有効にする |
xTimerPendFunctionCall() | タイマのファンクションコールを設定 |
xTimerPendFunctionCallFromISR() | タイマのファンクションコールを設定 |
xTimerReset() | タイマをリスタートする |
xTimerResetFromISR() | タイマをリスタートする |
vTimerSetTimerID() | タイマのIDを設定する 複数のタイマで同じコールバック関数を呼ぶ場合に使う |
xTimerStart() | タイマをスタートする |
xTimerStartFromISR() | タイマをスタートする |
xTimerStop() | タイマをストップする |
xTimerStopFromISR() | タイマをストップする |
イベント
API | Comment |
---|---|
xEventGroupClearBits() | イベントグループのbitsをクリアする |
xEventGroupClearBitsFromISR() | イベントグループのbitsをクリアする |
xEventGroupCreate() | イベントグループを生成する |
xEventGroupCreateStatic() | 静的なメモリを使ってイベントグループを生成する |
vEventGroupDelete() | イベントグループを削除する |
xEventGroupGetBits() | イベントグループの値を取得する |
xEventGroupGetBitsFromISR() | イベントグループの値を取得する |
xEventGroupSetBits() | イベントグループの値を設定する |
xEventGroupSetBitsFromISR() | イベントグループの値を設定する |
xEventGroupSync() | ある値になるまでかタイムアウトを待って、イベントグループに値を設定する。 |
xEventGroupWaitBits() | イベントグループがある値になるかタイムアウトまで待つ |
参照元