AWS
FreeRTOS

Amazon FreeRTOS のAPI一覧

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() 省電力モードの設定を取得する