65.9K
CodeProject 正在变化。 阅读更多。
Home

在 Eclipse 中创建 Arduino 程序

starIconstarIconstarIconstarIconstarIcon

5.00/5 (9投票s)

2015 年 6 月 23 日

CPOL

12分钟阅读

viewsIcon

168874

关于设置 Eclipse 构建 Arduino Uno 程序文章。

引言

本文介绍如何在 Windows 计算机上设置 Eclipse IDE 和 AVR Eclipse 插件,以便为 Arduino Uno 开发程序。它也应该适用于其他基于 AVR 的 Arduino。

网上有很多关于为 Arduino 开发程序的文章,但大多数都已过时、太复杂、基于 Linux 系统等等。考虑到工具变化的速度,这很自然,所以本文迟早也会过时。但现在(2015 年年中)应该还能正常工作,而且我认为它也“相当简单”(字面意思是我想象中那么简单)。

本文基于 Eclipse Luna SR2 和 AVR Eclipse 插件以及 Arduino IDE 1.6.5-r2(截至 2015 年 6 月 22 日的所有工具的最新版本)。

背景

我可能不需要告诉你为什么要使用 Eclipse 而不是 Arduino IDE。如果你计划用 Arduino 创建更复杂的项目,或者将来想成为一名嵌入式软件开发者,你很快就会超越 Arduino IDE。然后有两种主要选择:Eclipse 或 Atmel Studio。如果你看到这篇文章,你可能已经选择了 Eclipse,这也是我喜欢的选择。

一旦你选择了 Eclipse,就有两条主要道路可供选择:

第一条路比较容易,但我以前尝试时并不喜欢它。我个人认为它介于真实世界的编程和 Arduino IDE 之间。例如,你可以设置的编译器选项非常有限。如果你决定使用真实世界的工具,为什么半途而废?但该插件正在快速开发,所以也许当前版本已经有所改进。但无论如何,本文将介绍第二条路,即使用 AVR Eclipse 插件。

 

安装工具

我们将需要以下工具:

以下是安装说明:

Arduino
http://www.arduino.cc/en/Main/Software 下载 Arduino 软件。

当前版本(2015 年 6 月)是 1.6.5-r2。你可以下载安装程序或 zip 文件。如果是 zip 文件,只需将其解压到计算机上的任何文件夹,例如 c:\programs\arduino1.6.5-r2。

Eclipse
https://eclipse.org/downloads/ 下载 **Eclipse IDE for C/C++ Developers**;

当前版本(2015 年 6 月)是 Luna SR2。我建议使用 32 位版本,即使是 64 位 Windows,因为我不确定 64 位 Eclipse 是否一切都会正常工作。

无需安装。你下载的是一个 .zip 文件,可以将其解压到计算机上的任何文件夹,例如 c:\programs\eclipse。
要启动 Eclipse IDE,请转到 eclipse 文件夹并运行 **eclipse.exe**。
你可能想在桌面上创建一个快捷方式以便快速访问。

当 Eclipse 启动时,你需要选择工作区的位置。这是计算机上存储所有项目的一个文件夹。之后你可以使用多个工作区并更改默认位置,但现在我建议只接受 Eclipse 提供的默认设置并继续。

AVR Eclipse 插件
启动 Eclipse IDE,然后在主菜单中选择 Help > Install New Software。
在 *Work with* 框中输入此更新站点地址:
http://avr-eclipse.sourceforge.net/updatesite
然后在键盘上按 Enter 键。

片刻之后,下方列表将显示 AVR Eclipse Plugin 项。通过勾选插件名称旁边的框来选择它,然后点击下方的 Next 按钮。
按照向导安装插件。这需要很长时间。你需要同意许可协议并确认安装未签名的插件。安装完成后,接受重新启动 Eclipse 的提议。

提示:你可以在 AVR Eclipse 插件网站找到带有图片的教程:
http://avr-eclipse.sourceforge.net/wiki/index.php/Plugin_Download


MinGW 工具
MinGW 工具用于获取 GNU make 工具。如果你的计算机上已安装 Atmel Studio 6.x,则可以跳过此步骤;你将在 [Atmel Studio 位置]\shellUtils 中找到 make.exe。我们将在下一节所述的 AVR Eclipse 插件配置中使用此路径。

安装 MinGW
http://www.mingw.org/ 点击左侧的 **Downloads** 链接。
这将带你到 http://sourceforge.net/projects/mingw/files/
在页面顶部附近,你会找到“Looking for the latest version?”(寻找最新版本?)这一行和一个下载链接。
下载 **mingw-get-setup.exe**(直接链接:http://sourceforge.net/projects/mingw/files/latest/download?source=files)。

运行安装程序。在第一个屏幕上,将所有设置保留为默认值,如果愿意,可以更改安装目录,然后单击 Continue。




在下一步中,等待下载一些文件,然后单击 Continue。

你应该会看到一个 MinGW Installation Manager(MinGW 安装管理器)窗口。在可用软件包列表中,单击 **msys base**(列表中的最后一项)旁边的框。

从上下文菜单中选择 Mark for Installation(标记为安装)。




从窗口顶部的菜单中选择 Installation > Apply Changes(安装 > 应用更改)。



在下一步中,单击 Apply 按钮。



片刻之后,MinGW 工具应该已安装。关闭窗口。

现在我们可以配置 AVR Eclipse 插件了。

 

设置 AVR Eclipse 插件

启动 Eclipse,然后在主菜单中选择 Window > Preferences。
在 Preferences 窗口中,展开 AVR > Paths。
使用右侧的 Edit...(编辑...)按钮设置路径,如图所示:



以下是我电脑上的路径:

AVR-GCC: C:\Programs\arduino-1.6.5-r2\hardware\tools\avr\bin
GNU make: C:\mingw_test\msys\1.0\bin
AVR Header Files: C:\Programs\arduino-1.6.5-r2\hardware\tools\avr\avr\include
AVRDude: C:\Programs\arduino-1.6.5-r2\hardware\tools\avr\bin

你可以看到大多数路径都指向 Arduino 的位置。GNU make 工具 (make.exe) 的路径指向 MinGW 的位置。路径可能因你安装工具的位置而在你的系统中有所不同。

要设置路径,请使用路径选择窗口中的 Browse(浏览)按钮,并选择 Path source: Custom(路径源:自定义);请参见下图。




接下来,在左侧选择 AVRDude 类别。

勾选 "Use custom configuration file for AVRDude"(为 AVRDude 使用自定义配置文件)复选框。

在 “AVRDude config file”(AVRDude 配置文件)框中,浏览到你的 Arduino 安装中的此文件路径。看起来是这样的:





配置文件路径是 **[你的 Arduino 路径]\hardware\tools\avr\etc\avrdude.conf**。

通过单击 OK 按钮关闭首选项窗口。

注意:我们将在下一步中再次回到这个窗口,但似乎关闭首选项窗口才能应用更改。否则,下一步将因 AVRDude 找不到其配置文件而出错。

再次从 Window 菜单打开 Preferences。

选择 AVR > AVRDude。

单击程序员配置列表右侧的 Add(添加)按钮。

在打开的窗口中,从 “Programmer Hardware”(程序员硬件)列表中选择 Arduino。
在列表上方的 Configuration name(配置名称)字段中输入一个名称,例如 **Arduino**。
在列表下方的 "Override default port"(覆盖默认端口)框中输入你的 Arduino 连接到的串行端口。

请注意,在 Windows 上,端口名称必须这样写:**"//./COM15"**。(当然,用你的 COM 端口号替换 15)。请参见下图。

单击 OK 关闭窗口,然后也关闭 Preferences 窗口。现在 IDE 已准备好进行 Arduino 开发。

 

创建你的第一个 Arduino 程序

本节介绍如何创建具有 Arduino MCU Framework(软件库)的项目,以便在程序中使用 Arduino 函数。
首先,我们将在 Eclipse 中创建一个路径变量,该变量将允许我们在 Arduino 新版本出现时轻松更新我们的项目。这只需要在工作区中执行一次。

在 Eclipse 主菜单中选择 Window > Preferences。

在 Preferences 窗口中,展开 General > Workspace > Linked Resources。


单击 New(新建)按钮添加一个新的路径变量。
将其命名为 **ArduinoPath**,并将其指向你的 Arduino 安装的主文件夹,对我来说是 c:\programs\arduino-1.6.5-r2。请参见图片。

关闭首选项窗口。


现在我们可以创建新项目了。

在 Eclipse 中,转到 File 菜单 > New > C++ Project。

输入你的项目名称,例如 **blink**。
选择 AVR Cross Target Application > Empty Project,然后单击 Next。

在下一步中,保留所有设置不变,然后单击 Next。

在下一步中,选择 MCU Type: **ATmega328P** 和 MCU Frequency (Hz): **16000000**。(即 16 MHz)。

单击“完成”。

现在我们有了一个空项目,并将向项目中添加指向 Arduino 文件的链接。

在 Eclipse 的 Project Explorer(项目浏览器)窗口中,右键单击项目,然后从上下文菜单中选择 New > Folder(新建 > 文件夹)。

在 New Folder(新建文件夹)窗口中,展开窗口下方的 Advanced options(高级选项),然后选择 "Link to Alternate location (Linked folder)"(链接到备用位置(链接文件夹))选项。

然后单击 Variables...(变量...)按钮,并从列表中选择我们的 ArduinoPath 变量。

然后单击 Extend...(扩展...)按钮。



在 Variable Extension(变量扩展)窗口中,你应该会看到 Arduino 文件夹的子文件夹。
浏览到 hardware\arduino\avr\cores\arduino,然后单击 OK。



现在你将返回到 New Folder 窗口,并且指向我们链接文件夹的路径应指向 **ArduinoPath/hardware/arduino/avr/cores/arduino**;请参见下图。



单击 Finish 关闭窗口。

**重复相同的过程**创建另一个文件夹。此文件夹的位置将是:

ArduinoPath/hardware/arduino/avr/variants/standard.

现在你应该会在项目中看到两个(链接的)子文件夹:arduino 和 standard。



转到项目首选项(Alt + Enter 或右键单击项目并选择 Properties)。

展开 C/C++ Build > Settings(设置)类别。

在窗口顶部,在 "Configuration"(配置)列表中选择 [All configurations](所有配置)。

选择 Additional Tools in Toolchain(工具链中的附加工具)子类别。

勾选 "Generate HEX file for Flash memory"(为 Flash 内存生成 HEX 文件)旁边的框。
HEX 文件是构建过程的输出,稍后将上传到 Arduino 板上的微控制器。



现在选择 **AVR C++ Compiler** > **Directories** 子类别,并将我们添加到项目中的两个 Arduino 文件夹添加到列表中。
最简单的方法是复制粘贴以下两个路径,包括引号(单击小 Add 按钮,然后粘贴一个路径;对另一个重复此操作)

"${workspace_loc:/${ProjName}/arduino}"
"${workspace_loc:/${ProjName}/standard}"

或者,单击 Add 按钮,然后在 Add directory path(添加目录路径)窗口中单击 Workspace 按钮。在 Folder selection(文件夹选择)窗口中,浏览到 [your_project]/arduino,然后单击 OK。再次单击 OK 关闭 Add directory path 窗口。对“standard”文件夹重复相同的操作。


这会告诉编译器在这些位置搜索源代码。


**重复相同的步骤**,也为 **AVR C Compiler** > **Directories** 中的 C 编译器目录执行此操作。

仍在 Preferences 窗口中,选择 AVR > AVRDude,并在 "Programmer Configuration"(程序员配置)列表中选择 Arduino。这是我们在 Set up the AVR Eclipse plugin(设置 AVR Eclipse 插件)部分之前创建的程序员。如果你在列表中看不到任何项,请返回该部分,确保你已完成所有步骤。


 

**现在我们将添加一个包含 setup() 和 loop() 函数的源文件。**

右键单击项目,然后选择 New > Source File(新建 > 源文件)。
输入一个带有 .cpp 扩展名的文件名,然后单击 Finish。名称可以与项目名称相同,或者为 sketch.cpp 等。



单击 Finish 创建文件。它将出现在 Project Explorer 中的项目下方。双击它以打开它。

将以下代码粘贴到新文件中:

#include "arduino.h"

void setup(void)
{
    pinMode(13, OUTPUT);
}

void loop(void)
{
    digitalWrite(13, HIGH);
    delay(200);
    digitalWrite(13, LOW);
    delay(2500);
}

保存文件。

注意:在默认配置下,Eclipse 在构建之前不会保存文件。我建议在 Window > Preferences > General > Workspace:  中启用自动保存:“Save automatically before build”(构建前自动保存)。否则,你将经常忘记在修改代码后保存更改,而实际上构建的是旧版本,没有这些更改。


构建你的项目.

项目应该可以无错误地构建,延迟函数会有些警告,但对我们的程序没有影响。第一次构建可能需要稍长时间,因为所有 Arduino 核心函数都会被构建,但之后,编译器足够智能,只会构建已更改的文件,因此构建程序只需几秒钟。

现在将你的项目上传到你的 Arduino 板.

首先,将 Arduino 板连接到你的计算机。给计算机足够的时间来识别该板。

现在单击 Eclipse 工具栏中的 AVR 图标。



你的程序将被上传到板上。在 Eclipse 下方的 Console(控制台)窗口中检查结果。会有一些来自 AVRDude 的消息。它应该以“avrdude done. Thank you.”(avrdude 完成。谢谢。)结束。



你应该能看到 Arduino 上的 LED 正在闪烁。这意味着我们的程序正在运行。

如果你收到“port is blocked”(端口被阻止)的错误消息,则你的 AVR Eclipse 插件配置中的 COM 端口号可能不正确。要修复此问题,请转到 Window > Preferences > AVR > AVRDude。在 "Programmer configurations"(程序员配置)列表中选择你的 Arduino 项,然后单击 Edit(编辑)。确保 COM 端口号(例如,//./COM15)正确。你可以在 Arduino IDE 或计算机的硬件管理器中找到此号码。

你现在已准备好在 Eclipse 中开发你的程序。不要错过专业 IDE 的一些酷炫功能,例如,你可以查看 Arduino 函数的源代码:只需选择函数名,右键单击并选择 Open Declaration(打开声明)。


 

关注点

在我看到的许多教程中,Arduino 核心函数首先被预构建成一个静态库,然后将该库添加到你的项目中。在本教程中,我们将 Arduino 文件直接链接到项目,并与我们的代码一起构建它们。我认为这更容易设置,更容易更新,并且构建不会耗费难以忍受的时间,所以我认为这比使用静态库更好。

如果你更新到新版本的 Arduino 软件,你只需要更改 ArduinoPath 变量的值,所有项目都应该能与新版本一起工作。

 

历史

2015-06-23 首次发布。

 

© . All rights reserved.