Soporte para AT90USB1287 y otros AVR nuevos con GCC

embedded

Cómo compilar e instalar GCC para tener soporte para el AT90USB1287 y algunos micros AVR nuevos

Introducción

Algunos micros muy nuevos de ATMEL, como pueden ser el AT90USB1287, muy parecido en prestaciones al ATMEGA128 pero con soporte para USB parece ser que no están soportados en la toolchain para ésta familia de micros. Ésta receta explica como compilar dicha toolchain para poder usar éste micro y algunos mas en nuestros proyectos.

Qué necesitamos

Para compilar necesitaremos lo siguiente:

El código fuente de GCC lo podemos descargar del repositorio subversion. Para ello:

javieralso@Gezel:~/avr-toolchain/gcc$ svn co svn://gcc.gnu.org/svn/gcc/trunk source

Con esto tendremos los fuentes de GCC dentro del directorio gcc/source.

Una vez que hemos descargado y descomprimido todo el código que necesitamos, procedemos a la compilación e instalación.

Compilando e instalando

La compilación e instalación de la toolchain debe de hacerse en un orden concreto, ya que unas herramientas necesitan a otras para poder compilarse.
En concreto, el orden de instalación es el que se describe a continuación.

Compilación e instalación de binutils-avr

Lo primero que necesitamos es binutils-avr. Para compilarlo entramos en el directorio en el que descomprimimos los fuentes y procedemos:

javieralso@Gezel:~/avr-toolchain/binutils-2.17$ ./configure --target=avr

Después, de que todo haya ido bien y se hayan creado los makefiles, compilamos:

javieralso@Gezel:~/avr-toolchain/binutils-2.17$ make

Y para terminar, instalamos:

javieralso@Gezel:~/avr-toolchain/binutils-2.17$ sudo make install

Compilación e instalación de avr-gcc

Ahora viene lo mas largo y pesado, y lo que mas probabilidades tiene de fallar, compilar gcc para dar soporte a los micros avr. Dentro del directorio en el que tenemos el subdirectorio con los fuentes (gcc en nuestro caso), creamos otro subdirectorio, por ejemplo build. Éste subdirectorio lo necesitaremos porque no podemos compilar gcc en el mismo directorio en el que están los fuentes. Una vez que tengamos el subdirectorio, entramos en él y ejecutamos el script de configuración ubicado en el directorio de los fuentes desde él:

javieralso@Gezel:~/avr-toolchain/gcc$ mkdir build
javieralso@Gezel:~/avr-toolchain/gcc$ cd build
javieralso@Gezel:~/avr-toolchain/gcc/build$ ../source/configure --target=avr --enable-languages=c --disable-libssp

y si todo ha ido bien, ya se puede compilar:

javieralso@Gezel:~/avr-toolchain/gcc/build$ make

Una vez que ha acabado la compilación y todo ha ido bien, ya solo queda la instalación:

javieralso@Gezel:~/avr-toolchain/gcc/build$ sudo make install

Compilación e instalación de avr-libc

El útimo paso que queda por dar es compilar e instalar las librerías cruzadas. Se hace lo mismo que en los casos anteriores:

javieralso@Gezel:~/avr-toolchain/avr-libc-1.4.5$ ./configure --build=`./config.guess` --host=avr --target=avr

a continuación se compila

javieralso@Gezel:~/avr-toolchain/avr-libc-1.4.5$ make

y finalmente se instala

javieralso@Gezel:~/avr-toolchain/avr-libc-1.4.5$ sudo make install

y a partir de éste momento ya tendremos la toolchain lista para utilizar.

Ale, a disfrutarla Eye-wink