2383995_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2383995_ja-JP

2383995_ja-JP

MCXN547 - ZephyrでOTAを確保する

こんにちは、

私はMCXN947を使ったプロジェクトに取り組んでいます:Core0にはZephyr、Core1にはベアメタル(Zephyrイメージ内に埋め込み)です。内部フラッシュのファームウェアサイズは~800KBで、残りはMCUboot + OTAスロットに割り当てられています。

EUサイバーレジリエンス法(CRA)に準拠した、安全なOTAアップデートを実装する必要があります。できれば外部メモリは使用しないことが望ましいです。

SB3のフォーマットを調べましたが、いくつか疑問があります:
- ゼファーと互換性がありますか?
- 画像の受信と検証に外部メモリが必要ですか?

この構成にはどのような解決策をお勧めしますか?

よろしくお願いします。

ボード設計ブートROM|ブート|フラッシュコアとメモリMCX Nセキュリティ(EdgeLock | セキュアブート | OTP)Re: MCXN547 - Secure OTA with Zephyr

こんにちは、 @Jorini さん。

投稿ありがとうございます!

1. ZephyrはSB3ファイルをネイティブでサポートしていないので、ROM APIを使って処理できます。

2. 実装によります。MCX N94x Over-The-Air(OTA)アップデート by SB3ファイルに関するアプリケーションノート:外部フラッシュを使ってSB3ファイルを保存・処理し、その後に二次画像領域を上書きしてください。

もし署名済みのファームウェアのバージョンだけを管理したいなら、mcubootからZephyrで直接管理できます:ZephyrでMCUbootをビルディングし使用する方法


Re: MCXN547 - Secure OTA with Zephyr

こんにちは、

良い代替案のように思えます。とにかく、MongooseがSB3に対応しているのか、また外部メモリが必要なのか知りたいです。


Re: MCXN547 - Secure OTA with Zephyr

こんにちは、

MCXN947 + Zephyrプロジェクトでは、Mongoose Web ServerとそのOTA機能を組み合わせて利用できます。MCXN947 OTAサポートがあり、アップデートは非アクティブなフラッシュエリアに直接書き込まれます。

以下はZephyrの上MCXN947サンプルプロジェクトです。そこから始めてください。

https://mongoose.ws/wizard/#/output?board=mcxn947&ide=Zephyr&rtos=baremetal&file=README.md

ワークステーションにダウンロードするには、そのURLにアクセスし、「設定」タブから「ソースコードジェネレーター」セクションのディレクトリを選択し、ページ右上の青い「C/C++コード生成」ボタンをクリックしてください。

このプロジェクトは、Mongooseを搭載した最新のダッシュボードを備えており、ボードに新しいファームウェアをアップロードするためのボタンが含まれています。

プロジェクトを開き、`mongoose_config.h`に以下を追加してください。


#define MG_OTA MG_OTA_MCXN
#define MG_IRAM __attribute__ ((noinline, section(".ramfunc")))

署名付きファームウェアの場合は、キーを生成し、Mongoose の `resources/sign.js` を使用してイメージに署名します。Mongooseの公式リポジトリで見つかりました。


node sign.js キー生成ツール
node sign.js sign firmware.bin

`keygen`は公開鍵の定義を出力します。それを`mongoose_config.h`に追加してください。あまりにも:


#define MG_OTA_PUBLIC_KEY { /* 生成された 64 バイトの公開鍵 */ }

それだけで署名付きイメージを生成するのに十分でしょう。Mongoose OTAの機能や画像署名に関するさらなるドキュメントについては、このドキュメントページにアクセスできます。

お知らせ:私はMongooseの開発チームの一員です。この情報があなたの作業の助けになれば幸いです。

Re: MCXN547 - Secure OTA with ZephyrMongooseはSB3を使用しておらず、OTA機能はSB3アップデートフローを使用するよりもはるかにシンプルな代替手段です。署名済みのファームウェアイメージを受け取り、フラッシュメモリの後半に書き込み、署名を検証し、その後2つのフラッシュパーティションを交換します。次の起動時に新しいファームウェアイメージが実行されます。
Tags (1)
No ratings
Version history
Last update:
yesterday
Updated by: