如何告诉 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 位宽。
那么,我做错了什么?
最佳答案
Cortex-M3 支持 Thumb-2,因此编译器可以自由生成 32 位版本。以下之一应该可以满足您的需求:
-march=ARMv5 -mthumb
-march=ARMv4T -mthumb
-march=ARMv6-M
-mcpu=Cortex-M0
关于gcc - 仅编译thumb1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13474322/