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

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> Сборка GNU toolchains, может кто подсказать?
Krom
сообщение May 16 2008, 12:34
Сообщение #31


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

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



Цитата(amw @ May 16 2008, 16:10) *
Для работы с eclipse он не нужен. Для eclipse нужен какраз gdb.

Спасибо, понял. Это радует, а то бы еще на них день-два потратить пришлось.
Go to the top of the page
 
+Quote Post
amw
сообщение May 16 2008, 13:12
Сообщение #32


Знающий
****

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



Нашел вот это
http://www.nabble.com/arm-elf-thumb-2-issu...td16732137.html
Будем проверять.

Это не роверял.
Но взял исходник с CVS. Собралось.
Есть мультилиб на thumb2.
Проверить не могу - нет cortex. Есть инфа, что тут еще не все в порядке.
http://sourceware.org/cgi-bin/cvsweb.cgi/s...0.S?cvsroot=src
Как бы его проверить.
Патчей на этот исходник не накладывал, компилил тем же скриптом, что и приводил выше только без патчей.

Сообщение отредактировал amw - May 16 2008, 13:13


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


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

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



А примера makefile для STM32 под рукой ни у кого нет случаем? Или простенького тестового примерчика. Железка есть, я бы проверил.
Go to the top of the page
 
+Quote Post
amw
сообщение May 16 2008, 13:53
Сообщение #34


Знающий
****

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



Цитата(Krom @ May 16 2008, 16:42) *
А примера makefile для STM32 под рукой ни у кого нет случаем? Или простенького тестового примерчика. Железка есть, я бы проверил.

Примера нет. Но насколько я могу судить нужно указать -mthumb2 -mcpu=cortex-m3.
А собственно пример по идее за Вами smile.gif.


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


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

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



Всем привет! Снова вопросы sad.gif
Никак не могу прикрутить к Элипсу Zylin CDT.
На сайте http://www.zylin.com/embeddedcdt.html ссылка в 3м пункте неактивна, если перейти по ней вручную, возвращает на исходную страницу:

Download & installation
1. Install Eclipse 3.3 or newer. We recommend the Eclipse Classic 3.x package
http://www.eclipse.org
2. Eclipse CDT 4.x or newer
http://www.eclipse.org/cdt
3. Install Zylin-embedded CDT using, the update site
http://www.zylin.com/zylincdt

If you are unfamiliar with Eclipse update sites, Subclipse provides helpful instructions. page:
http://subclipse.tigris.org/install.html

Выполняю инструкции по сcылке http://subclipse.tigris.org/install.html - собственно Zylin CDT (или все-таки embedded-cdt?) найти не могу. Я конечно понимаю, что туплю с жуткой силой, но все-таки...
Пните, плиз в нужном направлении, или где чего почитать подскажите...
Go to the top of the page
 
+Quote Post
Leen
сообщение May 19 2008, 12:05
Сообщение #36


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

Группа: Свой
Сообщений: 172
Регистрация: 5-08-06
Из: Владивосток
Пользователь №: 19 343



Ну вообще-то subclipse.tigris.org - это плагин subversion, а никак не zylin или embedded cdt:).
Мдя... Короче, они выложили апдейт прямо на указанный адрес...
Его нельзя скачать, а потом тупо распаковать.
Надо делать так: Eclipse->help->Soft updates->find & install.
В появившемся диалоге: установить новые, след: добавляем урл зилина (http://www.zylin.com/zylincdt), если его не было, финиш...
Приплыли, блин: Zylin Embedded CDT (4.2.1) requires feature "org.eclipse.cdt (4.0.1.200709241202)", or later version.... Короче, обновляться, обновляться и еще раз обновляться...
Могу выложить зилин цдт версии zylincdt4.0-20070830 (100 к), правда к нему идет еще и embeddedcdt4.0-20070830 (21 М)....
PS: кстати, давеча обсуждали косяк зилина 4.1.17, так что советую посмотреть на bug fix, если найдете. Меня пока старый устраивает, менять буду все разом smile.gif

Сообщение отредактировал Leen - May 19 2008, 12:14
Go to the top of the page
 
+Quote Post
Krom
сообщение May 19 2008, 12:28
Сообщение #37


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

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



Цитата(Leen @ May 19 2008, 16:05) *
Ну вообще-то subclipse.tigris.org - это плагин subversion, а никак не zylin или embedded cdt:).

