翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
OTA エージェントライブラリ
重要
これは、FreeRTOS リリース 202012.00 で使用する FreeRTOS ユーザーガイドのアーカイブ版です。このドキュメントの最新バージョンについては、FreeRTOS ユーザーガイドを参照してください。
概要
OTA エージェントライブラリを使用すると、プロトコルとして HTTP または MQTT を使用する FreeRTOS デバイスのファームウェア更新の通知、ダウンロード、検証を管理できます。OTA エージェントライブラリを使用すると、ファームウェア更新とデバイス上で実行されているアプリケーションを論理的に分離することができます。OTA エージェントは、アプリケーションとネットワーク接続を共有できます。ネットワーク接続を共有することで、大量の RAM を節約できます。さらに、OTA エージェントライブラリを使用すると、ファームウェア更新をテスト、コミット、ロールバックするためのアプリケーション固有のロジックを定義できます。
FreeRTOS での OTA 更新の設定の詳細については、「FreeRTOS 無線通信経由更新」を参照してください。
機能
OTA エージェントの各インターフェイスは次のとおりです。
OTA_AgentInit
-
OTA エージェントを初期化します。呼び出し元は、メッセージングプロトコルコンテキスト、オプションのコールバック、およびタイムアウトを提供します。
OTA_AgentShutdown
-
OTA エージェントを使用した後にリソースをクリーンアップします。
OTA_GetAgentState
-
OTA エージェントの現在の状態を取得します。
OTA_ActivateNewImage
-
OTA を介して受信した最新のマイクロコントローラーファームウェアイメージを有効にします。(詳細なジョブのステータスはセルフテストになっているはずです)
OTA_SetImageState
-
現在実行中のマイクロコントローラーファームウェアイメージの検証状態 (テスト中、受け入れ済または拒否済) を設定します 。
OTA_GetImageState
-
現在実行中のマイクロコントローラーファームウェアイメージの状態 (テスト中、受け入れ済または拒否済) を取得します 。
OTA_CheckForUpdate
-
OTA 更新サービスから利用可能な次の OTA 更新を要求します。
OTA_Suspend
-
OTA エージェントのすべてのオペレーションを一時停止します。
OTA_Resume
-
OTA エージェントのオペレーションを再開します。
API リファレンス
詳細については、OTA エージェント API リファレンスを参照してください。
使用例
MQTT プロトコルを使用する一般的な OTA 対応デバイスアプリケーションは、次の一連の API コールを使用して OTA エージェントを起動します。
-
AWS IoT MQTT ブローカーに接続します。詳細については、「coreMQTT ライブラリ」を参照してください。
-
OTA_AgentInit
を呼び出すことによって、OTA エージェントを初期化します。アプリケーションでカスタム OTA コールバック関数を定義するか、NULL コールバック関数ポインタを指定してデフォルトのコールバックを使用することができます。初期化タイムアウトも指定する必要があります。コールバックは、OTA 更新ジョブの完了後に実行されるアプリケーション固有のロジックを実装します。タイムアウトは、初期化が完了するまでの待機時間を定義します。
-
エージェントの準備が完了する前に
OTA_AgentInit
がタイムアウトした場合は、OTA_GetAgentState
を呼び出して、エージェントが初期化され、正常に動作していることを確認できます。 -
OTA 更新が完了すると、FreeRTOS は、ジョブ完了コールバックを
accepted
、rejected
、またはself test
のいずれかのイベントで呼び出します。 -
新しいファームウェアイメージが拒否された場合 (たとえば検証エラーのため)、アプリケーションは通常、通知を無視して次の更新を待機します。
-
アップデートが有効で、承諾済みとマークされている場合は、
OTA_ActivateNewImage
を呼び出してデバイスをリセットし、新しいファームウェアイメージを起動します。
移植
プラットフォームに OTA 機能を移植する方法については、FreeRTOS 移植ガイドの OTA ライブラリの移植を参照してください。
メモリ使用量
AWS IoT OTA のコードサイズ (ARM Cortex-M 用の GCC で生成された例) | ||
---|---|---|
ファイル | -O1 最適化を使用 | -Os 最適化を使用 |
ota.c | 8.0 K | 7.2K |
ota_interface.c | 0.1 K | 0.1 K |
ota_base64.c | 0.6 K | 0.6 K |
ota_mqtt.c | 2.3K | 2.2 K |
ota_cbor.c | 0.8 K | 0.6 K |
ota_http.c | 0.3 K | 0.3 K |
合計 (概算) | 12.1K | 11.0K |