跳至内容

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) 卷烟 绵延 /dev/serial/by-id/usb-Black_Sphere_XXX-if00
  (gdb)  swdp_scan
  (gdb) 缚上 1
  (gdb)  选择权 擦除
  (gdb)  擦除质量
  (gdb) 负荷 tapv1_bl.elf
        ...
        转让 率: 17 KB/sec、 828 字节/写。
  (gdb) 杀死

这些说明适用于 J-Link GDB 服务器.

先决条件

下载 J-Link 软件 并按照其说明进行安装。

下面的命令用于运行使用 STM32F427VI SoC 的飞行控制器服务器:

JLinkGDBServer -选择 USB=0 -设备 STM32F427VI -如果 SWD-DP -速度 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 连接)并运行

 tpwr 关闭
swdp_scan
缚上 1
负荷 tapv1_bl.elf

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