Да это-то я понял... Я имел в виду, как после того, как проставили subversion, проставить собсно zylin cdt. Сорри, что сразу вопросы не формулирую точно - пух тополиный полетел, аллергия бьет с жуткой силой, сижу как в тумане sad.gif
И зачем он собственно нужен? Чтоб arm-elf подключить?

Я бы даже еще упростил вопрос: как все-же прикрутить свой тулчейн к эклипсу? Перечитал скудный эклипсовский хэлп по непомню уже какому разу, облазил все менюшки... Linux GCC и хоть ты тресни...
Может, я эклипс не тот проставил? Я сейчас ковыряюсь с Eclipse IDE for C/C++ Developers...
Или ищу не там?
Go to the top of the page
 
+Quote Post
Leen
сообщение May 19 2008, 21:37
Сообщение #38


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

Группа: Свой
Сообщений: 172
Регистрация: 5-08-06
Из: Владивосток
Пользователь №: 19 343



Я делал так:
- собрал свой тулчейн (binutils/gcc/gdb для arm-elf), можно не собирать, а взять, благо, уважаемый klen компилит;
- распаковал eclipse с плагинами: embedded cdt, zylin cdt, subclipse; (вроде все) - распаковал в смысле я качал не инсталлеры, а зипы, а потом ручками все копировал. Делов-то вывести линк и привязать к нему хоткей smile.gif.
- запретил родной цдт (он разрешен по дефолту), разрешил эмбеддед, они внешне не различаются ничем, кроме версии; сделать это можно меню help->software update->manage configuration. Открывается окно, в нем перечислено все, что есть из активных (разрешенных) плагинов. Третья слева наверху кнопка - show disabled features. Ну а там, запрещаем один Eclipse C/C++ development tool, разрешаем второй.
- а дальше все решается через настройку проекта.
Должен быть прописан путь до /bin тулчейна;
В проекте на вкладке project properties->c/c++ build->tool settings->settings прописываем gcc assembler arm-elf-as, gcc compiler arm-elf-gcc -mcpu=arm7tdmi (сразу говорим, какое у нас ядро), gcc linker arm-elf-gcc; на вкладке build artifact меняем расширение exe - elf, из binary parsers я оставил только gnu elf parser. Этот пункт неплохо описан в атмеловском мануале, я где-то раньше давал в этой теме ссылку.
После этого простейшая printf("hello") у меня скомпилилась.
Дебаг.
Тут собсно и начинаются отличия родного цдт от эмбедного.
Только вот у мну глюк - не добавляется ни одна отладочная конфигурация, кроме отладки эклипс, но надо-то не оно.... Так что пока помочь не могу. Такое уже было, как-то справился, а как - не запомнил sad.gif. Короче, если вечером глюк уйдет спать - продолжу.
Go to the top of the page
 
+Quote Post
Krom
сообщение May 20 2008, 07:44
Сообщение #39


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

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



Цитата(Leen @ May 20 2008, 01:37) *
- распаковал eclipse с плагинами: embedded cdt, zylin cdt, subclipse; (вроде все) - распаковал в смысле я качал не инсталлеры, а зипы, а потом ручками все копировал. Делов-то вывести линк и привязать к нему хоткей smile.gif.

В этом-то и дело! smile.gif Не могу получить embedded cdt, zylin cdt.
Subclipse проставил по инструкции на www.zylin.com, далее как я понимаю откуда-то (откуда? на zylin.com нифига не нашел, откуда) надо получить перечисленные сабжи через Help->Software Updates->Find and Instal. Но где искать - не могу разобраться sad.gif

Блин, торможу не по детски... Все оказалось настолько просто, что проще некуда sad.gif Мну стыдно sad.gif
Help->Software Updates->Find and Install, выбираем Search for new features for install, жмем кнопку Next,
далее кнопку New Remote Site, в поле Name вводим типа Zylin CDT, в поле URL строку http://www.zylin.com/zylincdt и все.

Тока вот embedded-cdt там нету. Только Zylin Embedded CDT 4.2.1
Go to the top of the page
 
+Quote Post
Krom
сообщение May 20 2008, 10:33
Сообщение #40


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

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



Цитата(Leen @ May 20 2008, 01:37) *
- а дальше все решается через настройку проекта.
Должен быть прописан путь до /bin тулчейна;
В проекте на вкладке project properties->c/c++ build->tool settings->settings прописываем gcc assembler arm-elf-as, gcc compiler arm-elf-gcc -mcpu=arm7tdmi (сразу говорим, какое у нас ядро), gcc linker arm-elf-gcc; на вкладке build artifact меняем расширение exe - elf, из binary parsers я оставил только gnu elf parser. Этот пункт неплохо описан в атмеловском мануале, я где-то раньше давал в этой теме ссылку.
После этого простейшая printf("hello") у меня скомпилилась.

