nRF52832が搭載されているMDBT42QとNordicSDKを利用して、SecureDFUをする方法を書きます。
前準備
こちらができていることが前提なので、まずはこちらの記事をどうぞ!
JLINKとNordic SDKを使ったnRF52開発方法
準備物
- nrfutil (python2.7以上と対応したpip、Python3は使用不可)
書き込み用のプログラムの準備
SecureDFUであるため、公開鍵の生成と署名が必要になります
鍵の生成
秘密鍵の生成
コマンド
nrfutil keys generate private.pem
公開鍵の生成
コマンド
nrfutil keys display --key pk --format code private.pem
プログラムに直接組み込むことになるため(ハードコードされてるため)、拡張子が.cのファイルが生成されます
Embedded Studioでのプログラム書き出し
まずは、書き出したいプログラムをEmbedded Studioで開き、ナビゲーションバーからBuild->Build Solutionを選択します。
hexファイルがプロジェクトファイルと同じディレクトリ上に生成されます。
ディレクトリ
some-app/pca10040/s132/ses/Output/Release
DFU用のファイルを生成
生成されたhexファイルをDFU用のzipファイルにコンバートします。
コマンド
nrfutil pkg generate --hw-version 52 --sd-req 0xAF,0xA8,0xA5,0x9D,0xA9,0xAE --application-version 1 --application {{path_to_file.hex}} --key-file {{path_to_private.key}} {{package_name_you_want.zip}}
これで秘密鍵で署名されたDFU用のファイルが生成されます。
ブートローダの書き込み
まずは、NordicSDKのパッケージ内の
ディレクトリ
NordicSDK/examples/dfu/secure_bootloader/pca10040_ble/ses
のプロジェクトをEmbedded Studioで開きます。
dfu_public_key.cの中身を先程生成した公開鍵のc言語のソースコードに上書きします。
プロジェクトをコンパイルし、JLINKを介して書き込みします。
これでOKです。
書き込み手順
Nordicが提供している「nRF Toolbox」「nRF Connect」を使用して書き込みます。
nRF Toolbox
Nordic Semiconductor ASA無料posted withアプリーチ
コメントを残す