Страница 1 из 1

Прошивка с GCC на uclibc и как собрать свою программу

СообщениеДобавлено: 13 фев 2014, 12:04
lyxstv
К сожалению сколько я не пытался, не удалось мне собрать GCC на родном SDK, да и родной функционал сборки GCC не работает если подключен сторонний тулчайн.
Я вообще сомневаюсь что codesourcery который идет с v2r, собирает под armv5, все говорит об armv4, даже если ставить -march.
Ничего не оставалось как отказаться от codesourcery и собрать все на родном uclibc и gcc.

Собственно вот результат, 2 прошивки.
Это тестовый прошивки, возможно что-то не будет работать.

Облегченная, практически копия что в SDK
http://rcstv.ru/static/v2r/v2r-uclibc-lite-1.0.img.bz2
Тяжелая, с GCC и необходимыми dev файлами и утилитами.
http://rcstv.ru/static/v2r/v2r-uclibc-full-1.0.img.bz2

Процесс установки аналогичен стандартной прошивки.
Скачиваем, распаковываем и img файл заливаем на micro-sd, допустим это /dev/sdf
Код: Выделить всё
bunzip2 v2r-uclibc-lite-1.0.img.bz2
dd if=./v2r-uclibc-lite-1.0.img of=/dev/sdf


кстати у dd во время заливки можно узнать прогресс, послав например из другой консоли сигнал USR1
Код: Выделить всё
killall -USR1 dd


Так же я подготовил пример C программы и скелет для сборки в SDK.
http://rcstv.ru/static/v2r/example_hello.tar.bz2

Как им пользоваться.

Качаем, распаковываем, получаем папку hello.
В ней файлы hello.mk, Config.in, hello-0.1.tar.bz2 необходимы для сборки в родной SDK, как это сделать я опишу далее.
Папка hello-0.1 ваш проект на C, с примером программы и Makefile.

Для тестов на моей full прошивке достаточно папки hello-0.1, редактируем hello.c, собираем проект make, устанавливаем make install, очищаем make clean, все стандартно.

Это очень удобно, пишем и проверяем работу сразу же на устройстве.

Как все готово, всю папку hello копируем в SDK в fs/package.
Запускаем скрипт make_dist_file.sh, который делает архив из вашего проекта hello-0.1, необходимый для сборки buildroot.
В SDK заходим в папку fs и в ней делаем make hello, проект должен собраться в папке fs/output/build/hello-0.1 и проинсталируется в fs/output/target/usr/bin/hello это будущая ваша прошивка.

Рекомендую делать сборку своих пакетов, после того как сделали make build всего SDK, для того чтобы все необходимые библиотеки были уже собраны.
Если вам необходимо пересобрать ваш проект, необходимо удалить из папки dl файл hello-0.1.tar.bz2, лично я делаю симлинк на него из packages и удалить папку fs/output/build/hello-0.1

Re: Прошивка с GCC на uclibc и как собрать свою программу

СообщениеДобавлено: 14 фев 2014, 10:04
Gol
lyxstv писал(а):Я вообще сомневаюсь что codesourcery который идет с v2r, собирает под armv5, все говорит об armv4, даже если ставить -march.

А можно поподробнее??? CodeSourcery рекомендован производителем (не нами), правда, у них только старая версия (2009q1).

readelf про собранные бинарники говорит "Tag_CPU_arch: v5TE", т.е. вроде норм armv5

DVSDK пробовал своим тулчейном собирать? Ибо кодеки эт самое геморойное. Если соберутся, тогда можно будет попробовать всё увести к CodeSourcery, но пока - нет.

Re: Прошивка с GCC на uclibc и как собрать свою программу

СообщениеДобавлено: 14 фев 2014, 18:57
lyxstv
Все собрано родным тулчайном и кодеки в том числе, собрать ооочень большой геморой )
Про CodeSourcery не утверждаю, но например если собирать GCC им, то GCC берет спеки из компилятора собирающего его и там armv4