Arduino Eclipse 开发环境

Posted vinccc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arduino Eclipse 开发环境相关的知识,希望对你有一定的参考价值。

概括起来说,Eclipse CDT,Toolchain用AVR Libc,以及:a, AVR Eclipse Plugin插件;b, make, rm等shell命令行工具;c, AVRDude,用来下载程序到单片机。

这篇随笔分2部分,第一部分是软件安装和设置步骤,第二部分建立一个demo工程,并编译、下载程序到开发板,以确定开发环境正常工作。

1. 安装和设置

首先安装Eclipse CDT,我用次新版Neon。在Marketplace搜索安装AVR Eclipse Plugin。

Toolchain有2个来源。首先,microchip网站可以单独下载AVR Toolchain for Windows。第二,可以安装Atmel Studio,里面除包含AVR Libc外,还有shell命令行工具。我采用后者,安装Atmel Studio,再把需要的东西拷贝出来。

Arduino软件中有AVRDude,可以直接拷贝出来用。

Atmel Studio安装目录下,Toolchain的路径为 toolchain\\avr8\\avr8-gnu-toolchain,如下图:

shell命令行工具的路径为 shellutils,如下图:

Arduino安装目录下,AVRDude路径为 hardware\\tools\\avr\\bin\\avrdude.exe,配置文件路径为 hardware\\tools\\avr\\etc\\avrdude.conf,将它们都拷贝出来,放在同一个目录下。AVRDude的配置文件默认搜寻路径中包括当前目录,因此可以把配置文件和可执行程序放在一起。顺便说一下,Arduino安装目录中也包含AVR Libc,但是是经过Arduino项目修改过的。用它应该是没有问题的,但是我还是用了官方出的。

另外,分析一下avrdude.exe的链接关系,发现它依赖于LIBUSB0.DLL,因此,需要把它一同拷贝出来,放在avrdude.exe相同的目录中。所以,AVRDude目录中应包含3个文件:avrdude.exe, avrdude.conf, libusb0.dll。

都弄妥后,需要设置PATH环境变量。我喜欢用一个bat批处理来启动Eclipse,这样可以单为Eclipse设置环境变量,而不用修改Windows系统变量。启动脚本如下:

set PATH=%windir%\\System32

set JAVA_HOME=C:\\Java\\jdk_x64\\jdk1.8.0_144
set TOOLCHAIN_HOME=%CD%\\avr8-gnu-toolchain
set SHELLUTILS_PATH=%CD%\\shellutils
set AVRDUDE_PATH=%CD%\\avrdude

set PATH=%JAVA_HOME%\\bin;%TOOLCHAIN_HOME%\\bin;%SHELLUTILS_PATH%;%AVRDUDE_PATH%;%PATH%

start %CD%\\eclipse\\eclipse.exe  

好吧,我承认,这些PATH其实是不必要的。AVR Eclipse Plugin插件设置中还是需要再设置这些路径的。但是,加到PATH中有一个好处是,可以在Eclipse Terminal中,手工执行一些命令行。接着设置AVR Eclipse Plugin,如下图。需要设置这几个路径:

  • AVR-GCC:Toolchain安装目录下的 bin
  • make:shellutils目录
  • AVR Header Files:Toolchain安装目录下的avr\\include
  • AVRDude:

AVRDude的配置文件路径也需要指定一下,如下图:

接下来,要增加AVRDUde的“Programmer configuration”。简单地说,Programmer configuration就是调用AVRDude写程序的命令及选项的模板。为确定AVRDude命令及选项,有一个办法是借助Arduino软件。在Arduino软件中下载一个程序到开发板,观察输出区域中的命令调用,例如:

C:\\Arduino\\arduino-1.8.5\\hardware\\tools\\avr/bin/avrdude -CC:\\Arduino\\arduino-1.8.5\\hardware\\tools\\avr/etc/avrdude.conf -v -patmega328p -carduino -PCOM4 -b115200 -D -Uflash:w:C:\\Users\\user1\\AppData\\Local\\Temp\\arduino_build_421366/Blink.ino.hex:i 

  

由此可确定,对于 Arudino UNO:

  • 协议为arduino(-c arduino)
  • MCU为atmega328p(-p atmega328p)
  • 串口号为COM4(-P COM4)
  • 波特率为115200(-b 115200)
  • -D选项

依照上述设置,增加Arduino UNO的Programmer configuration,如下。这里主要是选择协议和串口参数,其余选项会由AVR Eclipse Plugin自动补全。可以查看界面底部的命令行预览:

 

2. Demo工程

搞一个blink Demo工程。新建一个C Project,选择AVR GCC Toolchain,并指定MCU型号和主频。Arduino UNO为 atmega328p,16MHz主频:

增加源文件main.c,实现LED闪烁,代码如下。Arduino UNO开发板上LED接在PB5口:

#include <avr/io.h>
#include <util/delay.h>

int main() {

    DDRB = 0xFF;

    for (;;) {
        PINB = 1 << PINB5;
        _delay_ms(500);
        PINB = 0;
        _delay_ms(500);
    }
}

  

需要对工程属性进行一些设置。首先指定生成HEX文件:

接下来,设置AVRDude有关的参数。Programmer configuration选择先前第一部分中创建的Arduino UNO配置。高级选项卡中启用-D选项。留意前面Arduino软件调用AVRDude的命令行,可以看到它使用了此选项:

 

现在可以编译了。选择菜单Project->Build Project,如果成功编译,在Debug目录下会生成blink.hex文件。再选择菜单AVR->Upload Project to Target Device,将HEX文件下载到开发板。留意Console View的输出内容,确认编译和下载成功。如果一切顺利,程序下载到开发板上后,LED会以1s的频率闪烁:

 

以上是关于Arduino Eclipse 开发环境的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse 中的通用代码片段或模板

arduino虚拟键盘开发环境及对应键盘按键代码

教你整个高级一点的Arduino开发环境

ESP8266 for Arduino开发环境安装

IOT实战案例--ESP32开发板跑通Arduino环境blink.....

小白入门Arduino,一步一图搭建开发环境