|
根据一个国外的帖子整理的,写c++代码和上传到arduino都在eclipse中完成,步骤比较多,但是建立后,之后的工作就是替换main.cpp中的setup和loop部分代码即可。不过用c就可以了。
1. 安装avrdude and AVR 库:
sudo apt-get install gcc-avr avr-libc avrdude
2. 安装CDT插件 。打开Eclipse,选择Help -> Install New Software…,Work with 选择 Indigo update site,然后选择 “Programming Languages” 下的 “C/C++ Development Tools” ,安装CDT插件。
3. 安装AVR Eclipse插件。选择Help -> Install New Software…,Work with 后的Add,在http中添加avr的源地址 http://avr-eclipse.sourceforge.net/updatesite/ ,等待下方出现avr插件,选择安装。
4. 下载linux 版本的Arduino SDK,http://arduino.cc/en/Main/Software,解压到Home下的某目录中(这里放在自建的OSS目录下,以下均按这个目录路径设置)
5. 在eclipse中设定编译环境。在eclipse->Windows->Preference,选择左侧AVR下的paths,
*AVR-GCC:选择Edit,path source选择custom, custom value设为 /home/maphysart/OSS/arduino-1.0.1/hardware/tools/avr/bin ( maphysart为用户名,需替换,以下同)
*AVR header files: 选择Edit,path source选择custom, custom value设为 /home/maphysart/OSS/arduino-1.0.1/hardware/tools/avr/lib/avr/include
* AVR Dude: 选择Edit,path source选择custom, custom value设为 /home/maphysart/OSS/arduino-1.0.1/hardware/tools
最后,点击apply,点击ok。
6. 建立avr的静态链接库。在eclipse中选择new, 然后选择c++ project ->AVR Cross Target Static Library -> emtpy project,project名字为ArduinoCore,然后next,去掉debug的选择,将MCU Type” 和“MCU Frequency”设定为ATmega328P 和16MHz (16000000 Hz) (适合的板子是arduino uno和Arduino Duemilanove)。
7. 在eclipse,右键单击ArduinoCore,选择Properties->c/c++ build → settings -> avr c++ compiler->directories,先后添加 两个路径, /home/maphysart/OSS/arduino-1.0.1/hardware/arduino/variants/standard 和 /home/maphysart/OSS/arduino-1.0.1/hardware/arduino/cores/arduino。
8. 在eclipse,右键单击ArduinoCore,选择import -> general -> file system,然后next,在目录中选择 /home/maphysart/OSS/arduino-1.0.1/hardware/arduino/cores/arduino,选择所有的文件,但去除对main.cpp的选择。然后点击finish。
9. 最后选择ArduinoCore,选额build project,生成静态库。
10. 创建测试项目。在eclipse中New,然后 “C++ Project” -》AVR Cross Target Application” -》“Empty Project”,项目名称为TestProject,next,去掉debug的选择,然后next,同样设定MCU type和频率。
11.右键点击新建的TestProject,然后选择Properties下的C/C++ Build,在“AVR Compiler” 和 “AVR C++ Compiler”两区域下directories,中类似添加两个路径, /home/maphysart/OSS/arduino-1.0.1/hardware/arduino/variants/standard 和 /home/maphysart/OSS/arduino-1.0.1/hardware/arduino/cores/arduino,并添加${workspace_loc:/${ProjName}}。
12. 在“AVR C++ Linker”区域中,设定command line pattern为
${COMMAND} --cref -s -Os ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS} -lm ${FLAGS}
13. 然后在AVR C++ linker区域下的Libraries下,添加library path ${workspace_loc:/ArduinoCore/Release} (即刚才建立的静态库的位置),在libraries下添加ArduinoCore。
14.在左侧的Project reference中,勾选ArduinoCore。
15. 选择TestProject,添加一个新的source file,名为main.cpp,拷贝进下面的代码,并保存项目。代码就是简单的blink例子的代码。注意,在cpp中不要使用new,delete等分配内存,以及在main函数中不要有return语句,main部分不用动。在setup和loop中添加代码即可。
#include <Arduino.h>
int ledPin = 13; // LED connected to digital pin 13
// The setup() method runs once, when the sketch starts
void setup() {
// initialize the digital pin as an output:
//setup 初始化的代码
pinMode(ledPin, OUTPUT);
}
// the loop() method runs over and over again,
// as long as the Arduino has power
void loop()
{
//添加loop部分的代码
digitalWrite(ledPin, HIGH); // set the LED on
delay(1000); // wait for a second
digitalWrite(ledPin, LOW); // set the LED off
delay(1000); // wait for a second
}
int main(void) {
init(); //启动arduino所必需的
setup(); //对应于arduino ide中的setup部分
while(true) {
loop(); //对应于arduino ide中的loop
}
}
16. build project。
17. 上传到uno中。在windows->preference-> avr -> avrdude中,勾选Use custom configuration file for AVRDude,然后AVRDude config file指定为 /home/maphysart/OSS/arduino-1.0.1/hardware/tools/avrdude.conf ,然后apply,ok。
18. 在eclipse中,选择建立的TestProject项目,右键单击选择Properties,选择avr → avrdude,在programmer configuration中选择new,configuration name设定为Arduino uno,programmer hardware选额arduino,Override default port设为连接uno后的端口 /dev/ttyACM0 , Override default baudrate选择为115200,最后ok。然后在programmer configuration中选择新建的Arduino uno。
19.最后执行eclipse菜单中的AVR-> upload project to target device即可。
参考英文原文:
http://horrorcoding.altervista.o ... -setup/#comment-246
|
|