Встроенный набор инструментов 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.

Другие вопросы по тегам