归档:使用 Make 为 APM2.x 构建 ArduPilot

警告

存档文章

ArduPilot 不再支持 Arduino 或 AVR。

本文介绍如何在 Windows、Mac 和 Linux 上使用 Make 为 APM2.x 生成代码。

警告

Copter 3.3 固件(及更高版本)和 Plane 3.4.0 之后的构建版不再适用于 APM 板。在撰写本文时,Plane、Rover 和 AntennaTracker 版本仍可安装,但您已无法从主分支构建 APM2.x(您需要从支持的发布分支构建)。

可在 APM 2.x 上构建的最后一个 Copter 固件 可从此处下载.

概述

开发人员构建 APM 应用程序的首选方式是使用与软件源一起分发的 Makefile 系统。Makefile 系统是构建 APM 的标准方式。APM 应用程序不能再使用标准的 Arduino IDE 构建,因为 APM 构建需要将 Arduino IDE 基础库排除在构建之外。

对于不想使用 make 的开发人员,可使用经过修改的 Arduino IDE 来模拟 APM 的定制构建过程。

要求

APM makefile 开箱即用,适用于 Mac OS 和 Linux 用户。Windows 用户可以通过 Unix 兼容系统(如 Mingw 或 Cygwin)使用 Makefile。

Mac OS

Mac OS 系统要求如下

  • 安装 1.0 或更高版本的 Arduino。Arduino 安装程序提供 AVR 编译器。

  • Apple Developer Tools(从 Apple 免费下载)。这些工具提供命令行实用程序,包括 GNU Make。

Arduino 应安装在 Spotlight 索引的位置。

Linux操作系统

请按照 本页 来使用 Linux 构建代码。Linux 系统要求因发行版而异。以下要求必不可少:

  • GNU sed 工具。

  • GNU make 工具,有时也称为 "gmake"。

  • GNU awk 工具,通常称为 "gawk"。 警告 许多 Linux 发行版默认不带 "gawk"。你可以使用 "which gawk "命令来测试是否有这个工具。

  • AVR-GCC 工具链

有多种方法可以为系统获取所有这些实用程序。您可以咨询 Arduino 的 Linux 指南 以获取在 Linux 下安装 AVR 工具链的说明。

Windows操作系统

请按照 使用 Make 在 Windows 上为 APM2.x 构建 ArduPilot.这些说明使用了 PX4 工具链的开发环境。

准备工作

从本地克隆 APM 存储库 https://github.com/ArduPilot/ardupilot

git 复制 --递归-子模块 https://github./ArduPilot/ardupilot.git
CD ardupilot

建筑

中指定的默认硬件平台构建草图。 config.mk您可以调用 生产 在草图目录中,不带参数:

$ cd ArduCopter $ make

默认情况下,编译的输出结果位于 $TMPDIR/_sketchname_.build

$ make %% param_table.o %% ArduCopter.cpp %% ArduCopter.o ... %% ArduCopter.elf %% ArduCopter.eep %% ArduCopter.hex

上传

如果正确配置了 `PORT` 变量,`upload` 目标将使用 `avrdude` 上载已构建的 APM 应用程序到基于 AVR 的平台。

$ cd ArduPlane $ make upload

对于 Pixhawk 平台,`px4-upload` 目标将使用 PX4 引导加载器执行上传。

故障排除

除代码错误外,编译过程本身也会尝试诊断妨碍成功编译的问题。它可能会发出以下诊断信息:

警告:发现多个 Arduino 副本,使用...(仅限 Mac OS)

Spotlight 发现您的系统中安装了多个 Arduino 版本。请检查打印的路径,确保使用的是正确的版本。要避免这个问题,要么删除旧版本的 Arduino,要么在调用构建系统时指定 ARDUINO 选项。通常情况下,系统会选择最近启动的版本。

ERROR:在包含此文件之前必须设置 BOARD。

草图 Makefile 未定义 BOARD 变量。对于 APM2.x 版本,该变量通常设置为 `atmega2560`。

错误:Spotlight 无法在您的系统中找到 Arduino。

Arduino 未安装,或者安装位置未被 Spotlight 索引。你可以在安装 Arduino 的位置启用 Spotlight,或者如上所述通过设置 ARDUINO 选项明确指定该位置。请注意,Spotlight 索引可能需要一些时间,因此在包含 Arduino 的位置启用 Spotlight 可能无法立即纠正这一问题。

错误:无法在此系统上找到 Arduino

(仅限 Linux 和 Windows)Arduino 不在标准位置之一。要么将 Arduino 移到标准位置,要么使用 ARDUINO 选项指定其当前位置。 config.mk 文件

错误:无法在路径上找到编译工具...

找不到编译器和相关工具。对于 Mac OS 和 Windows,这些工具通常是 Arduino 的一部分,此信息表明 Arduino 安装已损坏。

对于 Linux 系统,这意味着 AVR 工具未安装在标准位置。要么设置 TOOLPATH 选项指向包含 AVR 工具的目录,要么将其安装到标准位置。通常情况下,在 Linux 系统上安装 Arduino 会正确安装 AVR 工具。

ERROR:找不到 gawk - 您可能需要安装 GNU awk

(仅限 Linux 和 Windows)需要 GNU awk 实用程序,但尚未安装或无法找到。检查命令行中的 `gawk -version` 是否有效。您可能需要使用 AWK 选项明确指定其位置。