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() | イベントグループがある値になるかタイムアウトまで待つ |
参照元