Набор встроенных инструментов GNU Arm | Опции arm-none-eabi-gcc: в чем разница между состояниями Thumb (-mthumb) и Arm (-marm)?

У меня может быть тривиальный вопрос, но в чем разница между состоянием Thumb (-mthumb) и Arm (-marm) и почему большинство руководств рекомендуют использовать состояние Thumb?

Мне интересно, что именно это означает? С чем это связано?

Лучший!


person JStand Jakub Standarski    schedule 23.08.2020    source источник


Ответы (1)


Я бы посоветовал прочитать эти две статьи, одну из Arm, Архитектура набора инструкций (- marm означает, что GCC будет генерировать код arm32/A32, -mthumb означает, что он будет генерировать thumb/T32), и эта исследовательская работа Выбор инструкций ARM и ThumbInstructions по профилю.

По сути, два набора инструкций отличаются набором доступных инструкций, а также их кодировкой. Поэтому вы должны получить меньший и более быстрый исполняемый файл, используя thumb/T32, чем с помощью arm/A32.

По этой причине в большинстве руководств рекомендуется использовать набор инструкций thumb/T32.

person Frant    schedule 23.08.2020
comment
Вот что я имел в виду! Огромное спасибо! Я обязательно прочитаю эти статьи. - person JStand Jakub Standarski; 23.08.2020