# 烧录固件

\[copywiki 目的地='copter,plane,rover,planner,blimp,sub'\].

## 装入固件

本页面解释如何让ArduPilot固件进入自动驾驶器:如何分辨已经放在棋盘上的东西,因此需要哪种加载方法,以及如何确认结果.

<div class="callout info" id="bkmrk-%E6%8F%90%E7%A4%BA%EF%BC%9A%E5%A6%82%E6%9E%9C%E4%BD%A0%E7%9A%84%E8%87%AA%E5%8A%A8%E9%A9%BE%E9%A9%B6%E5%91%98%E5%B7%B2%E7%BB%8F%E8%BF%90%E8%A1%8C%E4%BA%86ard">**提示**：

如果你的自动驾驶员已经运行了ArduPilot,而你只是想更新到新的版本,你可以直接跳转到**其下, 其下, 并存于下, 其下, 并存于下, 并存于下, 并存于下, 并存于下.**.

</div>## 步骤1:将自动驾驶器连接到计算机

\*\* 在你的计算机上安装一个地面站\*\*,然后用USB电缆连接自动驾驶。 直接在计算机上使用USB端口,而不是USB中枢.

<div class="figure" id="bkmrk-pixhawk-usb-%E8%BF%9E%E6%8E%A5">[![../../../images/pixhawk_usb_connection.jpg](https://doc.yufeiaero.com/uploads/images/copter/pixhawk_usb_connection.jpg)](https://doc.yufeiaero.com/_images/pixhawk_usb_connection.jpg)Pixhawk USB 连接

</div>对于这第一步,插入板子通常: do**没有**扣上DFU/BOOT按钮,不要连接BOOT针. 下一步要看董事会在自己开始的时候如何表现自己.

Windows应当自动检测并安装正确的驱动软件.

<div class="callout info" id="bkmrk-%E8%AF%B4%E6%98%8E%EF%BC%9A%E5%A6%82%E6%9E%9C%E4%B8%8B%E4%B8%80%E6%AD%A5%E4%B8%80%E6%97%A0%E6%89%80%E8%8E%B7-%E5%B0%B1%E6%80%80%E7%96%91%E6%9C%89%E7%BA%BF-%E6%93%8D">**说明**：

如果下一步一无所获 就怀疑有线 操控板 许多使用消费朔方电子设备销售的USB电缆都是充电 một数据线.

</div>## 步骤2:检查 自动驾驶器上已经包含的内容

ArduPilot固件是由一个长期联合国系统自动驾驶员闪存的小型程序所装入的,称为“卸载器”。 ArduPilot自己的装货机和它从下来的PX4装货机鳏夫,都正在为USB上空的地面站接受固件. 属于其他固件的bootloaders,如大多数Beta Albalight飞行控制器上运来的机型,没有,必须在ArduPilot首次装入之前更换.

如果自动驾驶器是从一个[ArduPilot 合作伙伴](https://ardupilot.org/about/Partners),或者它以前运行过ArduPilot或PX4固件。 这是正常的**没有**显示运行 Betaflight、 INAV 或类似的棋盘圆满完成, 或者棋盘的页面在**通用自动驾驶器**说ArduPilot必须第一次通过DFU加载.

如果你不确定,看看板 如何在计算机上出现 它插上如上。

你找到的东西意味着:

- **存在一个ArduPilot 兼容的启动器**如果棋盘显示为以自动驾驶器命名的串行设备,即:`立方体Orange+ 变形器`或`皮克斯霍克6C`。同名词与`<span class="pre">- 比尔</span>`或`<span class="pre">- 保证BL -v10安全</span>`附录表示棋盘目前坐落在ArduPilot bootloader,而不是主固件中,这也很好,尽管并不是每个棋盘都会在bootloader中更改名称. 主要 PX4 时代板`PX4 传真机`或`PX4 BL FMU 软件`作为最后确认,特派团规划员**SETUP 安装固件**屏幕会检测板。
- **不存在ArduPilot 兼容的启动器**如果序列设备被命名为其他固件,即:`Được rồi.`, `INAV 互联网档案馆`,或通用软件`STM可能成为虚拟连线`,或者如果棋盘仅作为 DFU 设备可见,在握住 DFU/BOOT 按钮后出现,或者在插入时连接 BOOT 针头.

## 第3步:装入固件

**如果存在兼容的 ArduPilot 启动器**后续**其下, 其下, 并存于下, 其下, 并存于下, 并存于下, 并存于下, 并存于下.**地面站将固件安装在 USB 连接上 这也是以后每个固件更新所使用的方法.

**如果不是的话**后续**普通装填器件 -- -- 软件 -- -- 仅限芯片**。ArduPilot 启动器和固件作为单一文件下载,并使用STM32CubeProgrammer在DFU模式的USB上加载。 这是一个一次性的操作:一旦它成功,板子就有一个ArduPilot bootload器,后来的所有更新都使用上面的地面站方法. 该页还覆盖了来自外部闪存的板块,例如SPRacing系列,它们再次需要不同的程序.

<div class="callout info" id="bkmrk-%E8%AF%B4%E6%98%8E%EF%BC%9A%E4%B8%80%E4%BA%9B%E5%B8%A6%E6%9C%891mb%E9%97%AA%E5%AD%98%E6%8B%85%E5%BD%93%E7%9A%84%E8%87%AA%E5%8A%A8%E9%A9%BE%E9%A9%B6%E5%91%98">**说明**：

一些带有1MB闪存担当的自动驾驶员 难道为了保存闪存空间,没有在他们的固件中包含一个装入器的复制件. 这些板安装了兼容的卸载器,但无法从ArduPilot内部更新;见**普通加载器更新**.

</div>## 第4步:测试是否奏效

固件装入后:

- 上传完成后等待几秒钟。 通常要花一点时间,靴装机才能退出并启动主固件,然后在此之前连接就会失败.
- 新闻**连接**在你们的地面站。 \*\* 连接任务规划员到自动助理\*\* 有更多信息。
- 证实有关连接的固件版本和机体类型。 在任务规划中,**信件**选项卡,在HUD, 作为自动驾驶靴。
- 切换到*飞行任务规划员飞行数据*屏幕和倾斜板。 团结与民主联盟的态度应该遵循,这证实了该固件正在运行和阅读IMU。

此时任何枪前信息都需在新装的自动驾驶上:机体仍需要其\*\*加速计\*\*,\*\*compass \*\*,以及\*\*radio \*\*校准才能武装.

## 补充资料

### 正在下载固件

地面站,例如*特派团规划员*下载和安装`稳定`因此,需要手动下载的软件`贝塔`,开发,或自定义构建,或当自动驾驶需要DFU加载时.

每个支持的自动驾驶的固件都会在[ArduPilot 固件服务器](https://firmware.ardupilot.org/)要找到正确的文件 :

- 打开[(原始内容存档于2018-07-21). Stirtyware.ardupilot.org](https://firmware.ardupilot.org/)
- 单击机体类型的链接(即:[飞机](https://firmware.ardupilot.org/Plane/), [计算机](https://firmware.ardupilot.org/Copter/), [罗弗](https://firmware.ardupilot.org/Rover/), [次级](https://firmware.ardupilot.org/Sub/)或[天线跟踪器](https://firmware.ardupilot.org/AntennaTracker/))
- 选择您想要的释放 :`稳定`, `贝塔`,或`最新数据`(见下文各节)
- 查找名称与您的自动驾驶最匹配的目录
- 下载适合您将使用的加载方法的文件 :
    - `页:1`- 单是坚固器件,通过地面站装入已经装有ArduPilot兼容的装货机的板上
    - `使用 bl.hex 的参数`- 装货机和固件结合,通过DFU装入没有ArduPilot兼容装货机的板上
    - `阿尔杜XXX.abin`- 从SD卡装上\*\*,在支持它的自动驾驶机上
    - `阿尔杜XXX.bin`- 原始二进制,用于`<span class="pre">dfu-util (法语)</span>`和来自外部闪光板的

<div class="callout info" id="bkmrk-%E8%AF%B4%E6%98%8E%EF%BC%9A%E4%B8%80%E4%BA%9B%E8%87%AA%E5%8A%A8%E9%A9%BE%E9%A9%B6%E5%99%A8%E9%92%88%E5%AF%B9%E7%9A%84%E6%98%AF%E7%89%B9%E5%AE%9A%E6%9C%BA%E4%BD%93%E7%B1%BB%E5%9E%8B">**说明**：

一些自动驾驶器针对的是特定机体类型,而固件并不是自动为其他机体制造的. 仍然可以为这些机体建造ArduPilot,[自定义固件构建服务器](https://custom.ardupilot.org/).

</div>#### 稳定

`稳定`是当前发布的,并且是几乎所有人的正确选择。 这是有助于提高地面站安装的 默认从其固件安装屏幕。 每辆车`稳定`目录总是保存最新版本;过去的特定版本保留在编号中`<span class="pre">稳定-x.y.z</span>`旁边有目录

<div class="callout info" id="bkmrk-%E8%AF%B4%E6%98%8E%EF%BC%9Aardupilot%E8%AE%A1%E5%88%92%E9%9D%9E%E5%B8%B8%E8%B0%A8%E6%85%8E%2C%E7%8E%B2">**说明**：

ArduPilot计划非常谨慎,玲珑一世的任何事物要么被评价为公正地限制了它对现有系统 往后的影响,要么 你还好吗? 我们鼓励用户升级到任何发布的点发布,因为他们有时包含非常重要的bugfixs.

</div>#### 贝塔

在此之前展开了`稳定`释放,`贝塔`版本发布. 如果您想要尝试更新的特性或帮助开发者测试新的代码,这些代码可能会被使用. 由于这些是"β"版本,可能仍然存在bugs. 即使在稳定释放固件中也有可能。 然而,一个Beta发行版已经开发团队测试了,并且已经进行了飞行测试. 此发布允许更广泛的用户群在发布前完成固件测试 。`稳定`。鼓励有经验的ArduPilot用户测试这一固件并反馈。

任务规划员对**我给你安装固件**上传此发行的页面, 但稍后`稳定`释放可能已经存在。 请先检查普通机体上传选项 。

#### 最新开发者版本

这反映了ArduPilot代码开发分支的现状. 开发小组已对其进行审查,通过了所有自动化测试套房,在大多数情况下还进行了测试 看,这些测试套房都已经通过。 此代码每天构建,可供有经验的用户测试. 这相当于"alpha"的释放,并且可能存在bugs,尽管很少出现"crash approduction". 在添加了修改或引入了 49 个功能之后不久, 维基语录中的 \*\*Upcoming features \*\* 部分更新了添加或更改的信息。

此代码必须手动下载于[固件下载](https://firmware.ardupilot.org)页面为`最新数据`然后使用您的地面站的定制固件选项, 或者通过 DFU 上传。

#### 自定义构建

该[自定义固件构建服务器](https://custom.ardupilot.org)以您选择的特性集构建固件`稳定`, `贝塔`,或`最新数据`树枝。 这就是如何启用释放的用于闪存限制自动驾驶的固件中没有的特性,而牺牲你不需要的特性. 见**通用软件**说明,和\*\* 软件特性限制\*\*

### 参数转换

将固件更新到较新的版本不会改变现有的参数,除非固件是针对对全球不同机体类型的,在这种情况下,参数可有助于对该机体的默认值重 至于该机体的默认值.

升级时,您应当带一份参数,并保存与您正在移动的版本对应的文件名(使用任务规划器上的“保存到文件”按钮)**你在清 清 清 清 作为一种 清 清 清 清 清 清 清 清 清 清 清 清可在 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 tai 清 ahead 清清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清 清** 减轻贫穷 如果你决定你必须回到一个更早的固件 这些对修复你的车来说是宝贵的 不过减轻贫穷*秘书处的说明*曾经将那些保存的参数文件应用到较新版本的固件 sureware!

ArduPilot 努力使固件升级无缝. 有时我们需要移动参数,改变它们的缩放或简单地去掉它们。 固件更新后,我们自动在第一个靴子上进行。

我们不能永远保留这个参数的迁移代码,所以我们保证从哪个版本升级到哪个版本是有限度的. 您仍然可以从旧版本升级到较新的版本,但您可能会发现,在您现在使用默认参数值而不是您自定义的值时,一些功能发生了意想不到的变化.

如果你的自动驾驶器远远落后于现代鹫峰版本,你仍然可以得到参数转换——你只需要闪烁中间版本——使它成为一个多步骤的过程.

<table class="docutils" id="bkmrk-%E6%96%B0%E7%89%88%E6%9C%AC-%E6%9C%80%E6%97%A7%E7%9A%84%E8%BF%81%E7%A7%BB%E7%89%88%E6%9C%AC-4.8%28%E6%9C%80%E6%96%B0%E6%95%B0%E6%8D%AE"><colgroup><col style="width:35%;"></col><col style="width:65%;"></col></colgroup><thead><tr><th class="head">新版本</th><th class="head">最旧的迁移版本</th></tr></thead><tbody><tr><td>4.8(最新数据)</td><td>4.3</td></tr><tr><td>4.7</td><td>4.2</td></tr><tr><td>4.6</td><td>4.1</td></tr><tr><td>4.5</td><td>4.1</td></tr><tr><td>4.4</td><td>4.1</td></tr></tbody></table>

注意并非每个车型都有每个版本号的发布——例如,Sub没有4.2,4.3,4.4或4.6的发布. 使用您车型领先的版本, 它不比上表中的版本年久; 4.1上的子用户会移动到4.5, 然后移动到4.7 mà.

### 通过SD卡加裝固 没問題 看来

一些自动驾驶器上的固件可以通过复制一个`(原始内容存档于2017-09-29). ardupilot.abin`固件文件在SD卡上,然后电源循环ظار الكر 23. 如果USB端口不易进入,或必须远程交付更新,则这样做是有用的联合国宪章。 关于如何通过SD Card更新固件的详情,请参见此处\*\*.

### 固件特性限制

并不是每个自动驾驶员的固件都包含每个ArduPilot特性. 你很擅长使用1MB闪存的自动驾驶器,特别是其特性被移除,以便符合密码ử.

- 关于以下特征的清单:**没有**包含在当前“ 最新” 自动驾驶器的固件中,参见**此页面**。特定板和固件版本的确定列表是:`特性.txt`文件夹中的文件[固件服务器](https://firmware.ardupilot.org/)。见**普通有限显现的软件**包括记录和档案管理限制。
- 默认从1MB自动驾驶器中排除的每个功能都可以在机上选择.[自定义固件构建服务器](https://custom.ardupilot.org)。许多特征*已经*您的应用程序可能不需要默认包含, 因此一个自定义构建可以添加一些被排除的特性, 同时又会丢弃一些不需要的特性 。 例如,省略 QuadPlane 支持就可以在不需要的 Plane 上腾出空间。 驱动器和外围支持可以单独选择,以便只有实际使用的驱动器和外围支持能够进行闪存.
- 自定义构建服务器可以从日主分支,以及Stable和Beta分支构建.

---

*译自 ArduPilot Copter「Loading Firmware」· [查看原文](https://ardupilot.org/copter/docs/common-loading-firmware.html) · CC BY-SA 3.0*