Pregunta

Guys, Tengo un proyecto que he recopilado para el procesador ARM Cortex-A8. Estoy haciendo uso de GCC para hacer esto. Actualmente el tamaño de mi ejecutable es 220,1 KB. Ahora modifico mi makefile y añado el -mthumb bandera, las miradas de línea makefile algo como esto -

gcc -mcpu=cortex-a8 -mthumb -marm -mfloat-abi=softfp -mfpu=neon

Lo hago cambios en todos mis archivos make y construyo mi proyecto, pero el ejecutable se produce finalmente todavía sigue siendo de 220,1 KB.

Me hizo un cambio más a mi línea de comandos, he añadido la opción -mthumb-funcionen conjuntamente

gcc -mcpu=cortex-a8 -mthumb -mthumb-interwork -marm -mfloat-abi=softfp -mfpu=neon

Una vez más consigo mismo tamaño ejecutable 220,1 KB. Me estoy perdiendo algo mientras se hace esto?

Me escribió un pequeño programa, para encontrar el más pequeño de los dos números y yo lo recopiló utilizando la siguiente línea de comandos

gcc main.c -o main

Me conseguir una KB 8,5 ejecutable

A continuación, hago un

gcc -mthumb main.c -o main

sigo teniendo un ejecutable de 8,5 kb.

¿Cuál es incorrecto aquí?

Hice un cat /proc/cpuinfo para ver si el pulgar es realmente el apoyo de mi procesador, y veo que sí es compatible. Llego -

Processor: ARMv7 Processor rev 5 (v7l)
Features: swp half thumb fastmult vfp edsp neon vfpv3
....
....
¿Fue útil?

Solución

Creo medios -marm que tiene un brazo sin pulgar, pruebe a quitar -marm.

Otros consejos

Es difícil de decir sin tener el código real, pero tengo un par de sugerencias.

  1. Habilitar optimizaciones. (Por ejemplo -O3 -ffunction-secciones -fdata secciones)
  2. Gaza el ejecutable para asegurarse de que la información de depuración no se cuenta.
  3. Compruebe el tamaño real del código (.text), no el tamaño del archivo. Tal vez hay algo de relleno pasando. Puede utilizar objdump para eso.
  4. Dump el código ensamblador (interruptor -S) y comprobar que realmente produce instrucciones ARM en un caso y el pulgar en otro.

Con algunos compiladores, oro es el valor por defecto cuando se compila para ARMv7. ¿Estas seguro que su ejecutable original no fue construido para el pulgar?

Trate edificio con -mno-pulgar y ver si aumenta el tamaño de código.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top