DAPLink ブートローダのアップデート
これは、Mbed Advent Calendar 2017の9日目の記事です。Blogに投稿された「DAPLink bootloader update」の内容が役に立つと思われるので、日本語に翻訳してみました。
Arm Mbed DAPLinkは、Arm Cortex CPU上で動作するアプリケーションソフトウェアのプログラミングとデバッグを可能にするオープンソースのソフトウェアプロジェクトです。一般的にインターフェイスファームウェアと呼ばれるDAPLinkは、アプリケーションMCUのSWDまたはJTAGポートに接続されたセカンダリMCUで動作します。この構成は、ほぼすべての開発ボードはこの構成になっています。開発用ターゲットMCUとCPUデバッグアクセスポートの間にブリッジを作成します。 DAPLinkを使用すると、ドラッグアンドドロッププログラミング、シリアルポート、CMSIS-DAPベースのデバッグが可能になります。
長期にわたり、DAPLinkは広く採用され、マイクロコントローラ開発ボードに組み込まれています。私たちは、DAPLinkをカーネルからUSBスタックや仮想ファイルシステムの実装に多く改良しました。これには、マスストレージクラスのデータ転送で予期しないSCSIコマンドシーケンスによってMCUが壊れるのを防ぐために、ブートローダーの強力な保護が含まれます。これによって、DAPLinkインタフェースファームウェアが動作する開発ボードや、DAPLink対応MCU回路を持つすべての開発ボードでこれらがアップデートできるようになりました。
DAPLink アップデートと Windows
DAPLinkチームは、インターフェイスファームウェアを更新する際に、Windows 10上でMbed Enabledボードの不具合発生に関するフォーラムで報告された問題を調査していましたが、古いブートローダバージョン(DAPLinkプロジェクトよりも古いバージョン)のボードに破損の脆弱性があることを発見しました。この現象は、USBを介してコンピュータに接続されている場合、大容量記憶ドライブとしてマウントされていない、または「brickingー文鎮化」とレポートされていました。この問題は、2つの異なる方法で現れます(どちらのケースにおいても、ボードは応答しないように見えます)。
- あるケースでは、古いブートローダが間違ったデータをROMのインタフェースアプリケーション領域にプログラムして、それを破壊します。これにより、起動時にデバッグインタフェースアプリケーションがクラッシュする。 これが文鎮化した状態です。デバッグインタフェースのファームウェアを再度更新することでボードを回復できます。
- 2番目のケースでは、古いブートローダがアプリケーション領域ではなくROMのブートローダ領域にデータをプログラムします。これによりブート時にブートローダがクラッシュします。 これが文鎮化した状態です。外部デバッグプローブを使って新しいブートローダをフラッシュすることによってのみボードを回復できます。
これはどのオペレーティングシステムでも発生する可能性がありますが、ストレージサービスが実行されている場合にのみWindows 8とWindows 10で発生することが確認されています。デバイスが破損状態または文鎮化した状態の場合、このガイドは安全にボードを更新するのに役立ちます。 DAPLinkブートローダの改善と修正を利用するために、すべての開発ボードを更新することをお勧めします。
つまり、壊れた状態や文鎮化した状態の影響を受けやすい特定のバージョンを絞り込んでいます。具体的には、DAPLinkブートローダのバージョン1000です。
ボードをアップデートする方法
このフローチャートを使用すると、ボードが破損しているかどうかを判断できます。壊れた状態のボードや最新版のDAPLinkブートローダで更新したいボードの場合、ファイルと手順はこのブログで提供されています。あなたのボードが文鎮化の状態にあると判断した場合は、ブートローダーを回復する方法についての説明がある2番目のブログを公開しました。更新手順と対応するファイルを使用し、それらを混在させないでください。
DAPLink ブートローダのアップデート
DAPLinkブートローダのアップデートイメージは、以下の表からダウンロードできます。これらはボードが元々同梱されていたアプリケーションオフセットアドレス(20kまたは32k)と同じであるため、既存のDAPLinkインターフェイスファームウェアまたはサードパーティ製インターフェイスファームウェアと互換性があります。現在リストされているものよりも多くの互換性のあるボードがあります。ブートローダを更新したいボードの情報がここにない場合は、このブログ記事の最後の部分に質問をしたり、ディスカッションを開始してください。
Step 1. アップデートされた DAPLink ブートローダイメージのダウンロード
特定のボードのブートローダーイメージをダウンロードするには、下の表の対応するリンクをクリックします。
Board | DAPLink bootloader image |
---|---|
FRDM-K64F FRDM-KL82Z RedBearLab-nRF51822 v1.0 RedBearLab-BLE-Nano v1.0 | 0244_k20dx_bootloader_update_0x5000.bin |
FRDM-K22F FRDM-K28F FRDM-K82F FRDM-KW24D FRDM-KL28Z TWR-KL28Z FRDM-KE15Z TWR-KE18F HVP-KE18F MTS-xDot-L151CC | 0244_k20dx_bootloader_update_0x8000.bin |
Nordic-nRF51-DK Nordic-nRF52-DK Nordic-nRF51-Dongle Nordic-nRF51822 | 0244_sam3u2c_bootloader_update_0x5000.bin |
Step 2. ストレージサービスの無効化
Windows 8およびWindows 10のコンピュータでのみ、データ転送の順序が入れ替わる可能性のある状態を防ぐために、ストレージサービスを無効にする必要があります。 Windowsロゴキーを押したままにして、Rキーを押します。これにより、Windowsの Run プロンプトが開きます。Run プロンプトが表示されたら、services.msc
と入力して OK ボタンをクリックします。
サービスアプリケーションが開いたら、リストから Storage Service という項目をダブルクリックします。
ストレージサービスのプロパティが開きました。 Stop をクリックします。
Step 3: ブートローダーの更新
ボードのリセットボタンを押しながら、デバッグUSBポートを使用してコンピュータに接続します。デバイスは、ブートローダモードでマウントされます。ドライブ名またはマウントポイントは異なる場合がありますので、必要に応じてBOOTLOADER
の部分を読み替えてください。
- Windows - このデバイスのルートディレクトリを開き、Step 1でダウンロードしたブートローダイメージをこのディレクトリにドラッグアンドドロップします。
- Mac OSX -
sudo mount -u -w -o sync /Volumes/BOOTLOADER ; cp -X <path to interface firmware file> /Volumes/BOOTLOADER/
- Linux -
cp <path to interface firmware file> <BOOTLOADER> && sync
ファイルのコピー操作が完了したら、(リセットボタンを押さずに)ボードをコンピュータに通常どおりに接続し直します。デバイスには更新されたブートローダがインストールされ、MAINTENANCE
という名前のドライブがマウントされます。
Step 4: ストレージサービスの有効化
Windows 8またはWindows 10のコンピュータでアップデートを実行した場合は、Step 2に記載されている手順と同じ手順でストレージサービスを再度オンにしますが、今回は Stop の代わりに Start ボタンをクリックします。
Step 5: インタフェースファームウェアのインストール
これで、インターフェイスファームウェアのバージョンをインストールできるようになりましたが、最新のDAPLinkインターフェイスファームウェアを入手することをお勧めします。インタフェースファームウェアのアップデートセクションにボード名を入力すると最新のファームウェアを入手できます 。次に、MAINTENANCE
としてマウントされたデバイスのルートディレクトリを開き、ファームウェアをこのディレクトリにドラッグアンドドロップします。ファイルのコピー操作が完了すると、ボードはアンマウントされ、DAPLINK
またはボードの名前として再マウントされ、更新が完了します。
最後に
これでボードが更新され、正常に動作しているはずです。デバイスがMAINTENANCE
またはDAPLINK
としてマウントされている場合は、DETAILS.TXT
を参照してDAPLinkブートローダまたはインタフェースファームウェアのバージョンを確認することが出来ます。
Please log in to post comments.