|
|
  |
Сборка GNU toolchains, может кто подсказать? |
|
|
|
May 16 2008, 12:34
|
Частый гость
 
Группа: Свой
Сообщений: 107
Регистрация: 27-06-05
Из: Россия
Пользователь №: 6 324

|
Цитата(amw @ May 16 2008, 16:10)  Для работы с eclipse он не нужен. Для eclipse нужен какраз gdb. Спасибо, понял. Это радует, а то бы еще на них день-два потратить пришлось.
|
|
|
|
|
May 16 2008, 13:12
|
Знающий
   
Группа: Свой
Сообщений: 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.
|
|
|
|
|
May 16 2008, 13:53
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата(Krom @ May 16 2008, 16:42)  А примера makefile для STM32 под рукой ни у кого нет случаем? Или простенького тестового примерчика. Железка есть, я бы проверил. Примера нет. Но насколько я могу судить нужно указать -mthumb2 -mcpu=cortex-m3. А собственно пример по идее за Вами  .
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
|
May 19 2008, 11:53
|
Частый гость
 
Группа: Свой
Сообщений: 107
Регистрация: 27-06-05
Из: Россия
Пользователь №: 6 324

|
Всем привет! Снова вопросы  Никак не могу прикрутить к Элипсу 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?) найти не могу. Я конечно понимаю, что туплю с жуткой силой, но все-таки... Пните, плиз в нужном направлении, или где чего почитать подскажите...
|
|
|
|
|
May 19 2008, 12:05
|
Частый гость
 
Группа: Свой
Сообщений: 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, если найдете. Меня пока старый устраивает, менять буду все разом
Сообщение отредактировал Leen - May 19 2008, 12:14
|
|
|
|
|
May 19 2008, 12:28
|
Частый гость
 
Группа: Свой
Сообщений: 107
Регистрация: 27-06-05
Из: Россия
Пользователь №: 6 324

|
Цитата(Leen @ May 19 2008, 16:05)  Ну вообще-то subclipse.tigris.org - это плагин subversion, а никак не zylin или embedded cdt:). Да это-то я понял... Я имел в виду, как после того, как проставили subversion, проставить собсно zylin cdt. Сорри, что сразу вопросы не формулирую точно - пух тополиный полетел, аллергия бьет с жуткой силой, сижу как в тумане  И зачем он собственно нужен? Чтоб arm-elf подключить? Я бы даже еще упростил вопрос: как все-же прикрутить свой тулчейн к эклипсу? Перечитал скудный эклипсовский хэлп по непомню уже какому разу, облазил все менюшки... Linux GCC и хоть ты тресни... Может, я эклипс не тот проставил? Я сейчас ковыряюсь с Eclipse IDE for C/C++ Developers... Или ищу не там?
|
|
|
|
|
May 19 2008, 21:37
|
Частый гость
 
Группа: Свой
Сообщений: 172
Регистрация: 5-08-06
Из: Владивосток
Пользователь №: 19 343

|
Я делал так: - собрал свой тулчейн (binutils/gcc/gdb для arm-elf), можно не собирать, а взять, благо, уважаемый klen компилит; - распаковал eclipse с плагинами: embedded cdt, zylin cdt, subclipse; (вроде все) - распаковал в смысле я качал не инсталлеры, а зипы, а потом ручками все копировал. Делов-то вывести линк и привязать к нему хоткей  . - запретил родной цдт (он разрешен по дефолту), разрешил эмбеддед, они внешне не различаются ничем, кроме версии; сделать это можно меню 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") у меня скомпилилась. Дебаг. Тут собсно и начинаются отличия родного цдт от эмбедного. Только вот у мну глюк - не добавляется ни одна отладочная конфигурация, кроме отладки эклипс, но надо-то не оно.... Так что пока помочь не могу. Такое уже было, как-то справился, а как - не запомнил  . Короче, если вечером глюк уйдет спать - продолжу.
|
|
|
|
|
May 20 2008, 07:44
|
Частый гость
 
Группа: Свой
Сообщений: 107
Регистрация: 27-06-05
Из: Россия
Пользователь №: 6 324

|
Цитата(Leen @ May 20 2008, 01:37)  - распаковал eclipse с плагинами: embedded cdt, zylin cdt, subclipse; (вроде все) - распаковал в смысле я качал не инсталлеры, а зипы, а потом ручками все копировал. Делов-то вывести линк и привязать к нему хоткей  . В этом-то и дело!  Не могу получить embedded cdt, zylin cdt. Subclipse проставил по инструкции на www.zylin.com, далее как я понимаю откуда-то (откуда? на zylin.com нифига не нашел, откуда) надо получить перечисленные сабжи через Help->Software Updates->Find and Instal. Но где искать - не могу разобраться  Блин, торможу не по детски... Все оказалось настолько просто, что проще некуда  Мну стыдно  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
|
|
|
|
|
May 20 2008, 10:33
|
Частый гость
 
Группа: Свой
Сообщений: 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") у меня скомпилилась. Вот этого никак не могу найти  . Все описанное выше проделал: тулчейн собран, эклипс установлен, 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 предлагается все что угодно, только не то, что мне надо (Цигвины, МакТулс и прочее), где можно было бы указать путь к моему тулчейну - ни фига не вижу Но в тех же Properties есть пункт Settings, вот там похожие настройки есть. Для GCC C Compiler задаю путь /usr/local/arm/arm-elf/bin/gcc - задается, а вот для линкера и асма не хочет. Оно по умолчанию их будет брать из той же директории, что компилер? И вообще, там ли я копаю? Все нашел, правда пришлось переставить эклипс и Zylin CDT. Почему первый раз так сглючило так и не понял, но там было подвисание Эклипса при отключении стандартного CDT, возможно в этом все дело.
|
|
|
|
|
May 20 2008, 11:12
|
Частый гость
 
Группа: Свой
Сообщений: 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 предлагается все что угодно, только не то, что мне надо (Цигвины, МакТулс и прочее), где можно было бы указать путь к моему тулчейну - ни фига не вижу  Странно, у меня есть следующие платформы: - 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 и тд, т.е. то, что нужно для сборки именно этой цели.
|
|
|
|
|
May 20 2008, 12:03
|
Частый гость
 
Группа: Свой
Сообщений: 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 Ладно, сегодня надо убегать, завтра буду дальше копать
|
|
|
|
|
May 20 2008, 12:09
|
Частый гость
 
Группа: Свой
Сообщений: 172
Регистрация: 5-08-06
Из: Владивосток
Пользователь №: 19 343

|
Цитата(Krom @ May 20 2008, 22:46)  А где эту переменную задавать? Ээээ, в линухе - не помню  А вообще, это - _системная_ переменная. Соответственно, задавать ее надо не в эклипсе. Хотя тоже вариант, наверно... Цитата Зависит от сборки. Я собирал в /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 по мере необходимости.
|
|
|
|
|
May 26 2008, 11:07
|
Частый гость
 
Группа: Свой
Сообщений: 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Чего там писать-то, чтоб не ругалось? Перерыл весь инет, перебробовал кучу вариантов, не могу ладу дать  . Если закоментарить эту строчку, то результат тот же
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|