реклама на сайте
подробности

 
 
> Сборка GNU toolchains, может кто подсказать?
Krom
сообщение May 13 2008, 09:05
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 107
Регистрация: 27-06-05
Из: Россия
Пользователь №: 6 324



Озадачился я самостоятельной сборкой gnu toolchains.

В Линуксе я мягко говоря новичок, поэтому пару недель ушло на поиск и усвоение информации про
что и как делать. Использую дистрибутив Debian Etch 4.0r1, в нем присутствуют свои заморочки,
но в принципе разобрался. Много чего почерпнул на этом форуме, но осталось пару непоняток.
Прошу знающих людей разъяснить, в свою очередь обязуюсь написать подробный манул по сборке,
потому как проити через такое оно конечно и полезно в плане навыков, но времени и нервов на
это уходит масса.

Итак, вопросы.
1. По сборке binutils вопросов нет, разобрался.
2. Далее рекомендуется собрать gcc c опцией --without-headers, потом с помощью собранного gcc
собрать newlib, и уже потом пересобрать gcc заново. Вот здесь я и застопорился. После
двухдневных плясок с бубном gcc-4.3 я собрал:

/usr/local/arm/src/build/gcc-4.3/src/configure --prefix=/usr/local/arm --target=arm-elf --disable-nls
--disable-werror --enable-threads --disable-shared --disable-win32-registry --enable-languages=c
--enable-interwork --enable-multlib --with-float=soft --disable-libssp --with-newlib --without-headers
make
make install

а вот как с его помощью собрать newlib? Пробовал конфигурировать так:

CC=arm-elf-gcc ./configure --target=arm-elf --prefix=/usr/local/arm --enable-interwork --enable-multlib

так ругаецца, говорит, что указанный компиллятор не может создавать исполняемые файлы sad.gif.
Оно вроде бы как и понятно,собран с опцией --target=arm-elf, то есть будет генерировать файлы elf,
но тогда как надо? И нужен ли вообще этот этап?

Таким вот макаром

./configure --target=arm-elf --prefix=/usr/local/arm --enable-interwork --enable-multlib

нормально конфигурится и затем собирается. Но это я так понимаю с помощью системного gcc. Может,
так и надо?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Krom
сообщение May 16 2008, 06:03
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 107
Регистрация: 27-06-05
Из: Россия
Пользователь №: 6 324



Огромное всем спасибо, счас буду пробовать, ежели что - не обессудьте, опять приставать буду smile.gif
Железа у меня до фига всякого, правда все для ARM7 и Cortex M3, закончим со сборкой начнем тестить.
О, сразу вопрос - а insight для чего нужно и нужно ли вообще? Если нужно, с какими опциями собирать?
Смотрел,в сборках у уважаемого klen эти библиотеки отсутствуют...

Цитата(amw @ May 15 2008, 23:47) *
Скрипт и патчи прилагаю.

А расшифруйте мне, плиз, значение следующих строк из патча gcc-cortex.diff
-#MULTILIB_OPTIONS += march=armv7
-#MULTILIB_DIRNAMES += thumb2
-#MULTILIB_EXCEPTIONS += march=armv7* marm/*march=armv7*
+MULTILIB_OPTIONS += march=armv7
+MULTILIB_DIRNAMES += thumb2

В принципе строчка с "+" вначале понятна, а что значит -#MULTILIB_OPTIONS += march=armv7?
Удалить строку?
Сорри за чаниковские вопросы, но в Линуксе я пока чайник и есть. Но учусь smile.gif

emdebian я смотрел, но там какой-то совсем уж debian-way способ сборки, по которому, как мне кажется, и проконсультироваться-то будет не у кого. Позже будем разбираться.
Go to the top of the page
 
+Quote Post
amw
сообщение May 16 2008, 07:53
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Цитата(Krom @ May 16 2008, 09:03) *
А расшифруйте мне, плиз, значение следующих строк из патча gcc-cortex.diff
-#MULTILIB_OPTIONS += march=armv7
-#MULTILIB_DIRNAMES += thumb2
-#MULTILIB_EXCEPTIONS += march=armv7* marm/*march=armv7*
+MULTILIB_OPTIONS += march=armv7
+MULTILIB_DIRNAMES += thumb2

Патчи генеряться программой diff и накладываются программой patch.
В результате работы diff получаем файл, в котором указано как из старого сделать новое.
Строки помеченные минусом впереди означают что их нужно удалить из старого, а помеченные плюсом - добавить в старое. И после такого удаления и добавления получается новое.
Для изменяемых строк (удаляемых и добавляемых) diff добавляет в начале минус или плюс, для неизменных - пробел.
При накладывании патча программой patch она по неизменяемым строкам и доп инфе начинающейся с @ находит в старом нужное место, те строки, которые помечены минусом удаляет, а те что плюсом - добавляет. И пробелы и минусы и плюсы не вносятся в результирующий файл.

