каковы отношения между gcc и arm-linux-gcc

Я новичок в разработке ARM. Теперь меня действительно смущает кросс-инструментальная цепочка ARM. Вот некоторые проблемы, с которыми я столкнулся:

  1. Одинаковы ли разработчики gcc и arm-linux-gcc? Или есть много разных разработчиков arm-linux-gcc для разных версий? Если да, то откуда все arm-linux-gcc компиляторы? Есть ли официальный сайт для arm-linux-gcc?

  2. Где взять официальную документацию на arm-linux-gcc? Теперь я могу получить официальную документацию по gcc только с официального сайта GNU, но я скачал свой arm-linux-gcc из GNUTOOLCHAIN ​​ и не может найти никаких документов. По моему опыту, варианты gcc и arm-linux-gcc не совсем совпадают.

  3. Наконец, в чем разница между разными готовыми версиями arm-linux-gcc? Думаю, единственная разница между ними - это параметры компилятора по умолчанию, я прав? Могу ли я использовать готовый arm-linux-gcc для arm1176, чтобы скомпилировать программу для cortex-A8? Если да, то на какие варианты компиляции следует обратить внимание?

  4. Есть ли авторитетная книга о таких вещах?


person demonguy    schedule 23.09.2014    source источник


Ответы (2)


Ниже приведены ответы на ваши вопросы:

  1. Существуют разные варианты компилятора для компиляции для arm от разных разработчиков. Я обычно использую Linaro и Code Sourcery. Вы можете выполнить поиск по этим ключевым словам в Google и легко найти их веб-сайт.

  2. arm-linux-gcc должен поддерживать все флаги и параметры gcc, поэтому все общие вещи такие же, как и в gcc. Так что вы можете использовать документацию gcc на официальном сайте GNU. Для чего-то конкретного вы можете использовать документацию конкретного компилятора.

  3. Предварительно созданные версии - это те, которые имеют параметры по умолчанию для конкретной платформы, но они также могут включать некоторые исправления или, возможно, хаки для запуска на определенной платформе. Например, в случае RPi вы не можете использовать общую цепочку инструментов linaro и должны использовать предварительно созданную.

person Sami    schedule 23.09.2014
comment
Спасибо, это мне очень помогает - person demonguy; 23.09.2014

Когда вы работаете со встроенными устройствами, вам обычно нужен кросс-компилятор, который работает на быстрой хост-машине (например, x86) и компилируется для более медленной целевой машины (например, ARM).

arm-linux-gcc - кросс-компилятор для arm. Это обычный компилятор gcc, но он скомпилирован для работы на хост-машине и для генерации цели для ARM-машины.

person Claudio    schedule 23.09.2014
comment
Извини, но ты не ответил ни на один мой вопрос - person demonguy; 23.09.2014