# STM32 引导加载程序
PX4 引导加载程序的代码可从 Github 上获取 启动程序 (打开新窗口) 存放处。
# 支持的电路板
- FMUv2(Pixhawk 1,STM32F4)
- FMUv3(Pixhawk 2,STM32F4)
- FMUv4(Pixracer 3 和 Pixhawk 3 Pro,STM32F4)
- FMUv5(Pixhawk 4,STM32F7)
- TAPv1(TBA,STM32F4)
- ASCv1(TBA,STM32F4)
# 构建引导加载程序
Git 克隆 https://github.com/PX4/Bootloader.git
CD 启动程序
Git 子模组启动
Git 子模组更新
生产
完成此步骤后,Bootloader 目录中就会出现一系列适用于所有支持电路板的 elf 文件。
# 刷新启动加载程序
警告
正确的电源顺序对于某些电路板允许 JTAG / SWD 访问至关重要。请完全按照所述步骤操作。
以下说明适用于 Blackmagic / Dronecode 探头。其他 JTAG 探头需要不同但类似的步骤。尝试闪存引导加载程序的开发人员应具备必要的知识。如果您不知道如何操作,则可能需要重新考虑是否真的需要更改引导加载程序。
序列是
- 断开 JTAG 电缆
- 连接 USB 电源线
- 连接 JTAG 电缆
# 黑魔法/无人机编码探测器
# 使用正确的串行端口
- 在 LINUX 上:
/dev/serial/by-id/usb-Black_Sphere_XXX-if00
- 在 MAC 操作系统上:确保使用 cu.xxx 端口,而不是 tty.xxx 端口:
tar ext /dev/tty.usbmodemDDEasdf
arm-none-eabi-gdb
(gdb) 卷烟 ext /dev/serial/by-id/usb-Black_Sphere_XXX-if00
(gdb) MON SWDP_SCAN
(gdb) 缚上 1
(gdb) 单选项擦除
(gdb) 单词
(gdb) 加载 tapv1_bl.elf
...传输速率 17 KB/sec、 828 字节/写。
(gdb) 杀死
# J-Link
这些说明适用于 J-Link GDB 服务器 (打开新窗口).
# 先决条件
下载 J-Link 软件 (打开新窗口) 并按照其说明进行安装。
# 运行 JLink GDB 服务器
下面的命令用于运行使用 STM32F427VI SoC 的飞行控制器服务器:
JLinkGDBServer -select USB=0 -设备 STM32F427VI -if SWD-DP -speed 20000
--设备
常见目标的 /SoC 是
- FMUv2、FMUv3、FMUv4、aerofc-v1、mindpx-v2: STM32F427VI
- PX4_FMU-V4pro: STM32F469II
- PX4_FMU-V5: STM32F765II
- crazyflie: STM32F405RG
# 连接 GDB
arm-none-eabi-gdb
(gdb) 卷烟 电话分机:2331
(gdb) 载入 aerofcv1_bl.elf
# 故障排除
如果找不到上述任何命令,要么您使用的不是 Blackmagic 探头,要么其软件已经过时。请先升级探头上的软件。
如果出现此错误信息:
使用 vFlashErase 数据包擦除闪存时出错
断开目标机连接(同时保持 JTAG 连接)并运行
MON TPWR 禁用 SWDP_SCAN 附加 1
加载 tapv1_bl.elf
这将禁用目标供电,并尝试另一次闪存循环。