2klen: Ну так вот тестирование и началось smile.gif
Так все таки не ясно как у Вас newlib собралось и действительно ли его сборка поддерживает cortex. Мож тута какя собака порылась smile.gif. У меня в этом setjmp.S тоже ошибка и она естественна, потому как процессор не поддерживает такой операции, а в newlib сие не проверяется. Может патч какой был специфический?


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post
klen
сообщение May 16 2008, 09:10
Сообщение #4


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Цитата(amw @ May 16 2008, 11:53) *
Может патч какой был специфический?


да небыло никакого пача.
1. несобрался setjmp.s
2. грусно...
3. смотру код - ага! видно где ошибка.
4. читаю доку на Cortex M3 и вижу что SP нада запихывать иным от armv4
способом
5. правим файл - добавляем "иной способ" - ветка под дефайном __thumb2
5. собираем ... о! собралось!!!
6. компилирием код и шъем - смотрим (у меня ВРОДЕБЫ РАБОТАЛО на STM Primer - рекламный тамагочи от STM c STM32)
7. Дополнительно симулируем код в симуляторе

2amw: ну и как, работает?
Go to the top of the page
 
+Quote Post
amw
сообщение May 16 2008, 11:20
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Цитата(klen @ May 16 2008, 12:10) *
2amw: ну и как, работает?

Нет. Этого оказалось недостаточно.
Код
arm-elf-gcc -B/home/amw/devel/ARM/arm-elf-cortex/tools/build/newlib/arm-elf/newlib/ -isystem /home/amw/devel/ARM/arm-elf-cortex/tools/build/newlib/arm-elf/newlib/targ-include -isystem /home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/newlib/libc/include -B/home/amw/devel/ARM/arm-elf-cortex/tools/build/newlib/arm-elf/libgloss/arm -L/home/amw/devel/ARM/arm-elf-cortex/tools/build/newlib/arm-elf/libgloss/libnosys -L/home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm -O2 -g -g -O2   -I. -I/home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/.. -O2 -g -g -O2    -mthumb -march=armv7 -c /home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S
/home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S: Assembler messages:
/home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S:85: Error: thumb conditional instrunction not in IT block
/home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S:91: Error: selected processor does not support requested special purpose register %x -- `mrs r2,CPSR'
/home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S:94: Error: Thumb encoding does not support an immediate here -- `msr CPSR_c,#0xD1'
/home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S:99: Error: Thumb encoding does not support an immediate here -- `msr CPSR_c,#0xD7'
/home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S:103: Error: Thumb encoding does not support an immediate here -- `msr CPSR_c,#0xDB'
/home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S:107: Error: Thumb encoding does not support an immediate here -- `msr CPSR_c,#0xD2'
/home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S:111: Error: Thumb encoding does not support an immediate here -- `msr CPSR_c,#0xD3'
/home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S:118: Error: Thumb load/store multiple does not support {reglist}^ -- `ldmdb r3,{sp}^'
/home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S:121: Error: selected processor does not support requested special purpose register -- `msr CPSR_c,r2'
make[5]: *** [crt0.o] Помилка 1

На счет работает - нескажу, нет кортекса. А вот перекомпилить это могем smile.gif. Правда пока безуспешно.

Цитата(Krom @ May 16 2008, 14:08) *
да библиотека есть, как ее только подсунуть... и куда...
Собираться она не хочет, требует altgcc.
Скачанный бинарный пакет с этой библиотекой тоже не устанавливается из-за зависимостей. Наверное, должен быть другой путь, люди же (/me посматривает в сторону более опытных товарищей smile.gif ) как-то собирают

Это в дебиан?
тогда
apt-get install ncurses


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post
Krom
сообщение May 16 2008, 11:59
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 107
Регистрация: 27-06-05
Из: Россия
Пользователь №: 6 324



Цитата(amw @ May 16 2008, 15:20) *
тогда
apt-get install ncurses


установка libncurses5-dev помогла.

То есть на текущий момент собрано практически все. Сегодня буду прикручивать к Эклипсу, ну а потом пробовать на железке - у меня STM3210B-EVAL (это в первую очередь пойдет), STR710-EVAL и LPC2468 OEM Boad. Бум тестить smile.gif.

Мануал, как и обещал, за мной. Думаю, лишним на форуме не будет.

Да, еще вопрос. insight - нужны будут при работе в Eclipse-GDB-...?
Если да, то как их собирать?
Go to the top of the page
 
+Quote Post
amw
сообщение May 16 2008, 12:10
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Цитата(Krom @ May 16 2008, 14:59) *
установка libncurses5-dev помогла.

То есть на текущий момент собрано практически все. Сегодня буду прикручивать к Эклипсу, ну а потом пробовать на железке - у меня STM3210B-EVAL (это в первую очередь пойдет), STR710-EVAL и LPC2468 OEM Boad. Бум тестить smile.gif.

Мануал, как и обещал, за мной. Думаю, лишним на форуме не будет.

Да, еще вопрос. insight - нужны будут при работе в Eclipse-GDB-...?
Если да, то как их собирать?

insight это как бы "графический gdb". Для работы с eclipse он не нужен. Для eclipse нужен какраз gdb.
После сборки insight появится его собственный arm-elf-gdb. Хотя по чесному он не его собственный, а пропатченный и включенный в insight "просто" gdb.


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Krom   Сборка GNU toolchains, может кто подсказать?   May 13 2008, 09:05
- - Andy Great   Дык Вы загляньте в Makefile после ./configure. Там...   May 13 2008, 09:13
- - amw   Цитата(Krom @ May 13 2008, 12:05) Озадачи...   May 13 2008, 09:18
|- - Krom   Цитата(amw @ May 13 2008, 13:18) Вот тут ...   May 13 2008, 09:50
|- - amw   Цитата(Krom @ May 13 2008, 12:50) Спасибо...   May 13 2008, 10:00
- - Krom   Ok. Буду дальше разбираться. А какие проблемы в gc...   May 13 2008, 10:10
|- - amw   Цитата(Krom @ May 13 2008, 13:10) Ok. Буд...   May 13 2008, 10:21
- - Krom   Судя по тому, что поддержка ARMv7 появилась только...   May 14 2008, 06:03
- - Andy Great   Возьмите CodeSourcery уже скомпилированный.   May 14 2008, 06:38
- - Krom   Такие вот дела: binutils, gcc и newlib в принципе ...   May 14 2008, 14:00
|- - amw   Цитата(Krom @ May 14 2008, 17:00) Если же...   May 15 2008, 07:30
|- - Krom   Цитата(amw @ May 15 2008, 11:30) А newlib...   May 15 2008, 12:34
|- - klen   Цитата(Krom @ May 15 2008, 16:34) По идее...   May 15 2008, 14:47
- - zltigo   Цитата(Krom @ May 13 2008, 11:05) Озадачи...   May 14 2008, 14:23
- - Andy Great   klen делает дистрибутивы, так что, похоже, дружит.   May 15 2008, 08:39
- - Krom   О, на вас вся надежда! Повторюсь немного: 1...   May 15 2008, 15:12
|- - amw   Цитата(Krom @ May 15 2008, 18:12) Все исх...   May 15 2008, 18:29
|- - amw   Цитата(Krom @ May 15 2008, 18:12) MULTILI...   May 15 2008, 19:47
|- - klen   извиняюсь - забыл укаать, ессесено функции лежат ...   May 16 2008, 04:52
- - klen   Все прально не собираецца! не должен нада под...   May 15 2008, 19:28
|- - Andy Great   Цитата(Krom @ May 16 2008, 09:03) -#MULTI...   May 16 2008, 07:27
|- - Krom   Цитата(amw @ May 16 2008, 16:10) Для рабо...   May 16 2008, 12:34
- - Krom   Итак, промежуточные результаты. С помощью шаманско...   May 16 2008, 09:51
- - Cyber_RAT   * sys-libs/libtermcap-compat Homepage: ...   May 16 2008, 10:31
- - Krom   да библиотека есть, как ее только подсунуть... и к...   May 16 2008, 11:08
- - amw   Нашел вот это http://www.nabble.com/arm-elf-thumb-...   May 16 2008, 13:12
- - Krom   А примера makefile для STM32 под рукой ни у кого н...   May 16 2008, 13:42
|- - amw   Цитата(Krom @ May 16 2008, 16:42) А приме...   May 16 2008, 13:53
- - Krom   Всем привет! Снова вопросы Никак не могу прик...   May 19 2008, 11:53
- - Leen   Ну вообще-то subclipse.tigris.org - это плагин sub...   May 19 2008, 12:05
|- - Krom   Цитата(Leen @ May 19 2008, 16:05) Ну вооб...   May 19 2008, 12:28
- - Leen   Я делал так: - собрал свой тулчейн (binutils/gcc/g...   May 19 2008, 21:37
|- - Krom   Цитата(Leen @ May 20 2008, 01:37) - распа...   May 20 2008, 07:44
|- - Krom   Цитата(Leen @ May 20 2008, 01:37) - а дал...   May 20 2008, 10:33
|- - Leen   Цитата(Krom @ May 20 2008, 21:33) 1. Уста...   May 20 2008, 11:12
|- - Krom   Цитата(Leen @ May 20 2008, 15:12) о том, ...   May 20 2008, 12:03
|- - Leen   Цитата(Krom @ May 20 2008, 22:46) А где э...   May 20 2008, 12:09
- - Krom   На самом деле все просто: там же, где определяются...   May 21 2008, 11:57
- - Krom   C тулчейном и средой в принципе разобрался. Застря...   May 26 2008, 11:07
- - Andy Great   Код.fpu softfpa Может так?   May 26 2008, 13:26
|- - Krom   Цитата(Andy Great @ May 26 2008, 17:26) К...   May 26 2008, 13:30
- - COMA   Добрый день, никто не пробовал собирать GNU tool...   Oct 22 2008, 07:07
|- - klen   Цитата(COMA @ Oct 22 2008, 11:07) Добрый ...   Oct 23 2008, 17:57
- - COMA   Можно поподробнее? Почему не понравилось? Просто ...   Oct 24 2008, 03:59
|- - klen   Цитата(COMA @ Oct 24 2008, 06:59) Можно п...   Nov 17 2008, 19:08
- - COMA   Спасибо за ответ.   Nov 18 2008, 05:00


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 17:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.01486 секунд с 7
ELECTRONIX ©2004-2016