[Embedded] herramientas de desarrollo de Linux brazo-linux-gcc instalación y uso

herramientas de desarrollo de Linux diseñadas para hacer y makefile

Estructura y nivel de conocimiento - la compilación del programa y depurar

Aquí Insertar imagen Descripción

configuración de la instalación cruz compilador Embedded

Host de destino modelo de desarrollo de juntas

Aquí Insertar imagen Descripción

  • Anfitrión
    de compilación, enlace incluido software informático

  • equipo de destino
    que ejecuta el software, plataforma de hardware embebido

  • compilador de "local"
    para generar código objeto que se ejecuta en el propio compilador, donde el mismo equipo y entorno de sistema operativo (plataformas), Windows, como entorno de Windows para generar el código objeto.

  • compilador cruzado
    Se utiliza para generar el código objeto para funcionar en otras plataformas, tales como el entorno Windows Linux genera código objeto.

Bajo el microprocesador ARM compilador sistema / Linux

Las reglas de nomenclatura compilador
arch [-vendor] [-os] [-(gnu)eabi]-工具名称

  • arch- arquitecturas, tales como ARM , MIPS
  • vendor- proveedores de la cadena de herramientas, el nombre de la CPU o un desarrollo fabricantes de placas
  • os- los sistemas operativos de destino, tales como Linux
  • (gnu) eabi- el uso de las bibliotecas, incluyendo glibc , EABI , uClibc tres tipos

Ejemplo: arm-none-eabi-gcc

  • sistema Bare-metal usado para compilar la arquitectura ARM

Ejemplo:arm-none-linux-gnueabi-gcc

  • Para los sistemas Linux basados en la arquitectura ARM, basado en GCC, Glibc uso de la biblioteca
    después de que la compañía introdujo CodeSourcery compilador optimizado para la elaboración de la arquitectura ARM u-boot, núcleo de Linux, las aplicaciones de Linux.

Varios directorios importantes:
directorio de la herramienta del compilador:FriendlyARM/toolchain/4.9.3/bin

Aquí Insertar imagen Descripción

El directorio de archivo de cabecera del compilador:FriendlyARM/toolchain/4.9.3/arm-cortexa9-linux-gnueabihf/sys-root/usr/include

directorio de archivos de biblioteca:FriendlyARM/toolchain/4.9.3/arm-cortexa9-linux-gnueabihf/sys-root/usr/lib

Descargar e instalar el compilador

Usted puede ir a la página oficial de descarga, http://www.linaro.org/downloads/
pero más lentamente, se puede descargar directamente conmigo.
Enlaces: https://pan.baidu.com/s/1jL_G6kbTC9h_bF8HHXBWxw código de extracción: 67u4

1. En primer lugar mover el paquete para instalar el directorio tmp descargado en el directorio raíz (/ tmp)

2. Uso comando tar para extraer el paquete de instalación, el siguiente comando se introduce en la entidad de certificación raíz indicación sudo Terminal :( anterior para ejecutar el comando)

sudo tar -xjvf /tmp/arm-linux-gcc-4.6.4-arm-x86_64.tar.bz2 -C /

Tenga en cuenta que en mayúsculas las letras C, este comando optar por instalar el paquete y extraer los TuxamitoSoftToolchains del directorio raíz en el interior (/ opt / TuxamitoSoftToolchains)

3. Después de la extracción se ha completado, y luego crear un nuevo directorio en el brazo (/ usr / local), a saber, introduzca el siguiente comando en el terminal:

sudo mkdir /usr/local/arm

Después de crear un brazo directorio de éxito, también hay que darle a liberar a todos los privilegios que introduzca el siguiente comando en el terminal:

sudo chmod 777 /usr/local/arm

4. Busque el extracto del directorio y copiar todo el directorio gcc-4.6.4 en el directorio brazo de nueva construcción, el comando es el siguiente:
primer cd a gcc 4.6.4-directorio (después de cambiar el primer vistazo no ls sin gcc-4.6.4 directorio):

cd /opt/TuxamitoSoftToolchains/arm-arm1176jzfssf-linux-gnueabi/

Y luego ejecutar el comando cp copia, -r representar dentro de nada, así como en todo el directorio

sudo cp -r gcc-4.6.4 /usr/local/arm

5. Open (/ etc / perfil) variables y variables de entorno de base de datos de configuración, el objeto es para ser usado más tarde en cualquier posición del comando cruz compilador es como sigue:

sudo vi /etc/profile

Después vi o vim abierta, la adición de dos líneas al final del archivo, e introduzca el código siguiente: La primera línea es agregar las variables de entorno de ejecución del programa, la segunda línea es la ruta del archivo de biblioteca

export PATH=$PATH:/usr/local/arm/gcc-4.6.4/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/arm/gcc-4.6.4/lib

A continuación, guarde hacia fuera.
Aquí Insertar imagen Descripción
6. Utilice el comando source para recargar el archivo de configuración para tener efecto

source /etc/profile

7. Compruebe que la instalación se ha realizado correctamente, la información de versión de salida Introduzca el siguiente comando en el terminal:

arm-linux-gcc -v

Aquí Insertar imagen Descripción

herramienta de brazo-linux-gcc

