Seguimos con Eclipse+Arduino PDF Imprimir Email
Escrito por Raúl Milla
Miércoles, 30 de Junio de 2010 18:32

Bueno, ahora vamos a explicar como crear una aplicación y subirla a Arduino únicamente usando Eclipse. Para hacer uso del siguiente ejemplo/tutorial hemos de tener todo configurado como en el articulo anterior.

Inicialmente tendremos que crear la configuración de "avrdude", que es el programa que sube los .hex a Arduino, desde el IDE de Arduino, para ello simplemente tenemos que copiar el fichero "arduino/hardware/tools/avrdude.con" a "usr/local/etc".

Ahora abrimos nuestro Eclipse y creamos un proyecto nuevo, aunque en esta ocasión pincharemos "AVR Cross Target Application". En las propiedades del proyecto configuramos los siguientes parámetros,

AVR > AVRDude (panel de la derecha) > New
Programmer Hardware (-c) = "Atmel STK500 Version 1.x firmware"
Override default port (-P) = /dev/ttyUSB0 (en mi caso)
Override default baudrate (-b) = 57600
AVR > Target Hardware MCU ATmega328P y MCU CLock Frequency 16000000
C/C++ Build > Setting > (panel de la derecha) > Additional Tools in Toolchain > Checkear solamente "Generate HEX file for Flash memory" y "Print Size"
C/C++ Build > Setting > (panel de la derecha) > AVR Assembler > Debugging > No debugging info
C/C++ Build > Setting > (panel de la derecha) > AVR Compiler > Directories > Los directorios donde están los headers
C/C++ Build > Setting > (panel de la derecha) > AVR Compiler > Debugging > No debugging info
C/C++ Build > Setting > (panel de la derecha) > AVR Compiler > Optimization > Size Optimizations
C/C++ Build > Setting > (panel de la derecha) > AVR C++ Compiler > Directories > Los directorios donde están los headers
C/C++ Build > Setting > (panel de la derecha) > AVR C++ Compiler > Debugging > No debugging info
C/C++ Build > Setting > (panel de la derecha) > AVR C++ Compiler > Optimization > Size Optimizations
C/C++ Build > Setting > (panel de la derecha) > AVR C++ Linker > Objects > Other Objects (*.o) > Aquit tienes que poner las librerías compiladas *.a y *.o a las que hacen referencia los headers
Este último paso me mareo bastante, puesto que en todos sitios dicen que el parametro que se tiene que configurar es Libraries cuando en realidad es Objects.

Ahora podemos escribir nuestro código teniendo en cuenta lo siguiente,
detras de los includes es necesario poner esta función,
extern "C" void __cxa_pure_virtual()
{
while(1);
}

La estructura principal debería seguir este patrón,
int main(void)
{
init();
setup();
for (;;)
loop();
return 0;
}

Las funciones setup() y loop() la definimos y desarrollamos antes del int main(void), y son las funciones que hacen referencia a la que nos podemos encontrar en el IDE oficial de Arduino.

Ahora le damos al martillo y no deberíamos tener ningún problema en la compilación. Lo único que nos queda es subir nuestro programa a Arduino. Para ello, el Plugins de AVR crea un bontón en el Eclipse, presionamos el reset de la placa y acto seguido le damos al botón. Si todo ha salido bién debería volcar el programa a Arduino y este ponerse a funcionar.

Si en nuestro programa tenemos alguna traza por el puerto serie podemos abrir el Terminal como explicamos en el articulo anterior y ver como Arduino está totalmente integrado en nuestro Eclipse.

Espero que les haya gustado. Un saludo y hasta la próxima.
Leer más...
Actualizado ( Miércoles, 30 de Junio de 2010 18:45 )