OTA エージェントライブラリ - FreeRTOS

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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 エージェントを起動します。

  1. AWS IoT MQTT ブローカーに接続します。詳細については、「coreMQTT ライブラリ」を参照してください。

  2. OTA_AgentInit を呼び出すことによって、OTA エージェントを初期化します。アプリケーションでカスタム OTA コールバック関数を定義するか、NULL コールバック関数ポインタを指定してデフォルトのコールバックを使用することができます。初期化タイムアウトも指定する必要があります。

    コールバックは、OTA 更新ジョブの完了後に実行されるアプリケーション固有のロジックを実装します。タイムアウトは、初期化が完了するまでの待機時間を定義します。

  3. エージェントの準備が完了する前に OTA_AgentInit がタイムアウトした場合は、OTA_GetAgentState を呼び出して、エージェントが初期化され、正常に動作していることを確認できます。

  4. OTA 更新が完了すると、FreeRTOS は、ジョブ完了コールバックを acceptedrejected、または self test のいずれかのイベントで呼び出します。

  5. 新しいファームウェアイメージが拒否された場合 (たとえば検証エラーのため)、アプリケーションは通常、通知を無視して次の更新を待機します。

  6. アップデートが有効で、承諾済みとマークされている場合は、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