(5)(5.6) 外部フラッシュメモリを使用してファームウェアをボードにロードします

記事ディレクトリ

5.5 代替案

5.5.1 Zadig をダウンロードしてインストールします (Windows のみ)

5.5.2 ArduPilot ファームウェアのダウンロード

5.5.3 ArduPilot をマザーボードにアップロードする

5.6 外部フラッシュメモリを使用してファームウェアをボードにロードする

5.6.1 SSBL を使用したファームウェアのロード

5.6.2 ArduPilot ブートローダーのインストール


5.5 代替案

5.5.1 Zadig をダウンロードしてインストールします (Windows のみ)

Zadig をダウンロードして実行し ( 「ダウンロード」で「 Zadig 2.3 」を検索)、ボードへのUSBアクセスを許可します。

オプション メニューから[すべてのデバイスのリスト] オプションを選択します。

ドロップダウン メニューから「 STM32 ブートローダー」を選択し、「ドライバーの交換」ボタンを押します。

必要に応じて、ボードがUSBポートとして表示されていることを確認することもできます。

  • ボード上のDFUボタンを押したままにしUSBケーブルを差し込みます ( PCに接続します)。
  • Windowsデバイス マネージャーを開き、「ユニバーサル シリアル バス デバイス」の下で「 STM32 ブートローダー」を探し、ボードがDFUモードになっていることを確認します。

5.5.2 ArduPilot ファームウェアのダウンロード

 ボードのArduPilotファームウェアを、 firmware.ardupilot.orgから ダウンロードします通常、次の方法で適切なファームウェアを見つけることができます。

5.5.3 ArduPilot をマザーボードにアップロードする

Betaflight Configurator ( Betaflight Configurator )をダウンロード、インストールし、実行します

  • 画面左側のファームウェア フラッシャー」を選択します。
  • 右上からDFUを選択します
  • 右下の「 Load Firmware [Local] 」を押して、上記でダウンロードしたarduXXX_with_bl.hexファイルを選択します
  • Flash Firmware」を押すと、数分後にファームウェアがロードされるはずです。

これで、ボードを再起動して、お気に入りの地上局 ( Mission PlannerQGCなど) に接続できるようになります。今後のファームウェアのアップロードも、Pixhawkボードの通常の方法を使用して機能するはずです。

5.6 外部フラッシュメモリを使用してファームウェアをボードにロードする

最近のボード、特にSeriously Pro Racing ( Seriously Pro Racing - Home ) のボードでは、少量の内部フラッシュを備えたMCU が使用されていますが、外部接続されたフラッシュ チップははるかに大きくなっています。これらのボードには、 ArduPilotファームウェアをロードするための追加の手順が必要です通常、ある種のブートローダーが内部フラッシュに常駐し、メイン ファームウェアが外部フラッシュに常駐します。

5.6.1 SSBL を使用したファームウェアのロード

SPRacingシリーズのボードには、内部フラッシュ メモリに独自のブートローダーがプリロードされており、さらにファームウェアをロードするには第 2 段階のブートローダーを使用する必要があります。これらのボードにファームウェアをロードするにはいくつかのオプションがありますが、どれを選択しても、SSBLを使用してArduPilotを初期化する必要がありますSSBL をボードにロードするには、「GitHub - spracing/ssbl: Second-Stage Bootloader for the H7 series Flight Controllers. メモリ マップされた QuadSPI を使用して外部フラッシュから PX4 またはその他のファームウェアを直接起動できるようにします。SSBL をボードロードするための「インストール」手順」に従ってくださいSSBLがロードされたら、 PX4の指示に従ってArduPilot をボードにロードします GitHub - spracing/ssbl: Second-Stage Bootloader for the H7 series Flight Controllers. メモリ マップされた QuadSPI を使用して外部フラッシュから PX4 またはその他のファームウェアを直接起動できるようにします。ただし、PX4ファームウェアを使用する代わりに、arducopter.binファームウェア イメージ。手順の概要は次のとおりです。

dd if=/dev/zero ibs=1k count=2048 of=AP_2MB.bin

dd conv=notrunc if=arducopter.bin of=AP_2MB.bin

  • ボードをSSBL dfuモードにします -- 電源を切り、BIND ( Bootではなく) を押し続け、電源を入れます-- LED が速く点滅し、BINDを放しLEDがゆっくり点滅します-- DFUモードが有効になります。
  • 次の方法を使用してバイナリ ファイルを書き込みます。

dfu-util -D AP_2MB.bin -s 0x90100000:0x200000

  • フラッシュを確認します。以下のdfu-utilコマンドはフラッシュ メモリの内容をコンピュータにコピーし、diffコマンドは内容が同じか異なるかを示します。diff でファイルが同じであると示されない場合は、飛ばそうとせず、もう一度試してください。

dfu-util -U AP_2MB-VERIFY.bin -s 0x90100000:0x200000

diff -sb AP_2MB.bin AP_2MB-VERIFY.bin

  • シャットダウンし、SDカードを取り付けます (注: SDカードを取り付ける必要があります。SD カードがないとファームウェアは起動しません)。起動します。
  • ミッション プランナーを使用して、通常どおりボードを構成します。

この時点で、ボード上に動作するファームウェアが存在するはずです。新しいファームウェアをロードする場合は、手順2 ~ 7を再度実行する必要があります(ファームウェアのロードにMission Plannerを使用することはできません)。ボードにbetaflight をロードしたくないと確信している場合は、 ArduPilotブートローダーをインストールできます

5.6.2 ArduPilot ブートローダーのインストール

警告

ArduPilotブートローダーのインストールは一方向の操作です。この手順の後、ボードを工場出荷時の構成に復元したり、betaflightをロードしたりすることはできません。それが可能であるとしても、ボードをSeriously Proに送り返し、工場出荷時のファームウェアを再フラッシュする必要があります。

ボード上でArduPilotのみを使用することが確実な場合は、ardupilot ブートローダーをフラッシュすると、その後のアップグレードが簡単になります。

  • 最初にArduPilotの動作バージョンをボードにインストールする必要があります。上記の手順に従います。
  • ここで、内部フラッシュ メモリからコピー プロテクトを削除する必要があります。これは、フラッシュ メモリの完全な消去を必要とする破壊的な操作です。ArduPilot はそれを簡単にするためのサポートを提供します。BRD_OPTIONS = 16を設定します 
  • ボードの電源を一旦切り、再度電源を入れてください。ボードは起動していないように見えますが、フラッシュ セクターは消去されています。数秒待ってから、ボードの電源を切ります。
  • スタートボタンを押したままにして(今回はスタートにバインドしないでください)、フライトコントローラーの電源を入れます。これにより、ボードがdfuモードになります。
  • ArduPilotブートローダーをダウンロードします(例: https://github.com/ArduPilot/ardupilot/blob/master/Tools/bootloaders/SPRacingH7_bl.bin )。
  • dfu経由でブートローダーをインストールします。

dfu-util -a 0 --dfuse-address 0x08000000 -D SPRacingH7_bl.bin

  • ボードを再起動します。
  • これで、お気に入りのツールを使用してArduPilotファームウェアをアップロードできるようになりました。

おすすめ

転載: blog.csdn.net/qq_20016593/article/details/132128448