Bienvenido: Ingresar
location: Diferencias para "WebHome/HerramientasProgramacion/ErroresFrecuentes"
Diferencias entre las revisiones 8 y 11 (abarca 3 versiones)
Versión 8 con fecha 2010-10-22 12:05:55
Tamaño: 2189
Comentario:
Versión 11 con fecha 2010-12-06 13:37:11
Tamaño: 3227
Comentario:
Los textos eliminados se marcan así. Los textos añadidos se marcan así.
Línea 49: Línea 49:
El problema se produce en el momento de correr el programa, al intentar hacerlo el programa no corre y queda el simulador apuntando a la primer linea del programa
El problema se produce en el momento de correr el programa, al intentar hacerlo el programa no corre y queda el simulador apuntando a la primer linea del programa.
Línea 52: Línea 53:
La posible solución, es verificar que la ruta donde se encuentra la aplicación (los fuentes y el archivo .elf que simulamos) no posea espacios en blanco en sus nombres, si esto es así renombrar esos directorios o cambiar de lugar el proyecto y volver a intentarlo. La posible solución, es verificar que la ruta donde se encuentra la aplicación (los fuentes y el archivo .elf que simulamos) no posea espacios en blanco en sus nombres, si esto es así, renombrar esos directorios o cambiar de lugar el proyecto y volver a intentarlo.

=== Error 4 ===
'''Las funciones matemáticas y trigonométricas (cos, sqrt, etc.) no funcionan o devuelve error el compilador al tratar de utilizarlas en el código'''

El problema es producido por no incluir la librería matemática en el momento de enlace (linker) del proyecto y/o sus correspondientes archivos de cabecera

==== Solución ====
   1) se debe incorporar la librería al proyecto, esto se realiza desde el makefile modificando la linea donde se realiza el enlace
Se busca algo como
{{{
$(ELF): $(OBJS)
      $(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@
}}}

y se agrega -lm al final de la linea indicando la utilización de la librería matemática.

{{{
$(ELF): $(OBJS)
      $(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ -lm
}}}

   2) se debe agregar
    {{{ #include <math.h> }}} en el o los ficheros donde se utilizarán funciones matemáticas

   3) las funcione matemática deben incorporar una f al final para indicar resultado de tipo float
      (sqrt(x) es sqrtf(x) , cos(x) es cosf(x), etc)
Línea 56: Línea 83:

Instalación de Herramientas GNU-ARM

Problemas frecuentes enla instalación y/o ejecución de las herramientas ARM

Error 1

arm-elf-gcc: error trying to exec 'cc1': execvp: No existe el fichero ó directorio

Solución

Se debe realizar un enlace simbólico del cc1 a la carpeta de los binarios.

como root

root@td03005:/# cd /opt/gnu-arm/bin
root@td03005:/opt/gnu-arm/bin# ln -s /opt/gnu-arm/libexec/gcc/arm-elf/4.3.2/cc1 ./cc1
root@td03005:/opt/gnu-arm/bin# ls -l
.....
-rwxr-xr-x 1 root root  2814764 2010-06-10 18:47 arm-elf-strip
lrwxrwxrwx 1 root root       42 2010-09-08 17:29 cc1 -> /opt/gnu-arm/libexec/gcc/arm-elf/4.3.2/cc1
.....

verificar que cc1 tenga permiso de ejecución

root@td03005:/opt/gnu-arm/bin# cd /opt/gnu-arm/libexec/gcc/arm-elf/4.3.2/
root@td03005:/opt/gnu-arm/libexec/gcc/arm-elf/4.3.2# chmod +x cc1
root@td03005:/opt/gnu-arm/libexec/gcc/arm-elf/4.3.2# chmod +x cc1plus
root@td03005:/opt/gnu-arm/libexec/gcc/arm-elf/4.3.2# ls -l
total 50968
-rwxr-xr-x 1 root root 24760130 2010-06-10 18:47 cc1
-rwxr-xr-x 1 root root 27062393 2010-06-10 18:47 cc1plus
-rw-r--r-- 1 root root   292766 2010-06-10 18:47 collect2
drwxr-xr-x 2 root root     4096 2010-06-10 18:47 install-tools

Error 2

/opt/gnu-arm/bin/../libexec/gcc/arm-elf/4.3.2/cc1: error while loading shared libraries: libmpfr.so.1: cannot open shared object

Solución

Instalar la librería correspondiente

# aptitude install libmpfr1ldbl

Error 3

El simulador (arm-elf-insight) no funciona

El problema se produce en el momento de correr el programa, al intentar hacerlo el programa no corre y queda el simulador apuntando a la primer linea del programa.

Solución

La posible solución, es verificar que la ruta donde se encuentra la aplicación (los fuentes y el archivo .elf que simulamos) no posea espacios en blanco en sus nombres, si esto es así, renombrar esos directorios o cambiar de lugar el proyecto y volver a intentarlo.

Error 4

Las funciones matemáticas y trigonométricas (cos, sqrt, etc.) no funcionan o devuelve error el compilador al tratar de utilizarlas en el código

El problema es producido por no incluir la librería matemática en el momento de enlace (linker) del proyecto y/o sus correspondientes archivos de cabecera

Solución

  • 1) se debe incorporar la librería al proyecto, esto se realiza desde el makefile modificando la linea donde se realiza el enlace

Se busca algo como

$(ELF): $(OBJS)
      $(CC) $(CFLAGS) $(LDFLAGS)   $^ -o $@

y se agrega -lm al final de la linea indicando la utilización de la librería matemática.

$(ELF): $(OBJS)
      $(CC) $(CFLAGS) $(LDFLAGS)   $^ -o $@ -lm
  • 2) se debe agregar
    •  #include <math.h>  en el o los ficheros donde se utilizarán funciones matemáticas

    3) las funcione matemática deben incorporar una f al final para indicar resultado de tipo float
    • (sqrt(x) es sqrtf(x) , cos(x) es cosf(x), etc)

UntitledWiki: WebHome/HerramientasProgramacion/ErroresFrecuentes (última edición 2011-03-15 14:41:20 efectuada por GuillermoSteiner)