6

我如何告诉 gcc 编译成仅限 Thumb1 的指令?

大家都知道helloworld.c:

#include <stdio.h>  
main() {  
 printf("Hello world");  
}  

这是我的命令行:

user@debian-armel:~$gcc -mcpu=cortex-m3 -mthumb helloworld.c && objdump -d a.out

瞧:大多数指令都是 32 位宽的,而不是我预期的 16 位。

那么,我做错了什么?

4

1 回答 1

4

Cortex-M3 支持 Thumb-2,因此编译器可以自由生成 32 位版本。以下其中一项应该可以满足您的需求:

-march=ARMv5 -mthumb
-march=ARMv4T -mthumb
-march=ARMv6-M
-mcpu=Cortex-M0
于 2012-11-20T13:56:41.443 回答