【问题标题】:GNU Arm Embedded Toolchain | arm-none-eabi-gcc options: What is a difference between Thumb (-mthumb) and Arm (-marm) state?GNU Arm 嵌入式工具链 | arm-none-eabi-gcc 选项:Thumb (-mthumb) 和 Arm (-marm) 状态有什么区别?
【发布时间】:2020-12-12 07:17:44
【问题描述】:

我有一个可能微不足道的问题,但Thumb (-mthumb)Arm (-marm) state 之间有什么区别以及为什么大多数教程建议使用Thumb state?

我很好奇这到底是什么意思?跟什么有关?

最好的!

【问题讨论】:

    标签: arm gnu-arm arm-none-eabi-gcc


    【解决方案1】:

    我建议看这两篇文章,一篇来自Arm,Instruction Set Architecture(-marm表示GCC会生成arm32/A32代码,-mthumb表示会生成thumb/T32),还有这篇研究论文, Profile Guided Selection of ARM and ThumbInstructions.

    基本上,这两个指令集在可用指令集及其编码方面有所不同。因此,与使用 arm/A32 相比,使用 thumb/T32 应该获得更小更快的可执行文件。

    这也是大部分教程推荐使用 thumb/T32 指令集的原因。

    【讨论】:

    • 这就是我的意思!非常感谢!我肯定会阅读这些文章。
    猜你喜欢
    • 2011-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-27
    • 2017-03-24
    • 2016-05-01
    相关资源
    最近更新 更多