Edited at

Amazon FreeRTOS のAPI一覧

More than 1 year has passed since last update.

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