Autor Tema: [APORTE] Configurando cross-compiler para ARM  (Leído 5329 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado dragondgold

  • PIC16
  • ***
  • Mensajes: 103
    • Tmax & Gwolf Microcontrollers
[APORTE] Configurando cross-compiler para ARM
« en: 23 de Febrero de 2012, 01:54:18 »
Hola comunidad me presento, mi nombre es Andres y queria hacer un aporte por el que renege mucho debido a que soy un novato en esto y tal vez alguien le sirva.

Introduccion:

Recientemente tuve la oportunidad de realizar la compra de una PandaBoard, una placa de aproximadamente 10x10cm la cual es una computadora completa (Puertos USB, Ethernet, HDMI, RAM, SD, Audio, etc) basado en un nucleo ARM de la serie OMAP4.
Al tener una arquitectura ARM en su procesador, no nos sirven los programas que tenemos compilados para nuestras PCs debido a que los mismos poseen una arquitectura X86. Ahora se preguntaran por que entonces ponen un procesador ARM ? La respuesta es basicamente debido a que estos procesadores con arquitectura ARM ofrecen un menor consumo, mucha menos disipacion de calor, dimensiones reducidas, entre otras cosas.
Entonces si queremos correr nuestros programas en estos procesadores necesitamos un compilador que nos compile para la arquitectura ARM, a esto se le llama "Cross-compiler" porque compilan para una arquitectura diferente a la cual en donde son ejecutados. En este caso compilan en una PC comun (x86) para una arquitectura ARM.

Instalando en Ubuntu:

Elegi Ubuntu como el sistema operativo para instalar esto debido a su facilidad y porque lo uso para todo lo relacionado a programacion ya que suele haber mas informacion en la red.
Lo primero que debemos hacer es bajar nuestro cross-compiler para ARM, para ello abrimos el centro de descarga y buscamos:

Código: [Seleccionar]
gcc-arm-linux-gnueabi
He instalamos el paquete. Para los que deseen hacerlo desde la consola:

Código: [Seleccionar]
sudo apt-get install gcc-arm-linux-gnueabi


Instalado esto tendremos nuestro cross-compiler para ARM, pero el mismo solo compilara C, para que ademas podamos compilar C++ debemos instalar otro paquete, para ello en el centro de software buscamos:

Código: [Seleccionar]
g++-arm-linux-gnueabi
O desde la consola:

Código: [Seleccionar]
sudo apt-get install g++-arm-linux-gnueabi
De este modo ya tenemos todo para compilar nuestros programas.



Compilar en consola:

Ahora llego el momento de compilar nuestro programa. Existen dos modos de hacer esto, a traves de la consola, o a traves de un IDE.
Empezaremos primero por la consola para ello primero nos posicionamos en donde sea que tengamos nuestro archivo .c o .cpp para compilar, por ejemplo en el Escritorio:

Código: [Seleccionar]
cd Escritorio
A continuacion compilamos nuestro programa de la siguiente manera:

Para C...
Código: [Seleccionar]
arm-linux-gnueabi-gcc NombreArchivo.c -o NombreDeSalida
En donde NombreArchivo.c es el nombre del archivo .c que deseamos compilar y NombreSalida el nombre del archivo ejecutable de salida. Para C++ es practicamente igual solo cambia el comando del compilador llamado:

Para C++...
Código: [Seleccionar]
arm-linux-gnueabi-g++ NombreArchivo.c -o NombreDeSalida
Asi ya tenemos nuestro codigo compilado y podemos ejecutarlo en nuestra plataforma ARM.

Compilando con IDE:

A pesar de esto a veces es mas facil y/o comodo utilizar un IDE, yo utilizo Code::Blocks que es un excelente IDE para programar C++ y ofrece algo parecido a Visual Studio de Windows llamado wxWidgets donde nos permite crear nuestro entorno grafico facilmente.
Para configurar nuestro compilador de ARM en Code::Blocks lo primero que hacemos es instalarlo, para ello vamos al centro de software y buscamos:

Código: [Seleccionar]
CodeBlocks
O desde la consola:

Código: [Seleccionar]
sudo apt-get install codeblocks


De este modo tendremos instalado Code::Blocks en Ubuntu.
1 - Procedemos a abrir Code::Blocks y en la barra superior nos vamos a Settings->Compiler and debugger...
2 - Nos abrira una ventana y veremos que dice en la parte superior "Selected compiler", hacemos click y buscamos el que dice "GNU ARM GCC Compiler"
3 - Una vez alli clickeamos sobre la pestaña que dice "Toolchain executables"
4 - En el primer cuadro blanco donde dice "Compiler's installation directory" colocamos:
Código: [Seleccionar]
/usr/bin
5 - En el cuadro donde dice "C compiler" colocamos:
Código: [Seleccionar]
arm-linux-gnueabi-gcc-4.6
6 - En el cuadro donde dice "C++ compiler" colocamos:
Código: [Seleccionar]
arm-linux-gnueabi-g++-4.6
7 - En el cuadro donde dice "Linker for dynamic libs" colocamos:
Código: [Seleccionar]
arm-linux-gnueabi-g++-4.6
8 - En el cuadro donde dice "Linker for static libs" colocamos:
Código: [Seleccionar]
arm-linux-gnueabi-ar
9 - En el cuadro donde dice "Debugger" colocamos:
Código: [Seleccionar]
arm-elf-gdb
10 - En el cuadro donde dice "Resource compiler" borramos todo si hay algo y lo dejamos en blanco
11 - En el cuadro donde dice "Make program" colocamos:
Código: [Seleccionar]
make



Y eso es todo ahora podemos compilar nuestro programas para ARM con el IDE. Como dije anteriormente soy muy nuevo en esto y estoy aprendiendo, se que tal vez no parece mucho pero espero que a alguien le sirva. Cualquier correccion es bienvenida  :-).

Saludos desde Argentina !!

Andres
« Última modificación: 23 de Febrero de 2012, 02:09:03 por dragondgold »
La conclusión final es que sabemos muy poco y sin embargo, es asombroso lo mucho que conocemos. Y más asombroso todavía es que un conocimiento tan pequeño nos pueda dar tanto poder

Desconectado gary_servin

  • PIC12
  • **
  • Mensajes: 65
Re: [APORTE] Configurando cross-compiler para ARM
« Respuesta #1 en: 24 de Febrero de 2012, 13:24:06 »
Muchas gracias para el aporte! estoy tratando de hacer lo mismo en Debian pero para usar micros Cortex-M3 Stellaris de TI.

Saludos.


 

anything