arm-gcc-Linux sintaxis: arm-linux-gcc [ option | filename ]...
En circunstancias normales, producir un nuevo programa de necesidades que pasar por cuatro etapas: pre-procesamiento, compilador, ensamblador, enlazador
, por supuesto, podemos decidir qué pasos para compilar las operaciones realizadas por el final del parámetro
gama de parámetros en Linux buscar la ayuda del medio ambiente:man arm-linux -gcc


-E

  • Sólo el archivo de procesamiento previo , pero no compilar, ensamblar y enlazar.

Ejemplo:
arm-linux -gcc -E hello.c -o hello1.c

El pretratamiento, contenidos hola.c:
Aquí Insertar imagen Descripción
después del pretratamiento, contenidos Hello1.c:
Aquí Insertar imagen Descripción


-S

  • Sólo el archivo compilado (archivo ensamblador generado .s) , pero no se puede compilar y enlazar.

Ejemplo: arm-linux -gcc -S hello.c
el ejemplo anterior generará un hello.s archivo compilado
Aquí Insertar imagen Descripción


-c

  • Sólo el archivo compilado y montado, pero no está vinculada, lo que significa que sólo el archivo de programa make obj.

Ejemplo: arm-linux -gcc -c hello.c –o hello.o


-o

  • Especificar el nombre de destino, el tiempo predeterminado, compilador gcc es a.out

Ejemplo:
arm-linux -gcc hello.cLa compilación predeterminada hello.out
arm-linux -gcc -o hello.bin hello.cobjetivo sustantivo es hello.bin
arm-linux -gcc -o hello.s -S hello.c


-include file

  • Contiene un código que, en términos simples, es compilar un archivo cuando se necesita otro archivo, se puede usar la función conjunto es equivalente a utilizar en su código #include.

Ejemplo:arm-linux -gcc hello.c -include type.h


-I dir

  • Si utiliza #include"file"el tiempo, gcc / g ++ buscará primero en el directorio actual que ha especificado en los archivos de cabecera, si no lo encuentra, el compilador por defecto en el directorio de archivos de cabecera de encontrar;
  • Si utiliza un -Idirectorio especificado, el compilador buscará primero el directorio especificado, y luego presione la marcha secuencial convencional.

Ejemplo: arm-linux -gcc -o hello -I/xxx/include hello.c

-I

  • Antes de función de cancelación es un parámetro, es generalmente en -I dirdespués de su uso
    Aquí Insertar imagen Descripción

-iprefix prefix y -iwithprefix dir

Estos dos parámetros se utilizan generalmente en conjunto, cuando -Iuna búsqueda en el directorio falla, a prefix+dirbuscar la siguiente


-l库名

  • Especifica las bibliotecas de tiempo de compilación utilizados ( biblioteca estática .a / DLL .so )

Ejemplo: arm-linux-gcc -lpthread hello.c
especifica el uso de phtread.cla biblioteca

-L目录

  • tiempo de compilación especifica, la ruta de búsqueda de biblioteca. Por ejemplo, en la biblioteca, se puede -Lespecificar el directorio en su biblioteca, de lo contrario el compilador sólo encontrará en el directorio de la biblioteca estándar . Este dires el nombre del directorio.

Ejemplo:
arm-linux-gcc –L./ hello.c –o hello
Aquí Insertar imagen Descripción


optimización de gcc

Proporcionar gcc con el fin de satisfacer diferentes niveles de optimización de las necesidades del usuario y proporcionar casi un centenar de opciones de tipo de optimización, que se utilizan para { tiempo de compilación , el tamaño de archivo de destino , la eficiencia } Este modelo tridimensional de un diferentes soluciones de compromiso y el equilibrio. Optimización de métodos y así sucesivamente, en su conjunto tendrá las siguientes categorías:

  1. Reducir la instrucción de la operación;
  2. Tratar de cumplir con la canalización de la CPU;
  3. Por adivinar el comportamiento de la secuencia de código de ejecución del programa de reajuste;
  4. pleno uso de registros;
  5. Pide una simple expansión, etc.

-O0, -O1, -O2, -O3
O0: no hacen ninguna optimización, que es el valor predeterminado opciones del compilador
O3: más alto nivel de optimización


-g

  • El compilador genera información de depuración en tiempo de compilación.

Ejemplo:
arm-linux –gcc –o hello -g hello.c
Aquí Insertar imagen Descripción


deberes

(1) que pertenece al miembro de watchdog ( módulo de hardware ), que es una función de núcleo ( código de software de detección de fuera de control ) y ( cuando el sistema está "corriendo hacia fuera" en el bucle y restaurar el funcionamiento del sistema ).

(2) suponiendo C fun.c código, que se compila en fun.o código objeto, comando de compilación arm-linux-gcc -c fun.c -o fun.o, si el uso de una biblioteca libcurses.a función fun.c, y que junto con el Smartfun main.c ejecutable compilado , el comando del compilador arm-linux-gcc -c fun.c main.c -lcurses -o smartfun.

Publicados 170 artículos originales · ganado elogios 47 · Vistas a 20000 +

Supongo que te gusta

Origin blog.csdn.net/weixin_43734095/article/details/104941659
Recomendado
Clasificación