Skip to content

wolfBootの既存のプロジェクトへの統合

必要な手順

提供されているサンプルプログラム

GitHub wolfBoot-Examplesリポジトリでも別のサンプルプログラムが入手できます。

次の手順は、工場イメージ(工場出荷時のアプリケーションイメージ)を作成するための例として非OSのテストアプリケーションを使用して、デフォルトのMakefileターゲットで自動化されています。makeを実行することにより、ビルドシステムは次のとおりです。

  • ed25519_keygenツールを使用して、ED25519鍵ペアを作成します

  • ブートローダーをコンパイルします。上記のステップで生成された公開鍵はビルドに含まれています

  • 「test_app」ディレクトリにあるテスト アプリケーションからファームウェア イメージをコンパイルします。

  • ファームウェアを再リンクして、エントリポイントをプライマリパーティションの開始アドレスに変更します

  • ed25519_signツールを使用してファームウェアイメージに署名します

  • ブートローダーとファームウェアイメージを連結して、工場イメージを作成します

工場イメージはターゲットデバイスにフラッシュできます。フラッシュ上の指定されたアドレスにブートローダーと署名された初期ファームウェアが含まれています。

sign.pyツールは、ブートローダーが必要とするファームウェアイメージ形式に準拠するように、起動可能なファームウェアイメージを変換します。

ファームウェアイメージ形式の詳細については、ファームウェアイメージを参照してください。

ターゲットシステムの構成オプションの詳細については、WolfBootのコンパイルを参照してください。

ファームウェアのアップグレード

  • 新しいファームウェアイメージをコンパイルし、そのエントリポイントがプライマリパーティションの開始アドレスにあるようにリンクします

  • sign.pyツールと、工場のイメージ用に生成された秘密鍵を使用してファームウェアに署名します

  • 安全な接続を使用してイメージを転送し、セカンダリファームウェアスロットに保存します

  • libwolfboot wolfBoot_update_trigger()関数を使用してイメージスワップをトリガーします。操作の説明については、wolfBoot Library APIを参照してください

  • 再起動して、ブートローダーがイメージスワップを開始します

  • libwolfboot wolfBoot_success()関数を使用して、更新の成功を確認します。操作の説明については、wolfBoot Library APIを参照してください

ファームウェアの更新実装の詳細については、ファームウェアの更新を参照してください。