Linux кросс-компиляция для архитектуры ARM

21
задан Tshepang 22 October 2013 в 08:13
поделиться

7 ответов

Существует два подхода, которые я использовал для инструментов ARM/Linux. Самое легкое должно загрузить предварительно созданный набор инструментальных средств непосредственно.
Pro: Это просто работает, и можно продолжить интересную часть проекта
Con : Вы застреваете с тем, какой бы ни версия gcc/binutils/libc, который они выбрали

, Если более поздние вопросы Вам, проверьте crosstool-ng. Этот проект является инструментом конфигурирования, подобным приложению конфигурирования ядра Linux. Набор, какие версии gcc, binutils, libc (GNU или uCLibc), поточная обработка и ядро Linux для создания и crosstool-ng делают остальных (т.е. загружает шары tar, настраивает инструменты и создает их).
Pro: Вы получаете точно, что Вы выбрали во время конфигурации
Con: Вы получаете точно, что Вы выбрали во время конфигурации

значение, что Вы берете полную ответственность за выбор compiler/binutil/libc и их связанных функций/недостатков/ошибок. Кроме того, как упомянуто в комментариях, существует некоторая "боль", вовлеченная в выбор версий binutils, библиотека C и т.д. как не, все комбинации обязательно сотрудничают или даже создают.

Один гибридный подход мог бы быть должен запуститься с предварительно созданных инструментов и заменить их позже настраиваемым решением через crosstool-ng при необходимости.

Обновление : ответ первоначально использовал инструменты CodeSourcery как пример предварительно созданного набора инструментальных средств. Инструменты CodeSourcery для ARM были бесплатными к загрузка с Mentor Graphics , но их теперь называют Sourcery CodeBench и нужно купить у Mentor Graphics. Другие опции теперь включают Linaro, а также распределение определенные инструменты от Android, Ubuntu и других.

30
ответ дан ctuffli 22 October 2013 в 19:13
поделиться

Buildroot - инструмент, с которым мне посчастливилось создать собственный набор инструментов на основе uClibc с нуля. Он очень настраиваемый, и не слишком точен в отношении того, на каком дистрибутиве вы работаете.

Кроме того, многие из его существующих пользователей (т.е. встроенные дистрибутивы маршрутизаторов) также ориентированы на ARM.

5
ответ дан Charles Duffy 22 October 2013 в 08:13
поделиться

Это то, что Eurotech использует для распространения Debian ARM. Вы заметите, что они не рекомендуют использовать кросс-компилятор, если вы можете избежать этого. Компиляция самой цели имеет тенденцию быть более надежным способом получения результатов, которые, как вы знаете, будут работать.

0
ответ дан ctacke 22 October 2013 в 08:13
поделиться

Я использовал scratchbox при экспериментировании с созданием приложений для Maemo (Nokia N810), который использует процессор ARM. Предположительно, scratchbox не ограничивается разработкой Maemo.

6
ответ дан barneytron 22 October 2013 в 19:13
поделиться

При использовании хинду получение набора инструментальных средств кросс-компиляции так же легко как

$ emerge crossdev
$ crossdev -t $ARCH-$VENDOR-$OS-$LIBC

, где ARCH arm или armeb, ПОСТАВЩИК unknown или softfloat, OS linux, и LIBC gnu или uclibc.

, Если все Вы хотите, компилятор (и компоновщик) для ядра, LIBC, часть не важна, и можно использовать -s1 / --stage1, чтобы сообщить crossdev, что Вам только нужно binutils и gcc.

3
ответ дан ephemient 22 October 2013 в 19:13
поделиться

Я использовал crosstool на нескольких целях. Это является большим, пока Вы хотите создать свой набор инструментальных средств с нуля. Конечно, существуют несколько пред созданные наборы инструментальных средств для руки также, просто гуглят ее - слишком многие для упоминания здесь.

1), По-моему, здание Ваш собственный набор инструментальных средств работает лучшее. Вы заканчиваете тем, что имели жесткий контроль над всем, плюс то, если Вы плохо знакомы со встроенным Linux, это - БОЛЬШОЙ полезный опыт.

2) не идут с коммерческим набором инструментальных средств. Даже если Вы не хотите не торопиться для создания собственного, там существуют свободные альтернативы.

, Если Ваша компания потратит деньги, сделайте, чтобы они купили Вас jtag отладчик.
Это сэкономит Вам массу времени. и это позволяет Вам легко учиться и ступать посредством запуска ядра и т.д. Я настоятельно рекомендую использование Лаутербах jtag продукты... Они работают с тонной целей, и программное обеспечение является кросс-платформенным. Их поддержка является большой также.

, Если Вы не можете получить jtag отладчик и Вы работаете в ядре, используете VM, чтобы сделать это, непривилегированный режим Linux, VMware.. и т.д. Ваш код будет отлажен на x86.. портирование его к Вашей цели руки будет другой историей, но это - более дешевый способ сгладить некоторые ошибки.

при портировании загрузчика используйте uboot. Конечно, при использовании базовой платформы затем Вы - вероятно, более обеспеченное использование, чему они предоставляют BSP.

я надеюсь, что это помогает.

6
ответ дан Steve Lazaridis 22 October 2013 в 19:13
поделиться

Я использую emdebian набор инструментальных средств для компиляции материала для моих машин ARM, который не счастлив быть скомпилированным исходно в маленьких доступных ресурсах (/меня, впивается взглядом в ядро). Основной пакет gcc-4.X-arm-linux-gnueabi (X = 1,2,3) и обеспечивает соответственно снабженные суффиксом команды gcc/cpp/ld/etc. Я добавляю это к моему sources.list:

deb http://www.emdebian.org/debian/ unstable main

, Конечно, если Вы не используете Debian, это, вероятно, не настолько полезно, но резина , это работает хорошо на меня.

7
ответ дан womble 22 October 2013 в 19:13
поделиться
  • 1
    LYRICSBOY, спасибо за Ваш ответ. Вы могли бы, слышал об игре Кота Разговора в андроиде и других также. Я хочу точно то же самое в своем приложении. У меня есть кадры размера 320x480 пикселей, как я сказал ранее, таким образом, я ищу о спрайтах на Google и нашел, что спрайты полезны для небольшого размера изображений не для большого pngs. И для Растровой Фабрики i don' t знают, что, как я могу загрузиться, все это структурирует в одном Растровом объекте или как выполнить мою анимацию с помощью Растровых классов вместо AnimationDrawable. – Scorpion 17 January 2012 в 16:42
Другие вопросы по тегам:

Похожие вопросы: