启动程序¶
引导加载程序的源代码见 AP_Bootloader 但是,许多电路板的预编译二进制文件都可以在 工具/引导加载器 固件服务器上的目录。请参考 README 文本 看看现有的引导加载程序是否与新电路板兼容。
闪存启动加载程序¶
我们目前有两种方法来闪存 ArduPilot 引导加载程序:
通过 GCS 将嵌入固件的 MAVLink(推荐)闪烁
使用 DFU 模式闪存。有关此方法,请参阅 使用 DFU 加载引导程序
使用 MavLink¶
ArduPilot 固件已包含引导程序。您可以使用 MAVLink 长命令:MAV_CMD_FLASH_BOOTLOADER(参数 5,位于 290876)对其进行闪存。
Mavproxy¶
在 Mavproxy 终端中输入:flashbootloader
Mission Planner地面站¶
使用 SETUP->Install Fimware 页面的 "Bootloader Update(启动程序更新)"按钮
通过 UART(Telem 端口)闪存固件¶
除了(飞行)控制器上的 USB 端口外,某些电路板还能通过串行/UART 连接更新固件。具有此功能的电路板将在其各自的 ardupilot/libraries/AP_HAL_ChibiOS/hwdef/* 您的 (飞行)控制器*/hwdef-bl.dat
文件。确认要闪存的电路板可以闪存后,导航到 ardupilot/工具/脚本
目录。
在该目录下有一个名为 uploader.py
您将使用它来闪存固件。键入 ./uploader.py --帮助
将显示您可使用的不同参数。这些参数将根据设置和(飞行)控制器中的具体硬件和波特率配置进行修改。本例中使用的是通过 USB-TTL 电缆连接的 CubeBlack,Telem1 端口的波特率设置为 921600。
使用简单的 dmesg
.输出结果应该是这样的
ftdi_sio 1-11.4:1.0: FTDI USB 串行 设备 变流器 检测到 USB 1-11.4: 检测到 FT232RL USB 1-11.4: FTDI USB 串行 设备 变流器 现在 所附 至 ttyUSB0
现在我们已经知道要使用哪个设备进行闪存,请使用相应的标志执行脚本。标记 --baud-bootloader-flash "921600";
对加快上传过程很重要。如果保持默认值 "57600";
您可能需要等待一段时间才能上传固件。韧体 --buad-flightstack "921600";
需要与您的 serialx_baudrate
以发送更新的 mavlink 命令。成功执行后,终端应输出如下内容:
./uploader.py --端口 /dev/ttyUSB0 --baud-bootloader-flash "921600"; --baud-flightstack "921600"; ~/ardupilot/build/CubeBlack/bin/arducopter.apj 已加载 固件 对于 9,0, 尺寸 1710572 字节数 等待 对于 的 引导加载程序...如果 的 官方 是否 不 应声 内 1-2 秒、 拔下 和 重插 的 USB 连接器。可能 不 获取 外部 焕发 尺寸 假设 0
已找到 官方 9,0 引导程序 修订 5 关于 /dev/ttyUSB0 引导加载程序 协议: 5
OTP:
类型 六角形
idtype: T
vid: 6e686365
pid: 676f6c6f
coa: REM1MzYwNDQyNjFE//////////////////////////9DVTExTDk2MDA0NjIN/////////////////////////zA2LzE4LzE5IDA2OjI0OjA2////////////////////MkRBRToxMDEx//////////////////////////////8=
嗅 003400483238511130313538
ChipDes:
家庭 STM32F42x
修订: 3
芯片
20016419 STM32F42x_43x 修订版3 (没有 1M 缺陷)
信息
焕发 尺寸 2080768
绵延 焕发 尺寸 0
board_type: 9 (fmuv3)
Board_rev: 0
身份验证 完整
设置 波特率 至 921600
擦除 : [====================] 100.0% 计划: [====================] 100.0% 核查 : [====================] 100.0% 重新启动。
执行 mavproxy.py --主人 /dev/ttyUSB0,921600
.