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) 卷烟 绵延 /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
这些说明适用于 J-Link GDB 服务器.
先决条件
下载 J-Link 软件 并按照其说明进行安装。
运行 JLink GDB 服务器
下面的命令用于运行使用 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
这将禁用目标供电,并尝试另一次闪存循环。