このドキュメントでは、KW35 の OTAP (Over The Air Programming) ブートローダを使用して、新しいソフトウェア イメージを KW35 デバイスにロードするためのガイダンスを提供します。この記事では、チュートリアルで使用する SDK をダウンロードしてインストールするために必要な手順についても説明します。
MKW35A512xxx4デバイス。
KW35 フラッシュは、次のように分割されています。
OTAPクライアントソフトウェアとその機能がどのように機能するかを理解するためのステートメントは次のとおりです。
OTAPクライアントソフトウェアは、OTAPブートローダーとOTAPクライアントサービスの2つの部分に分かれています。OTAPブートローダは、デバイスを再プログラムするための新しいイメージがすでにあるかどうかを確認します。OTAPクライアントサービスソフトウェアは、新しいイメージファイルを含むサーバーとの通信に必要なBluetooth LEカスタムサービスを提供します。したがって、テストを開始する前に、デバイスは 2 回プログラムされており、最初は OTAP ブートローダーを使用して、次に OTAP クライアント サービス プロジェクトを使用してプログラムされています。同じデバイスに 2 つの異なるソフトウェアがある場合に使用されるメカニズムは、それぞれを異なるメモリ領域に格納することであり、これはリンカ ファイルによって実装されます。KW35 デバイスでは、ブートローダー アプリケーションが 16KB のメモリ スロットを 0x0 アドレス (0x0 から 0x3FFF) に予約しているため、最初の P-Flash メモリ バンクの左メモリは、特に OTAP クライアント サービス アプリケーションによって予約されます。
クライアント デバイス用の新しいイメージ ファイルを作成するには、開発者は、最初のアドレスがブートローダー用に予約されているため、コードが 16KB のオフセットで保存されるようにリンカー ファイルに指定する必要があります。
接続イベントでは、サーバーはすべてのコードチャンクをBluetooth LE経由でクライアントに送信します。クライアントは 2 番目の P-Flash メモリ バンクにコードを保存しますが、まだ実行できません。
ブロードキャストが終了し、すべてのチャンクが送信されると、OTAPブートローダはこの状況を検出し、新しいアプリケーションでデバイスを再プログラムするコマンドをトリガーします。新しいアプリケーションが 16KB のオフセットでビルドされたため、OTAP ブートローダーは 0x3FFF アドレスから始まるデバイスをプログラムし、OTAP クライアント サービス アプリケーションは新しいイメージで上書きされます。次に、OTAPブートローダが新しいアプリケーションをトリガーし、コードの実行を開始します。
MCUXpressoのWebページに移動します。
登録したアカウントでログインします。
「MKW36A」デバイスを検索します。次に、推奨されるプロセッサをクリックし、[MCUXpresso SDKのビルド]をクリックします。
次のページが表示されます。[ツールチェーン/IDE] コンボ ボックスで [すべてのツールチェーン] を選択し、パッケージを識別する名前を指定します。
「ソフトウェアコンポーネントの追加」をクリックし、コンボボックスをデプロイして「すべて選択」オプションをクリックします。変更を保存します。
「SDKのダウンロード」ボタンをクリックして、ライセンス契約に同意します。
MCUXpresso IDEを使用している場合は、「Installed SDK's」パースペクティブのSDKzipフォルダをドラッグアンドドロップしてパッケージをインストールします。
このセクションでは、KW35 で OTAP ソフトウェアをテストするために必要な手順について説明します。
KW35でOTAPブートローダーをプログラムします。
1.1 次のパスにあるOTAP_bootloaderプロジェクトを開きます。OTAP クライアント アプリケーションを KW35 でプログラミングします。
2.1 以下のパスにあるOTAPクライアントプロジェクトを開きます。
2.2 「4.1.AN12252「MKW36Z512xxx4からMKW35Z512xxx4への移行ガイド」 アプリケーションノートの「プロジェクトオプションと設定に必要な変更」セクション。
2.3 app_preinclude.hを開きますワークスペースのソースディレクトリの下にあるファイル。次に示すように、"gEepromType_d" 定義を見つけ、値を "gEepromDevice_InternalFlash_c" に更新します。
#define gEepromType_d gEepromDevice_InternalFlash_c
2.4 次の場所にある MKW35Z512xxx4_connectivity.icf ファイルを保存します。
OTAP Client ATT プロジェクトのフォルダに移動します。
2.5 プロジェクトオプションウィンドウを開きます(Alt + F7)。[Linker/Config] ウィンドウで、リンカ パスの横にあるアイコンをクリックし、リンカ設定ファイル "MKW35Z512xxx4_connectivity.icf" を選択します。"gUseInternalStorageLink_d" フラグを 1 に設定します。
2.6プロジェクトオプションウィンドウの[OK]ボタンをクリックして、新しい構成を保存します。
2.7 プロジェクトをフラッシュします (Ctrl + D)。デバッグ セッションを停止します (Ctrl + Shift + D)。
このセクションでは、KW35 で OTAP ソフトウェアをテストするために必要な手順について説明します。
1.1 MCUXpresso IDEを開きます。[Quickstart Panel] ビューの [Import SDK example(s)] オプションをクリックします。
1.2 virtual-board-kw35 SDKアイコンをクリックします。1.3 wireless_examples\framework\bootloader_otapフォルダをデプロイし、bmプロジェクトを選択します。「完了」ボタンをクリックします。 1.4クイックスタートパネルで「デバッグ」オプションを選択します。プロジェクトがデバイスに既に読み込まれたら、デバッグ セッションを停止します。
2.OTAP クライアント アプリケーションを KW35 でプログラミングします。
2.1 MCUXpresso IDEを開きます。[Quickstart Panel] ビューの [Import SDK example(s)] オプションをクリックします。
2.2frdmkw36アイコンを2回クリックします。 2.3 例のテキストボックスに「otac_att」と入力し、wireless_examples\bluetooth\otac_att\freertos の freertos プロジェクトを選択します。最後に、[完了]ボタンをクリックします。
2.4 「5.1.アプリケーションノート「MKW36Z512xxx4からMKW35Z512xxx4への移行ガイド」AN12252の「プロジェクトオプションと設定に必要な変更」セクション。
2.5. ワークスペースのソースディレクトリの下にあるapp_preinclude.hファイルを開きます。次に示すように、"gEepromType_d" 定義を見つけ、値を "gEepromDevice_InternalFlash_c" に更新します。
#define gEepromType_d gEepromDevice_InternalFlash_c
2.6 次の場所にある MKW35Z512xxx4_connectivity.ld ファイルを保存します。
ワークスペースのソースフォルダーに移動します。
2.7 プロジェクト/プロパティウィンドウを開きます。次に、MCU Linker/Managed Linker Scriptパースペクティブに移動し、Linker Scriptの名前を「MKW35Z512xxx4_connectivity.ld」に編集します。
2.8 MCUリンカ/その他ビューに移動します。下のアイコンを押すと、新しいウィンドウが展開されます。「その他のオプション」ボックスに次の定義を追加します: --defsym=gUseInternalStorageLink_d=1。
2.9 プロジェクトオプションウィンドウの「適用して閉じる」ボタンをクリックして、新しい構成を保存します。
2.10 クイックスタートパネルで「デバッグ」オプションを選択します。プロジェクトがデバイスに既に読み込まれたら、デバッグ セッションを停止します。
IoT Toolbox アプリを開き、OTAP デモを選択します。「スキャン」を押して、適切な広告主のスキャンを開始します。
KW35でPTB18で立ち下がりエッジを行い、広告を開始します。
作成したデバイスとの接続を作成します。
「開く」を押して、Sレコードファイルを検索します。
「アップロード」を押して転送を開始します。
転送が完了したら、ブートローダーが新しいイメージのプログラミングを完了するまで数秒待ちます。新しいアプリケーションが自動的に起動します。
SDK の OTAP ブートローダーを使用してプログラミングする接続プロジェクトを開きます。この例では、グルコース センサー プロジェクトを利用します。
「 4.1. AN12252「MKW36Z512xxx4からMKW35Z512xxx4への移行ガイド」の「 プロジェクトオプションと設定に必要な変更」セクション アプリケーションノート 。
次の場所にある MKW35Z512xxx4_connectivity.icf ファイルを保存します。
プロジェクトの包含フォルダ内。
プロジェクトオプションウィンドウを開きます(Alt + F7)。[Linker/Config] ウィンドウで、[Linker path] の横にあるアイコンをクリックし、リンカ設定ファイル MKW35Z512xxx4_connectivity.icf を選択します。次に、「構成ファイルのシンボル定義」テキストボックスで「gUseBootloaderLink_d」マクロを有効にします。
「出力コンバーター」ウィンドウに移動します。「デフォルトを上書きする」チェックボックスの選択を解除し、「出力形式」コンボボックスを展開して、Motorola S-records形式を選択します。[OK]ボタンをクリックします。
プロジェクトをリビルドします。
次のパスで S レコード ファイルを検索します。
MCUXpresso IDE の OTAP ブートローダーを使用してプログラミングする接続プロジェクトを開きます この例では、グルコース センサー プロジェクトを使用します
次の場所にある MKW35Z512xxx4_connectivity.ld ファイルを保存します。
ワークスペースのソースフォルダーに移動します。
「プロジェクト/プロパティ」ウィンドウを開きます。次に、MCU Linker/Managed Linker Script パースペクティブに移動し、Linker Script の名前を "MKW35Z512xxx4_connectivity.ld" に編集します。
MCU リンカ/その他ビューに移動します。下のアイコンを押すと、新しいウィンドウが展開されます。「その他のオプション」ボックスに次の定義を追加します: --defsym=gUseBootloaderLink_d=1。「適用して閉じる」ボタンをクリックします。
プロジェクトをビルドします。
ワークスペースに "Binaries" アイコンをデプロイします。.axfファイル上でマウスの右ボタンをクリックします。「Binary Utilities/Create S-Record」オプションを選択します。S-Recordファイルは、ワークスペース内の「Debug」フォルダに拡張子「.s19」で保存されます。