# 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 探头需要不同但类似的步骤。尝试闪存引导加载程序的开发人员应具备必要的知识。如果您不知道如何操作,则可能需要重新考虑是否真的需要更改引导加载程序。

序列是

  1. 断开 JTAG 电缆
  2. 连接 USB 电源线
  3. 连接 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 GDB 服务器 (打开新窗口).

# 先决条件

下载 J-Link 软件 (打开新窗口) 并按照其说明进行安装。

下面的命令用于运行使用 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

这将禁用目标供电,并尝试另一次闪存循环。