伙计们,
我有一个为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/

10-13 05:54