启动程序更新
PX4 引导加载程序 用于为 Pixhawk 电路板 (PX4FMU、PX4IO)。
Pixhawk 控制器通常预装了适当版本的引导加载程序。但在某些情况下,它并不存在,或者存在需要更新的旧版本,或者电路板已被烧毁,需要擦除并重新安装引导加载程序。
本主题介绍如何构建 PX4 引导加载程序,以及将其闪入电路板的几种方法。
信息
- 大多数电路板需要使用 调试探头 更新引导加载程序。
- 关于 FMUv6X-RT 你可以 通过 USB 安装引导加载程序/解砖电路板.如果没有调试探针,这将非常有用。
- 在 FMUv2 和某些定制固件上(仅限),您可以使用 QGC 引导加载程序更新.
构建 PX4 引导加载程序
PX4 引导加载程序 FMUv6X 及更高版本
从 FMUv6X (STM32H7) 开始的电路板使用树内 PX4 引导加载程序。
可以在 PX4-自动驾驶仪 目录,使用 生产
命令和特定于板卡的目标 _bootloader
后缀。
对于 FMUv6X,命令为
生产 px4_fmu-v6x_bootloader
这将构建引导加载程序二进制文件,即 build/px4_fmu-v6x_bootloader/px4_fmu-v6x_bootloader.elf
它可以通过 SWD 或 DFU 闪存。如果您正在构建引导加载程序,那么您应该已经熟悉这些选项中的一种。
如果需要 HEX 文件而不是 ELF 文件,请使用 objcopy:
arm-none-eabi-objcopy -O ihex build/px4_fmu-v6x_bootloader/px4_fmu-v6x_bootloader.elf px4_fmu-v6x_bootloader.hex
PX4 引导加载程序 FMUv5X 及更早版本
在 FMUv5X 之前(STM32H7 之前)的 PX4 板使用的是 PX4 引导加载程序 存放处。
软件仓库 README 中的说明解释了如何使用它。
调试探针引导加载程序更新
下面的步骤解释了如何使用一个"...... "工具手动更新引导加载程序。 兼容调试探头:
获取包含引导加载程序的二进制文件(可从开发团队或 自建).
获取 调试探头.通过 USB 将探头连接到计算机,然后设置
gdbserver
.进入包含二进制文件的目录,在终端运行目标引导加载程序的命令:
FMUv6X
吁arm-none-eabi-gdb px4_fmu-v6x_bootloader.elf
FMUv6X-RT
吁arm-none-eabi-gdb px4_fmu-v6xrt_bootloader.elf
FMUv5
吁arm-none-eabi-gdb px4fmuv5_bl.elf
信息
H7 引导加载程序来自 PX4/PX4-自动驾驶仪 用以下模式命名
*._bootloader.elf
.来自 PX4/PX4-Bootloader 命名模式为*_bl.elf
.gdb 终端 出现,并显示以下输出:
吁GNU gdb (GNU 工具 对于 手臂 嵌入式 处理器 7-2017-Q4-MAJOR) 8.0.50.20171128-git 版权 (C) 2017 Free Software Foundation, Inc. 许可证 GPLv3+: GNU GPL 版本 3 或 之后 <;http://gnu.org/licenses/gpl.html>; 这 是 免费的 软件 你 是 免费的 至 改变 和 再分配 它。 那里 是 没有 保修、 至 的 范围 准许 由 法律 类型 "显示复制"; 和 "显示保修"; 对于 详情 这 GDB 是 配置 作为 "--host=x86_64-linux-gnu --target=arm-none-eabi". 类型 "显示配置"; 对于 配置 详情 对于 飞虫 报告 指示、 请 see: <;http://www.gnu.org/software/gdb/bugs/>;. 查找 的 GDB 手册 和 其他 文献资料 资源 在线 在: <;http://www.gnu.org/software/gdb/documentation/>;. 对于 帮助、 类型 quot;帮助"。 类型 quot;恰当的词"; 至 搜索 对于 指令 相关 至 "word"... 阅读 符号 从 px4fmuv5_bl.elf...done.
查找您的
<dronecode-probe-id>;
通过运行ls
命令中的 /dev/serial/by-id 目录。现在用以下命令连接调试探针:
吁卷烟 绵延 /dev/serial/by-id/<;dronecode-probe-id>;
用另一根 USB 电缆接通 Pixhawk 的电源,然后将探针连接到
FMU-DEBUG
港口。信息
如果使用 Dronecode 探头,您可能需要取下外壳才能连接到该探头。
FMU-DEBUG
端口(例如,在 Pixhawk 4 上可以使用 T6 梅花螺丝刀)。使用以下命令扫描 Pixhawk 的 SWD 并与其连接:
吁(gdb) mon swdp_scan (gdb) 附 1
将二进制文件加载到 Pixhawk 中:
吁(gdb) 负载
更新引导加载程序后,您可以 加载 PX4 固件 使用 QGroundControl.
QGC 引导加载程序更新
最简单的方法是首先使用 QGroundControl 以安装包含所需/最新引导加载程序的固件。然后,您可以通过设置参数在下次重启时启动引导加载程序更新: SYS_BL_UPDATE.
这种方法只能在以下情况下使用 SYS_BL_UPDATE 存在于固件中。
警告
目前只有 FMUv2 和一些定制固件包含所需的引导加载程序。
步骤如下
插入 SD 卡(启用启动日志以调试任何问题)。
更新固件 包含新的/所需的引导加载程序的映像。
信息
更新后的引导加载程序可能在定制固件中提供(即开发团队提供),也可能包含在最新的主分支中。
等待载具重新启动。
查找并启用 参数 SYS_BL_UPDATE.
重新启动(断开/重新连接电路板)。更新引导加载程序只需几秒钟。
一般来说,此时您可能需要 更新固件 再次使用正确/新安装的启动加载程序。
更新 FMUv2 引导加载程序的具体过程示例如下。
FMUv2 引导加载程序更新
如果 QGroundControl 如果您安装了 FMUv2 目标机(请参阅安装过程中的控制台),并且使用的是较新的板,则可能需要更新引导加载程序,以便访问飞行控制器上的所有内存。
信息
早期 FMUv2 Pixhawk 系列 飞行控制人员有 硬件问题 该问题在更新的电路板上已经解决,但您可能需要更新出厂时提供的引导加载程序,以便安装 FMUv3 固件并访问全部 2MB 可用内存。这个问题在较新的电路板上得到了解决,但您可能需要更新出厂时提供的引导加载程序,以便安装 FMUv3 固件并访问全部 2MB 可用内存。
更新引导加载程序
插入 SD 卡(启用启动日志以调试任何问题)。
更新固件 至 PX4 师 版本(更新固件时,请检查 高级设置 然后选择 开发人员构建(主版本) 从下拉列表中选择)。 QGroundControl 将自动检测硬件是否支持 FMUv2,并安装相应的固件。
等待载具重新启动。
查找并启用 参数 SYS_BL_UPDATE.
重新启动(断开/重新连接电路板)。更新引导加载程序只需几秒钟。
那么 更新固件 又来了这一次 QGroundControl 将自动检测硬件为 FMUv3,并适当更新固件。
信息
如果硬件具有 硅勘误表 在这种情况下,您将无法安装 FMUv3 硬件。在这种情况下,您将无法安装 FMUv3 硬件。
其他电路板(非 Pixhawk)
不属于 Pixhawk 系列 它们将有自己的引导程序更新机制。
对于预闪存了 Betaflight 的电路板,请参见 在 Betaflight 系统上刷新引导加载程序.