Встроенный набор инструментов GNU Arm | Параметры arm-none-eabi-gcc: в чем разница между состоянием Thumb (-mthumb) и Arm (-marm)?
У меня, может быть, тривиальный вопрос, но в чем разница между Thumb (-mthumb)
а также Arm (-marm)
состояние и почему большинство руководств рекомендуют использовать Thumb
штат?
Мне любопытно, что именно это означает? С чем это связано?
Лучший!
1 ответ
Я бы посоветовал прочитать эти две статьи, одну из Arm, Instruction Set Architecture (-marm означает, что GCC будет генерировать код arm32/A32, -mthumb означает, что он будет генерировать thumb/T32 one), и этот исследовательский документ, Profile Guided Selection ARM и ThumbInstructions.
По сути, два набора инструкций различаются набором доступных инструкций, а также их кодировкой. Поэтому при использовании thumb / T32 вы должны получить исполняемый файл меньшего размера и быстрее, чем при использовании arm/A32.
Это причина, по которой большинство руководств рекомендуют использовать набор инструкций thumb / T32.