Skip to content
Fuminori OKUHARA edited this page Jun 19, 2023 · 10 revisions

Serial updatable sample for nRF9160

概要

本サンプルはnRF9160でnRF Connect SDKでプログラムを作成した際にシリアルポート(UART)経由でアプリケーションの更新(以降、シリアルアップデートと記載)が行えるように構成する方法の提示と、シリアルアップデート可能なアプリケーションを作成する際のテンプレートとして使用していただくことを想定しています。

本サンプルは以下の2部構成となっています。

  • シリアルアップデートを有効にしたブートローダー
  • シリアルアップデートに対応したLED明滅アプリケーション

本サンプルをテンプレートとして作成したアプリケーションはJ-Link等のデバッガを使用せずにアプリケーションの更新が可能となります。

ターゲット環境

ターゲットボード

ボード名 説明
SCM-LTEM1NRF さくらのモノプラットフォーム開発キット DIP型LTEモジュール基板

開発環境

本サンプルではnRF9160のSDKであるnRF Connect SDKのv2.3.0を使用しています。
ビルド環境のインストール、ソースコードの取得、ビルド方法については[Getting Started](Getting Started)を参照してください。

シリアルアップデートの実行

準備

PCからイメージをターゲットボードに送るためにMCUmgrを使用します。
MCUmgrのページの手順に従い、Go言語のビルド環境のインストールとmcumgrのビルド&インストールを行います。

実行

mcumgrの接続設定

mcumgrの接続定義を作成します

com1という定義名でターゲットボードと接続しているシリアルポートがCOM1の場合

mcumgr conn add com1 type="serial" connstring="dev=COM1,baud=115200,mtu=512"

ターゲットボードをMCUbootモードで起動

シリアルアップデートを受け付けるMCUbootモードで起動するためモードピンとGNDを接続した状態で電源を入れます。
MCUbootモードで起動するとインジゲーターLEDが点灯します。
起動が確認できたらモードピンとGNDの接続を外します。

ボード モード端子 インジゲーターLED
SCM-LTEM1NRF PIN20(WAKE_IN) LED A

アプリケーションのイメージファイルの送信

本サンプルのプロジェクトのトップフォルダに移動したのち、mcumgr image uploadコマンドでアプリケーションのイメージファイル(app_update.bin)を送ります

※サンプルプログラムのフルパスが/path/to/nrf9160_sample_serial_updatableだった場合

cd /path/to/nrf9160_sample_serial_updatable
mcumgr -c com1 image upload build/zephyr/app_update.bin
 100.79 KiB / 133.77 KiB [=================================================>----------------]  75.34% 1.12 KiB/s 00m29s

アップロードが完了したら電源を再投入するかmcumgr resetコマンドでソフトウェアリセットをかけます

mcumgr -c comX reset