Chicos, Tengo un proyecto que he compilado para el procesador ARM Cortex-A8. Estoy haciendo uso de GCC para hacer esto. Actualmente el tamaño de mi ejecutable es de 220.1 KB. Ahora modifico mi makefile y añado la bandera -mthumb
, la línea makefile se ve algo como esto -ARM Modo de pulgar: Código Tamaño no disminuye
gcc -mcpu=cortex-a8 -mthumb -marm -mfloat-abi=softfp -mfpu=neon
hago esto cambia en todos mis archivos make y construir mi proyecto, pero el ejecutable se produce finalmente todavía sigue ser de 220.1 KB.
Hice 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 hago esto?
me escribió un pequeño programa, para encontrar el más pequeño de los dos números y yo compilado usando la siguiente línea de comandos
gcc main.c -o main
consigo un ejecutable de 8,5 KB
A continuación, hago un
gcc -mthumb main.c -o main
Todavía obtengo un archivo ejecutable de 8,5 KB.
¿Qué sucede aquí?
Hice un cat /proc/cpuinfo
para ver si el pulgar es realmente compatible con mi procesador, y veo que sí es compatible. llego -
Processor: ARMv7 Processor rev 5 (v7l)
Features: swp half thumb fastmult vfp edsp neon vfpv3
....
....
'-marm' es el contador de' -mthumb' y 'gcc' toma la última opción; Esta es la razón por la cual la respuesta de * dwelch * funciona. –