【发布时间】:2020-12-12 07:17:44
【问题描述】:
我有一个可能微不足道的问题,但Thumb (-mthumb) 和Arm (-marm) state 之间有什么区别以及为什么大多数教程建议使用Thumb state?
我很好奇这到底是什么意思?跟什么有关?
最好的!
【问题讨论】:
标签: arm gnu-arm arm-none-eabi-gcc
我有一个可能微不足道的问题,但Thumb (-mthumb) 和Arm (-marm) state 之间有什么区别以及为什么大多数教程建议使用Thumb state?
我很好奇这到底是什么意思?跟什么有关?
最好的!
【问题讨论】:
标签: arm gnu-arm arm-none-eabi-gcc
我建议看这两篇文章,一篇来自Arm,Instruction Set Architecture(-marm表示GCC会生成arm32/A32代码,-mthumb表示会生成thumb/T32),还有这篇研究论文, Profile Guided Selection of ARM and ThumbInstructions.
基本上,这两个指令集在可用指令集及其编码方面有所不同。因此,与使用 arm/A32 相比,使用 thumb/T32 应该获得更小更快的可执行文件。
这也是大部分教程推荐使用 thumb/T32 指令集的原因。
【讨论】: