Рейтинг:2

Компиляция кода ARMv7A (AArch32) на машине ARMv8A (AArch64)?

флаг id

Я читал во многих местах, что ARMv8A поддерживает обратно совместимый код ARMv7A (первый теперь называется AArch64, а последний теперь называется AArch32).

Я использую машину ARMv8A (на Raspberry Pi 4B, с SoC BCM2835), но я хотел бы написать и отладить код сборки GNU, написанный на языке ARMv7A. Как мне скомпилировать файлы .S, написанные на ARMv7A, и запустить их на моей машине?

Я надеялся, что что-то вроде

    gcc MyAsmFile.S -march=armv7-a

будет работать, но я получаю следующую ошибку:

    cc1: **ошибка**: неизвестное значение: «armv7-a» для «-march»
    cc1: *примечание*: действительные аргументы: armv8-a ... armv8.6-a native; Вы имели в виду '**armv8-ass**'?

Любой совет будет принят во внимание! Причина в том, что я хотел бы попрактиковаться в коде ARMv7A, поскольку именно его мы будем использовать в работе.

флаг hr
Может быть, вам нужен настоящий кросс-тулчейн (возможно, gcc-arm-linux-gnueabihf)?
Gregory Fenn avatar
флаг id
Спасибо, но как мне запустить скомпилированный код? Есть ли какие-то специальные флаги, которые мне нужны, чтобы сообщить gcc-arm-linux-gnuabihf, что код написан на ARMv7A, но будет выполняться на AArch32? Или они идентичны и могут просто работать взаимозаменяемо?
флаг hr
Извините, я ничего не знаю об этой архитектуре

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.