Вот этого никак не могу найти sad.gif. Все описанное выше проделал: тулчейн собран, эклипс установлен, Zylin Embedded CDT 4.2.1 скачан и установлен, Eclipse C/C++ Developvent Tools SDK отключен, дальше - глухо.
1. Устанавливаю перспективу C/C++ (пробовал и Debug - результат тот же)
2. Создаю новый проект (С Project) - в Toolchains только Linux GCC. Не, если убрать галку ... supported on the platform появляются и другие, но Цигвин и МинГВ - не наш случай. Ладно, забиваем на все, выбираем Linux GCC, вводим имя проекта.
3. В следующем окне предлагаются две конфигурации - Debug и Release. Жмем кнопку Advanced и в следующем окне в Properties for Test2 вроде как есть Tool Chain Editor, но по кнопке Select Tools предлагается все что угодно, только не то, что мне надо (Цигвины, МакТулс и прочее), где можно было бы указать путь к моему тулчейну - ни фига не вижу crying.gif
Но в тех же Properties есть пункт Settings, вот там похожие настройки есть. Для GCC C Compiler задаю путь /usr/local/arm/arm-elf/bin/gcc - задается, а вот для линкера и асма не хочет. Оно по умолчанию их будет брать из той же директории, что компилер? И вообще, там ли я копаю?
Все нашел, правда пришлось переставить эклипс и Zylin CDT. Почему первый раз так сглючило так и не понял, но там было подвисание Эклипса при отключении стандартного CDT, возможно в этом все дело.
Go to the top of the page
 
+Quote Post
Leen
сообщение May 20 2008, 11:12
Сообщение #41


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

Группа: Свой
Сообщений: 172
Регистрация: 5-08-06
Из: Владивосток
Пользователь №: 19 343



Цитата(Krom @ May 20 2008, 21:33) *
1. Устанавливаю перспективу C/C++ (пробовал и Debug - результат тот же)
Ну дык... Перспективы - это просто сохраненный набор окошек, расположенный удобным для выполнения той или иной задачи. Например, В С/С++ перспективе, окно кода подольше и по центру, в дебаге - поменьше и слева, а в перспективе просмотра SVn его и ваще нет - а нафик оно там?

Цитата
3. В следующем окне предлагаются две конфигурации - Debug и Release. Жмем кнопку Advanced и в следующем окне в Properties for Test2 вроде как есть Tool Chain Editor, но по кнопке Select Tools предлагается все что угодно, только не то, что мне надо (Цигвины, МакТулс и прочее), где можно было бы указать путь к моему тулчейну - ни фига не вижу crying.gif
Странно, у меня есть следующие платформы:
- Solaris GCC;
- MinGW GCC;
- Cygwin (собсна, активен) GCC;
- Linux GCC;
- MacOSX GCC;
Цитата
Но в тех же Properties есть пункт Settings, вот там похожие настройки есть.
Именно там и устанавливаются имена ассемблера, компилера и линкера.
Цитата
Для GCC C Compiler задаю путь /usr/local/arm/arm-elf/bin/gcc - задается, а вот для линкера и асма не хочет. Оно по умолчанию их будет брать из той же директории, что компилер? И вообще, там ли я копаю?
А накой так извращаться??? Путь до исполняемых файлов тулчейна должен быть по определению в системной переменной PATH, иначе имхо будут глюки. Возможно, что эклипс не хочет брать пути - это оно и есть - не нужны они среде. Среда просто вызывает
Код
arm-elf-gcc -c main.c -o main.o
и остальное ее не волнует - о том, где кто лежит, ось должна думать. Вот.
Да, кстати, неверно, наверно, что Вы пытаетесь накормить эклипс файлами из $(prefix)/arm-elf/bin. Путь должен быть до $(prefix)/bin - там лежат arm-elf-as, arm-elf-gcc и тд, т.е. то, что нужно для сборки именно этой цели.
Go to the top of the page
 
+Quote Post
Krom
сообщение May 20 2008, 12:03
Сообщение #42


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

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



Цитата(Leen @ May 20 2008, 15:12) *
о том, где кто лежит, ось должна думать. Вот. ...
Путь до исполняемых файлов тулчейна должен быть по определению в системной переменной PATH

