伙计们,
我有一个为ARM Cortex-A8处理器编译的项目。我正在利用GCC来做到这一点。目前,我的可执行文件大小为220.1 KB。现在,我修改我的makefile并添加标志-mthumb
,makefile行看起来像这样-
gcc -mcpu=cortex-a8 -mthumb -marm -mfloat-abi=softfp -mfpu=neon
我在所有makefile文件中都进行了此更改,并构建了项目,但是最终得到的可执行文件仍然是220.1 KB。
我对命令行进行了另一处更改,添加了-mthumb-interwork选项
gcc -mcpu=cortex-a8 -mthumb -mthumb-interwork -marm -mfloat-abi=softfp -mfpu=neon
我再次得到相同大小的可执行文件220.1 KB。我这样做时有什么遗漏吗?
我写了一个小程序,找到两个数字中最小的一个,并使用以下命令行对其进行了编译
gcc main.c -o main
我得到一个8.5 KB的可执行文件
接下来,我做一个
gcc -mthumb main.c -o main
我仍然可以获得8.5 KB的可执行文件。
怎么了
我做了一个
cat /proc/cpuinfo
来查看我的处理器是否确实支持thumb,而且我确实支持它。我得到-
Processor: ARMv7 Processor rev 5 (v7l)
Features: swp half thumb fastmult vfp edsp neon vfpv3
....
....
最佳答案
我认为-marm表示您的 ARM 没有拇指,请尝试删除-marm。
关于compilation - ARM Thumb模式: Code Size not decreasing,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4107477/