(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(在"Download"下面搜索"Zadig 2.3"),允许使用 USB 访问电路板。

从选项菜单中选择"List all devices"选项。

从下拉菜单中选择"STM32 BOOTLOADER",然后按"Replace Driver"按钮。

(5)(5.6) 将固件加载到带有外部闪存的主板上_第1张图片

可选地,你可能希望检查该板作为一个 USB 端口是否可见:

  • 按住板子上的 DFU 按钮,插入 USB 线(连接到你的 PC 上);
  • 打开 windows 设备管理器,在"通用串行总线设备"下查找"STM32 BOOTLOADER",以确认该板处于 DFU 模式。

(5)(5.6) 将固件加载到带有外部闪存的主板上_第2张图片

5.5.2 下载ArduPilot固件

从 firmware.ardupilot.org 下载你的主板的 ArduPilot 固件。通常你可以通过以下方式找到合适的固件:

  • 打开  firmware.ardupilot.org;
  • 选择点击你的飞行器类型的链接(如 Plane、Copter、Rover、Sub 或 Antenna Tracker);
  • 选择"测试版"或"稳定版";
  • 寻找名称与自动驾驶仪最接近的目录;
  • 下载"arduXXX_with_bl.hex"文件,点击它。它通常会被保存在你的下载文件夹中。

5.5.3 将ArduPilot上传至主板

下载、安装并运行 Betaflight 配置器(Betaflight Configurator)。

  • 在屏幕的左侧选择"Firmware Flasher";
  • 从右上方选择 DFU
  • 从右下方按下"加载固件[本地]",并选择你上面下载的 arduXXX_with_bl.hex 文件;
  • 按下"Flash Firmware",几分钟后,固件应该被加载。

(5)(5.6) 将固件加载到带有外部闪存的主板上_第3张图片

你现在可以重新启动电路板,并与你喜欢的地面站(Mission PlannerQGC 等)连接(connect with your favourite ground station),未来的固件上传也应该可以使用 Pixhawk 电路板的正常方法。

5.6 将固件加载到带有外部闪存的主板上

最近的一些板子,最明显的是来自 Seriously Pro RacingSeriously Pro Racing - Home)的板子,使用了具有少量内部闪存的 MCU,但外部连接的闪存芯片大得多。这些板子需要额外的步骤来加载 ArduPilot 固件。通常情况下,某种引导程序驻留在内部闪存上,然后主固件驻留在外部闪存上。

5.6.1 使用SSBL加载固件

SPRacing 系列的板子在内部闪存上预装了一个专有的引导程序,需要使用第二阶段的引导程序来加载进一步的固件。有几个选择来加载这些板子的固件,但无论你选择哪一种,你都需要使用 SSBL 来初始化 ArduPilot。请按照GitHub - spracing/ssbl: Second-Stage Bootloader for the H7 series flight controllers. Allows booting of PX4 or other firmware directly from external flash using memory mapped QuadSPI."安装"说明,以便将 SSBL 加载到你的电路板上。一旦 SSBL 加载完毕,请按照 PX4 的说明将 ArduPilot 加载到板子上GitHub - spracing/ssbl: Second-Stage Bootloader for the H7 series flight controllers. Allows booting of PX4 or other firmware directly from external flash using memory mapped QuadSPI.,但不要使用 PX4 固件,请使用 arducopter.bin 固件镜像。以下是步骤的总结:

  • 下载Releases · spracing/ssbl · GitHub,并按照GitHub - spracing/ssbl: Second-Stage Bootloader for the H7 series flight controllers. Allows booting of PX4 or other firmware directly from external flash using memory mapped QuadSPI.,将 SSBL 安装到外部闪存中;
  • 下载最新的 ArduPilot 外部闪存二进制文件,例如https://firmware.ardupilot.org/Copter/latest/SPRacingH7/arducopter.bin;
  • 使用 dd 将二进制文件填充到 2MB

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 快速闪烁,释放 BINDLED 缓慢闪烁 --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引导程序

Warning

安装 ArduPilot 引导程序是一个单向的操作。在这一步之后,你不能把板子恢复到出厂配置或加载 betaflight - 你必须把板子送回 Seriously Pro,重新刷上出厂固件,假设这是有可能的话。

如果你确定你只想在板子上使用 ArduPilot,那么烧录 ardupilot bootloader 可以使后续的升级更加简单。

  • 你最初必须在电路板上安装一个工作版本的 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 固件。

你可能感兴趣的:(#,《Mission,Planner》,开源,地面站,Mission,Planner,ArduPilot)