Skip to content

Latest commit

 

History

History
110 lines (104 loc) · 6.09 KB

CrosstoolNg.wiki

File metadata and controls

110 lines (104 loc) · 6.09 KB
  1. summary Сборка кросскомпилятора

Введение

Несколько слов про сборку KK (здесь и далее по тексту КК - кросскомпилятор), если вам по какой-то причине не подходят готовые, например http://sourcery.mentor.com/public/gnu_toolchain/ Протестировано на системе OsSetup

Описание

Чтобы облегчить себе жизнь - воспользуемся средством автоматизации сборки http://crosstool-ng.org/ Далее описание для версии 1.15.2 - это последняя на данный момент. Распаковываем, конфигурируем для локального (без установки) использования и собираем скрипты сборки

приступаем к конфигурированию кросскомпилятора (в той же директории куда распаковали скрипты)

http://wiki.starterkit-org.googlecode.com/git/images/ctng.png

Краткое описание опций на которые стоит обратить внимание (все остальные которые здесь не описаны - оставлены по умолчанию)

открывает доступ в конфигураторе для выбора "экспериментальных" версий binutils, glibc, gcc и пр (например gcc и gdb linaro) Prefix directory - куда будет установлен будущий КК, ${HOME} - означает домашняя директория пользователя от чьего имени собирается КК.

это основные настройки нашего кросскомпилятора - в данном случае оптимизируем для процессорного ядра arm926e-js (применимо ко всем процессорам atmel из линейки at91sam9xxx) без VFP.

это то что будет фигурировать во втором поле вашего кросскомпилятора (в данном случае получится arm-atmel-linux-gnueabi-gcc)

собираем для целевой ОС на базе ядра Linux, заголовки будут взяты от ядра 3.2.16, это еще одна из причин по которой бывает нужен свой кросскомпилятор - выбирайте здесь ядро с которым планируете работать на плате. В данном случае - ядро из ветки 3.2 которая объялена как longterm (с длительной поддержкой) - для нее будут выходит патчи устраняющие критические уязвимости дольше чем для обычных стабильных релизов. Именно такие ядра обычно выбирают для дистрибутивов.

на данный момент последний стабильный релиз.

выбирайте версию gcc исходя из своих поотребностей, linaro - лично мое предпочтение.

eglibc - компактный вариант glibc бинарно совместимый с ним, если у вас не dataflash 4MB - нет никакого смысла возиться в uclibc, рекомендую eglibc, версия 2.13 - последняя с которой вы не испытаете проблем при сборке расширенного варианта busybox - связано это с RPC.

это то что вам понадобится при удаленной отладке программ запущенных на плате.

выбираем все самое свежее. Далее выбираем Exit и соглашаемся сохранить полученный конфиг. Непосредственно сборка запускается командой

на моем 2-ядерном селероне 1,8 ГГц, ОЗУ 2 Гб она занимает примерно 40 минут. Конфиг который поучился в результате можно взять тут atmel.config

Добавляем путь к кросскомпилятору в переменную окружения PATH