Amazon FreeRTOS V1.0.0 の各APIについて一言で説明してみました。
FreeRTOS kernel
タスクとスケジューラ
| 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() | ミューテックスを保持するタスクのハンドルを取得する |
| xSemaphoreGetMutexHolderFromISR() | ミューテックスを保持するタスクのハンドルを取得する |
| 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() | タイマをストップする |
event group
| API | Comment |
|---|---|
| xEventGroupClearBits() | イベントグループのbitsをクリアする |
| xEventGroupClearBitsFromISR() | イベントグループのbitsをクリアする |
| xEventGroupCreate() | イベントグループを生成する |
| xEventGroupCreateStatic() | 静的なメモリを使ってイベントグループを生成する |
| vEventGroupDelete() | イベントグループを削除する |
| xEventGroupGetBits() | イベントグループの値を取得する |
| xEventGroupGetBitsFromISR() | イベントグループの値を取得する |
| xEventGroupSetBits() | イベントグループの値を設定する |
| xEventGroupSetBitsFromISR() | イベントグループの値を設定する |
| xEventGroupSync() | ある値になるまでかタイムアウトを待って、イベントグループに値を設定する。 |
| xEventGroupWaitBits() | イベントグループがある値になるかタイムアウトまで待つ |
Stream Buffer
| API | Comment |
|---|---|
| xStreamBufferCreate() | ストリームバッファを生成する |
| xStreamBufferCreateStatic() | 静的メモリを使ってストリームバッファを生成する |
| xStreamBufferSend() | ストリームバッファにデータを書き込む |
| xStreamBufferSendFromISR() | ストリームバッファにデータを書き込む |
| xStreamBufferReceive() | ストリームバッファからデータを読み込む |
| xStreamBufferReceiveFromISR() | ストリームバッファからデータを読み込む |
| vStreamBufferDelete() | ストリームバッファを削除する |
| xStreamBufferIsFull() | ストリームバッファが満杯かどうか確認する |
| xStreamBufferIsEmpty() | ストリームバッファが空かどうか確認する |
| xStreamBufferReset() | ストリームバッファを空にリセットする |
| xStreamBufferSpacesAvailable() | ストリームバッファの空きサイズを取得する |
| xStreamBufferBytesAvailable() | ストリームバッファが保持しているデータサイズを取得する |
| xStreamBufferSetTriggerLevel() | ストリームバッファのトリガレベルを設定する |
Message Buffer
| API | Comment |
|---|---|
| xMessageBufferCreate() | メッセージバッファを生成する |
| xMessageBufferCreateStatic() | 静的メモリを使ってッセージバッファを生成する |
| xMessageBufferSend() | メッセージバッファにデータを書き込む |
| xMessageBufferSendFromISR() | メッセージバッファにデータを書き込む |
| xMessageBufferReceive() | メッセージバッファからデータを読み込む |
| xMessageBufferReceiveFromISR() | メッセージバッファからデータを読み込む |
| vMessageBufferDelete() | メッセージバッファを削除する |
| xMessageBufferIsFull() | メッセージバッファが満杯かどうか確認する |
| xMessageBufferIsEmpty() | メッセージバッファが空かどうか確認する |
| xMessageBufferReset() | メッセージバッファを空にリセットする |
| xMessageBufferSpaceAvailable() | メッセージバッファの空きサイズを取得する |
AWS
aws_crypto
| API | Comment |
|---|---|
| CRYPTO_ConfigureHeap() | 暗号処理用のHeapを確保する |
| CRYPTO_SignatureVerificationStart() | 署名の検証を開始する |
| CRYPTO_SignatureVerificationUpdate() | 署名の追加データを検証する |
| CRYPTO_SignatureVerificationFinal() | 署名の検証を終了する |
aws_greengrass_discovery
| API | Comment |
|---|---|
| GGD_GetGGCIPandCertificate() | green grass に接続する |
| GGD_JSONRequestStart() | クラウドからJSONファイルの取得を開始する |
| GGD_JSONRequestGetSize() | クラウドからJSONファイルのサイズを取得する |
| GGD_JSONRequestGetFile() | クラウドからJSONファイルを取得する |
| GGD_JSONRequestAbort() | クラウドからJSONファイルの取得を中止する |
| GGD_GetIPandCertificateFromJSON() | JSONファイルからホストIPと証明書を取得する |
aws_mqtt_lib
| API | Comment |
|---|---|
| MQTT_Init() | MQTTを初期化する |
| MQTT_Connect() | MQTT Connectを送信する |
| MQTT_Disconnect() | MQTT Disonnectを送信する |
| MQTT_Subscribe() | MQTT Subscribeを送信する |
| MQTT_Unsubscribe() | MQTT Unsubscribeを送信する |
| MQTT_Publish() | MQTT Publishを送信する |
| MQTT_ParseReceivedData() | 受信したMQTT メッセージを復号する |
| MQTT_ReturnBuffer() | コールバックで提供されたバッファを解放する |
| MQTT_Periodic() | タイムアウトとキープアライブを管理する |
aws_secure_socket
| API | Comment |
|---|---|
| lib_initDECLARE_LIB_INIT() | Secure Socketsライブラリを初期化する |
| SOCKETS_Socket() | TCPソケットを生成する |
| SOCKETS_Connect() | ソケットを指定したIPアドレスとポートに接続する |
| SOCKETS_Recv() | TCPソケットからデータを受信する |
| SOCKETS_Send() | リモートソケットにデータを送信する |
| SOCKETS_Shutdown() | ソケットの全二重通信を閉じる |
| SOCKETS_Close() | ソケットを解放する |
| SOCKETS_SetSockOpt() | ソケットオプションを設定する |
| SOCKETS_GetHostByName() | DNSを使ってホスト名を解決する |
aws_shadow
| API | Comment |
|---|---|
| SHADOW_ClientCreate() | Shadowクライアントを生成する |
| SHADOW_ClientConnect() | Shadowサービスに接続する |
| SHADOW_ClientDisconnect() | Shadowサービスから切断する |
| SHADOW_ClientDelete() | Shadowクライアントを削除する |
| SHADOW_Update() | Thing Shadowをアップデートする |
| SHADOW_Get() | クラウドからThing Shadowを取得する |
| SHADOW_Delete() | クラウドのThing Shadowを削除する |
| SHADOW_RegisterCallbacks() | コールバック関数の登録 |
| SHADOW_ReturnMQTTBuffer() | MQTT Bufferを返却する |
aws_system_init
| API | Comment |
|---|---|
| SYSTEM_Init() | システムを初期化する |
aws_tls
| API | Comment |
|---|---|
| TLS_Init() | TLSを初期化する |
| TLS_Connect() | TLSで接続する |
| TLS_Recv() | TLSで受信する |
| TLS_Send() | TLSで送信する |
| TLS_Cleanup() | TLSを削除する |
aws_wifi
| API | Comment |
|---|---|
| WIFI_On() | Wi-FiをONにする |
| WIFI_Off() | Wi-FiをOffにする |
| WIFI_ConnectAP() | APに接続する |
| WIFI_Disconnect() | AP接続を切断する |
| WIFI_Reset() | Wi-Fiモジュールをリセットする |
| WIFI_SetMode() | Wi-Fiのモードを設定する |
| WIFI_GetMode() | Wi-Fiのモードを設定する |
| WIFI_NetworkAdd () | ネットワークの設定を追加する |
| WIFI_NetworkGet() | ネットワークの設定を取得する |
| WIFI_NetworkDelete() | ネットワークの設定を削除する |
| WIFI_Ping() | pingを行う |
| WIFI_GetIP () | Wi-FiのIPアドレスを取得する |
| WIFI_GetMAC() | Wi-FiのMACアドレスを取得する |
| WIFI_GetHostIP() | 指定したホストのIPアドレスを取得する |
| WIFI_Scan() | Wi-Fiをscanする |
| WIFI_StartAP() | APをスタートする |
| WIFI_StopAP() | APをストップする |
| WIFI_ConfigureAP () | APの設定をする |
| WIFI_SetPMMode() | 省電力モードの設定をする |
| WIFI_GetPMMode() | 省電力モードの設定を取得する |