А где эту переменную задавать? Хотя, я уже догадался, где - в параметре Directories.

Цитата(Leen @ May 20 2008, 15:12) *
Да, кстати, неверно, наверно, что Вы пытаетесь накормить эклипс файлами из $(prefix)/arm-elf/bin. Путь должен быть до $(prefix)/bin - там лежат arm-elf-as, arm-elf-gcc и тд, т.е. то, что нужно для сборки именно этой цели.

Зависит от сборки. Я собирал в /usr/local/arm. Я так думаю, это связано и с путями до исполняемых файлов. Но я нашел, как это решать. Там есть параметр Directories, в нем и задается путь к директорию с исполняемыми файлами.

Не, нифига. Лезет гад в /usr/bin/sh
Ладно, сегодня надо убегать, завтра буду дальше копать
Go to the top of the page
 
+Quote Post
Leen
сообщение May 20 2008, 12:09
Сообщение #43


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

Группа: Свой
Сообщений: 172
Регистрация: 5-08-06
Из: Владивосток
Пользователь №: 19 343



Цитата(Krom @ May 20 2008, 22:46) *
А где эту переменную задавать?
Ээээ, в линухе - не помню sad.gif А вообще, это - _системная_ переменная. Соответственно, задавать ее надо не в эклипсе. Хотя тоже вариант, наверно...
Цитата
Зависит от сборки. Я собирал в /usr/local/arm.
Не, не зависит... В Вашем случае префикс как раз /usr/local/arm. Зачем создается папка $(prefix)/arm-elf/bin и в нее кладутся исполняемые без так называемого program-prefix (arm-elf- в данном случае) - as, ld, gcc и пр., могут объяснить корифеи, если спросите. Вообще же лучше пользоваться утилами с програм-префиксом, сваленными в одну папку $(prefix)/bin - там могут лежать (и спокойно лежат, не мешая друг другу - у меня и у других) наборы для разных камней. Мой цигвин откомпилен для армов и х86, подумываю присоединить еще и авровый набор. Вдруг понадобится. И все это в /usr/bin. И в виндовом пути до всех компилеров одна строчка - c:\cygwin\bin. А уже в проектах указываю просто gcc или arm-elf-gcc по мере необходимости.
Go to the top of the page
 
+Quote Post
Krom
сообщение May 21 2008, 11:57
Сообщение #44


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

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



На самом деле все просто: там же, где определяются GCC и прочее, есть пунктик Enviroment, вот там создаем новую переменную PATH и прописываем все нужные пути.
Счас вот собрал OpenOCD, как разберусь, напишу кратенькие мануальчеги по результатам.
Go to the top of the page
 
+Quote Post
Krom
сообщение May 26 2008, 11:07
Сообщение #45


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

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



C тулчейном и средой в принципе разобрался. Застрял на примере.
При сборке выдает следующее:
Invoking: GCC C Linker
arm-elf-gcc -o"cortex-m3-test.elf" ./cortexm3_macro.o ./main.o ./stm32f10x_flash.o ./stm32f10x_gpio.o ./stm32f10x_it.o ./stm32f10x_lib.o ./stm32f10x_nvic.o ./stm32f10x_rcc.o
/usr/local/arm/lib/gcc/arm-elf/4.3.1/../../../../arm-elf/bin/ld: ERROR: ./cortexm3_macro.o uses hardware FP, whereas cortex-m3-test.elf uses software FP
/usr/local/arm/lib/gcc/arm-elf/4.3.1/../../../../arm-elf/bin/ld: failed to merge target specific data of file ./cortexm3_macro.o
/usr/local/arm/lib/gcc/arm-elf/4.3.1/../../../../arm-elf/bin/ld: ./main.o(main): warning: interworking not enabled.
first occurrence: /usr/local/arm/lib/gcc/arm-elf/4.3.1/../../../../arm-elf/lib/crt0.o: arm call to thumb
collect2: ld returned 1 exit status
make: *** [cortex-m3-test.elf] Ошибка 1


В асм-файле cortexm3_macro.s имеем следующую строку:
.cpu cortex-m3
.fpu softvfp
.syntax unified
.thumb


Чего там писать-то, чтоб не ругалось? Перерыл весь инет, перебробовал кучу вариантов, не могу ладу дать sad.gif. Если закоментарить эту строчку, то результат тот же sad.gif
Go to the top of the page
 
+Quote Post

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

 


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


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