Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопросы по Eclipse, CDT, Zylin embedded CDT
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
Метценгерштейн
тут
проект весь.
Метценгерштейн
пытаюсь настроить под АРМ.
пока что из-под автоматического make.
на что она ругается? Почему ей хидер не найти? Хотя, другие хидеры, лежащие там же- она нашла.
Метценгерштейн
разобрался- он не видел пути, пока не добавил их в path and symbols на вкладке include

новый затык- мне в настройках линкера как надо описать, что мы такие- то адреса памяти используем? Как в ИАРе описывали границы начала памяти флэш и ОЗУ.
Прошиваться не хочет.
Как и чем создавать файл линковщика? Или где берут его?

Его пока настроишь- как проект целый реализовал как буд -то)
BaN
Проблема с резолвом поля структуры, см. приложенный скриншот.
Из всех полей структуры ошибку выдаёт только на одном, остальное всё видит нормально.
Как можно исправить эту ситуацию?
Среда:
Eclipse IDE for C/C++ Developers
Version: Indigo Service Release 2
Build id: 20120216-1857
Компилятор:
arm-none-eabi-gcc (Sourcery CodeBench Lite 2012.03-56) 4.6.3

UPD:
Хотя собирается всё без проблем:
CODE
**** Clean-only build of configuration Debug for project STM32F2_USB_CDC ****

cs-make clean
cs-rm -rf
...................................
' '

**** Build Finished ****

**** Build of configuration Debug for project STM32F2_USB_CDC ****

cs-make all
...................................
' '
'Building target: STM32F2_USB_CDC.elf'
'Invoking: ARM Sourcery Windows GCC C Linker'
arm-none-eabi-gcc
...................................
' '
'Invoking: ARM Sourcery Windows GNU Create Flash Image'
arm-none-eabi-objcopy -O ihex STM32F2_USB_CDC.elf "STM32F2_USB_CDC.hex"
'Finished building: STM32F2_USB_CDC.hex'
' '
'Invoking: ARM Sourcery Windows GNU Create Listing'
arm-none-eabi-objdump -h -S STM32F2_USB_CDC.elf > "STM32F2_USB_CDC.lst"
'Finished building: STM32F2_USB_CDC.lst'
' '
'Invoking: ARM Sourcery Windows GNU Print Size'
arm-none-eabi-size --format=berkeley STM32F2_USB_CDC.elf
text data bss dec hex filename
26056 328 4048 30432 76e0 STM32F2_USB_CDC.elf
'Finished building: STM32F2_USB_CDC.siz'
' '

**** Build Finished ****
BaN
Цитата(BaN @ Jan 8 2013, 18:10) *
Проблема с резолвом поля структуры, см. приложенный скриншот.
Из всех полей структуры ошибку выдаёт только на одном, остальное всё видит нормально.
Как можно исправить эту ситуацию?

Проблема решилась, сделав копию проекта, в этой копии ошибки исчезли, а в оригинале так и остались.
Удалил оригинальный проект и переименовал копию на имя оригинала и ошибок больше нет.
NaughtyFreak
Прошу помощи в настройке Эклипс JUNO под Убунту 12.04

Решил освоить линукс на арме, поставил Убунту 12.04 + Eclipse CDT, скачал через apt-get install arm-linux-gnueabi g++ и gcc соотв-но, делал все точь-в-точь по мануалу как на этом видео туториала про Beaglebone Beaglebone C/C++ Programming for embedded Linux
Плагины все скачались и встали нормально, но при попытке скомпилировать элементарный Hello World! выкидывает ошибку Error 125 arm-linux-g++ not found и на этом вся радость заканчивается. Пробовал и перезапускать эклипс, и пути перепрописывал, все тщетно. Пробовал гуглить у буржуев, отсылают к настройке некой переменной $PATH, для меня как для нуба в Линуксе это все китайская грамота, только-только начал изучать линуксы. Подскажите знающие, куда копать дальше, а то скоро приплывут платки, а так не хочется чтоб они пылью зарастали.
Cosmojam
Цитата(NaughtyFreak @ Jan 10 2013, 22:28) *
Прошу помощи в настройке Эклипс JUNO под Убунту 12.04

Решил освоить линукс на арме, поставил Убунту 12.04 + Eclipse CDT, скачал через apt-get install arm-linux-gnueabi g++ и gcc соотв-но, делал все точь-в-точь по мануалу как на этом видео туториала про Beaglebone Beaglebone C/C++ Programming for embedded Linux
Плагины все скачались и встали нормально, но при попытке скомпилировать элементарный Hello World! выкидывает ошибку Error 125 arm-linux-g++ not found и на этом вся радость заканчивается. Пробовал и перезапускать эклипс, и пути перепрописывал, все тщетно. Пробовал гуглить у буржуев, отсылают к настройке некой переменной $PATH, для меня как для нуба в Линуксе это все китайская грамота, только-только начал изучать линуксы. Подскажите знающие, куда копать дальше, а то скоро приплывут платки, а так не хочется чтоб они пылью зарастали.

Eclipse не находит компилятор.
Что говорит
Код
which arm-linux-g++

(тут странно т.к. нет eabi в имени кросс-компилятора)
И
Код
dpkg -L arm-linux-gnueabi-gcc

И на крайний случай
Код
find / -name arm-linux* -print 2>/dev/null

?

Первая команда просмотрит каталоги, содержащиеся в переменной PATH и отругается если исполняемого файла arm-linux-g++ в них не найдено (видимо так и будет)
Вторая выведет список файлов в пакете arm-linux-gnueabi-gcc вместе с полными путями (если он установлен)
Третья брутально ищет по всему диску файл с заданным именем (если проблемы с предыдущей)
Если компилятор установлен, но путей к нему нет в PATH, то зная этот путь его легко добавить и решить проблему.
NaughtyFreak
Цитата(Cosmojam @ Jan 11 2013, 02:13) *
Eclipse не находит компилятор.
Что говорит
Код
which arm-linux-g++

(тут странно т.к. нет eabi в имени кросс-компилятора)

Молчит как партизан на which arm-linux-g++, пробовал и which g++-arm-linux-gnueabi и т.д. всё пусто.

Остальное спасибо, попробую вечерком и отпишусь! Чуйствую курить мне бульник по линуксу в ближайшем будущем! biggrin.gif
_Pasha
Дык а шо Вы ставили тогда? Какой компилер?
Найдите, где он есть.
export PATH=$PATH:путь-к-компилятору
Вообще-то Ыклипсовый кросс-плагин, например, пути Codesourcery хавает сразу из PATH... посмотреть можно echo $PATH.
Короче, чегой-то с компилером у Вас криво встало. Переустановите лучше.
NaughtyFreak
Компилер ставил apt-get install g++-4.4-arm-linux-gnueabi

для меня все эти PATH и прочие пока страшные слова, осваиваюсь потихоньку.
Canis Dirus
Цитата(NaughtyFreak @ Jan 11 2013, 20:48) *
Компилер ставил apt-get install g++-4.4-arm-linux-gnueabi

Ничего удивительного. Там же только сам бинарник g++. Ставьте gcc-arm-linux-gnueabi, он своими зависимости притащит минимальный необходимый набор (компилятор C и препроцессор).
NaughtyFreak
Цитата(Canis Dirus @ Jan 12 2013, 01:41) *
Ничего удивительного. Там же только сам бинарник g++. Ставьте gcc-arm-linux-gnueabi, он своими зависимости притащит минимальный необходимый набор (компилятор C и препроцессор).

поставил, тольку 0.
Гугль по моей ошибке отсылает искать косяк в переменной PATH. где она, что она и что с ней делать ума не приложу...
_Pasha
Цитата(NaughtyFreak @ Jan 14 2013, 10:36) *
поставил, тольку 0.
Гугль по моей ошибке отсылает искать косяк в переменной PATH. где она, что она и что с ней делать ума не приложу...

Не смешно уже, поскольку я приводил строчку работы с PATH.
Код
echo $PATH  если нужно посмотреть что же там прописано
export PATH=$PATH:путь-к-компилятору если добавить путь, к-рый почеу-то не прописан
mdmitry
Прочитав это, попытался сделать для Eclipse Juno SR1 по аналогии с этим сообщением Сергея Борща.
Отличия: попытался сделать как рекомендуют разработчики, т.е. без "Discovery Options".
В качестве тестового проекта были использованы примеры от ScmRtos для lpc17xx.
Действия:
1. Запуск eclipse, выбор места для workspace. File->New->Makefile Project with Existing Code.
2. Project->Properties.
3. C/C++ General->Preprocessor Include Paths, Mfcros etc.
4. Вкладка Providers. Выбрал все варианты (поставил галки).
Подробности настроек:
4.1. CDT User Settings Entries: выбрано только Enable language settings providers for this project. В группе Language Settings Provider Options ничего не выбрано.
4.2. CDT Managed Build Settings Entries [ Shared ]: выбрано только Enable language settings providers for this project. Группа Language Settings Provider Options недоступна.
4.3. CDT GCC Build Output Parser: выбрано Enable language settings providers for this project. В группе Language Settings Provider Options заполнено по умолчанию Compiler command pattern: (gcc)|([gc]\+\+)|(clang), радиокнопка в Container to keep discovered entries "File" и выбрано Use heuristics to resolve paths.
4.4. CDT GCC Builtin Compiler Settings: выбрано Enable language settings providers for this project. В группе Language Settings Provider Options обязательно выбрать Allocate console in the console View. Остальное не выбрано. Поле "Command to get compiler specs" заполнено так: make discovery
5. Apply, Ok.

У меня не получилось (наверно руки кривые) сделать по полной аналогии. Возникли проблемы с переменными окружения ($(specs_file)).
Сделал изменения в makefile:
Код
#discovery target for Eclipse parser
.PHONY: discovery
discovery:
    @echo > dummyspec.c
    $(CC) $(INCS) $(CFLAGS) -E -P -v -dD dummyspec.c
    $(RM) dummyspec.*

# dependencies
ifeq (,$(findstring build,$(MAKECMDGOALS)))
ifeq (,$(findstring clean,$(MAKECMDGOALS)))
  ifeq (,$(findstring dirs,$(MAKECMDGOALS)))
   ifeq (,$(findstring discovery,$(MAKECMDGOALS)))
  -include $(wildcard $(OBJDIR)/*.d)
   endif
  endif
endif
endif


Не заработало!
Выяснил, что не распознаются относительные пути из $(INCS). При этом все определения (в makefile) и пути компилятора добавляются в eclipse. Замена BASE = . на абсолютный путь к проекту и добавение переменной, определяющую абсолютные значения путей к SCMDIR и COMMON привели к положительному результату.
Запись путей была только с прямыми слэшами, как пути в linux (не родные для Win), иначе не собирался проект с помощью make из командной строки (WinXp).
Проверено на WinXp и linux (SLCE 5.2). Причем в linux путь к компилятору указывался в makefile (TOOL), так как в переменных окружения его не было.

Вопрос: как заставить парсер определить на основе относительного пути полный, считая текщим положение makefile? Наверное, что при использовании Scons можно использовать pwd и получить для цели discovery необходимые полные пути. Как это сделать для make пока не думал.

To ReAl:
Похоже, что в srec_cat версии 1.61 поменялись ключи и на строку из makefile было предупреждение (под linux).
btolfa
Цитата(mdmitry @ Jan 29 2013, 14:44) *
Прочитав это, попытался сделать для Eclipse Juno SR1 по аналогии с этим сообщением Сергея Борща.
Отличия: попытался сделать как рекомендуют разработчики, т.е. без "Discovery Options".

Можно избавиться от временного внучную созданного dummyspec.c Для этого надо изменить правило для discovery следующим образом:
Код
#discovery target for Eclipse parser
discovery:
    $(CC) $(INCS) $(CFLAGS) -E -P -v -dD '$(specs_file)'

А поле "Command to get compiler specs" заполнить make specs_file=${INPUTS} discovery.
По поводу относительных путей вижу только следующую возможность - добавить
Код
ROOT = $(shell pwd)

и указывать INCS пути относительно ROOT
Код
INCS += -I$(ROOT)/src
mdmitry
Цитата(btolfa @ Mar 31 2013, 02:08) *
Можно избавиться от временного внучную созданного dummyspec.c Для этого надо изменить правило для discovery следующим образом:
Код
#discovery target for Eclipse parser
discovery:
    $(CC) $(INCS) $(CFLAGS) -E -P -v -dD '$(specs_file)'

А поле "Command to get compiler specs" заполнить make specs_file=${INPUTS} discovery.
По поводу относительных путей вижу только следующую возможность - добавить
Код
ROOT = $(shell pwd)

и указывать INCS пути относительно ROOT
Код
INCS += -I$(ROOT)/src

Вы это проверяли? Если да, то на какой системе? Я не получил желаемого результата.
btolfa
Цитата(mdmitry @ Apr 2 2013, 01:22) *
Вы это проверяли? Если да, то на какой системе? Я не получил желаемого результата.

Да проверил - Windows 7 x64, Eclipse Juno SR 2. Так же стоит gnuwin32. Видимо у вас не работает из-за отсутсвия pwd утилиты.
Сергей Борщ
Несколько раз задавал где-то на форуме вопрос, но ни разу не получал ответа. Вот одна из попыток:
QUOTE (Сергей Борщ @ Jul 1 2010, 16:58) *
в эклипсе в настройке debug configuration есть возможность выбрать GDB(DSF) Hardware debug launcher и Standart GDB Hardware debug launcher. Какой предпочтительнее? DSF, похоже, не реагирует на настройку формата отображения регистров - каждый раз приходится вручную переключать отбражение с десятичного вида на шестнадцатиричный. Для стандартного формат задается в Window->Preverences->C/C++/Debug. Для DSF есть что-то подобное?

Тут вторая

Мало ли, вдруг кому-то тоже пригодится.

Обнаружил, что в последней эклипсе (Kepler) с CDT версии 8.2.0 после прекращения отладки с сипользованием Standart GDB HArdware Debugging Launcher невозможно удалить сессию в окне Debug. Попробовал еще раз DSF debug launcher и обнаружил, что из меню исчез выбор формата отображения регистров, переменных и т.д. Гугление показало, что они спрятали это меню в показанное на картинке место:
Нажмите для просмотра прикрепленного файла
swisst
Доброго дня !

прикручиваю Keil С51 к Eclipse. Как избавится от ругни на обработчик прерывания static void ADC_Conv_Ready (void) interrupt 6{} ?
Zend
Уважаемые, помогите разобраться.

По некоторым причинам пришлось слезть с Windows + CooCox на Linux + Eclipse + CDT + stlink(от texane)
И вот такая вот трабла... Всё билдится, компилится, в общем, работает ОК, но вот дебажить - через попу. Конкретно - не могу приостановить выполнение программы.
Если поставить брейкпоинт, на нём дебаггер останавливается нормально.
А вот если необходимо приостановить выполнение программы в том месте, в котором выполняется в данный момент - клацаю кнопку "Suspend" (как "пауза") - просто ничего не происходит sad.gif
Пробовал юзать OpenOCD - так там вообще эта кнопка неактивна, но если законнектиться телнетом к OpenOCD и сказать halt - нормально приостанавливается. Уж не знаю, что и думать...
Сергей Борщ
QUOTE (Zend @ Sep 5 2013, 10:22) *
Пробовал юзать OpenOCD - так там вообще эта кнопка неактивна, но если законнектиться телнетом к OpenOCD и сказать halt - нормально приостанавливается. Уж не знаю, что и думать...
В OpenOCD я наблюдал подобное поведение в случае, если в его скрипте нет команды "reset". Удалось это исправить в исходниках, но я не уверен, что починил правильно и в нужном месте. Не знаю, поможет ли это вам, но попробуйте пересобрать с вот этими исправлениями:
CODE
diff --git a/src/jtag/hla/hla_interface.c b/src/jtag/hla/hla_interface.c
index f8b5c61..5e958c3 100644
--- a/src/jtag/hla/hla_interface.c
+++ b/src/jtag/hla/hla_interface.c
@@ -137,7 +137,11 @@ int hl_interface_init_reset(void)
        jtag_add_reset(0, 1);
        hl_if.layout->api->assert_srst(hl_if.fd, 0);
    }
-
+    else
+    {
+        jtag_add_reset(0, 0);
+        hl_if.layout->api->assert_srst(hl_if.fd, 1);
+    }
    return ERROR_OK;
}

diff --git a/src/target/hla_target.c b/src/target/hla_target.c
index 5d31c7a..ececcdf 100644
--- a/src/target/hla_target.c
+++ b/src/target/hla_target.c
@@ -497,7 +497,9 @@ static int adapter_poll(struct target *target)

        LOG_DEBUG("halted: PC: 0x%08x", buf_get_u32(armv7m->arm.pc->value, 0, 32));
    }
-
+    else
+        target->state = state;
+    
    return ERROR_OK;
}

berkl

Товарищи, помогите разобраться плз.

Вопрос по СMake + Eclipse.
Я так понял, с приходом мудрости, и опыта большинство отказываются использовать CMake и прочие костыли, и начинают писать makefile ручками, но я из новичков.

Гляньте, прав я или нет, плз:
итак, при совместной работе Эклипса и cmake есть 3 пути:
1. Использовать генератор "Eclipse CDT4 - Unix Makefiles" . Тут получается два проекта. Первый - это мною написанный файл CMakeLists.txt, из которого CMake сгенерирует файлы проекта Эклипса. Полученные файлы импортируются во вновь созданный проект Эклипса. Если, например, добавился новый сишный исходник к моему проекту, то надо запускать всю описанную цепочку заново и пересоздавать проект в Эклипсе. Второй проект- это другой CMakeLists.txt, в нем я описываю как собрать мой проект, из него будет сгенерён makefile моего проекта.
2. Использовать обычный "Unix Makefiles" генератор которым будет создаан CMakeLists.txt для генерации makefile. При этом файлы проекта Эклипса создаются в самом Эклипсе.
3. Установить в Эклипс плагин CMakeBuilder. Это типа промежуточного звена между Эклипсом и всё тем же CMake. По сути это тот же путь что и второй, только CMakeLists.txt создается не в простом текстовом редакторе, а прямо в Эклипсе.

Мне кажется второй способ более предпочтителен. В первом случае, не понятно зачем генерить файлы проекта из рукописного CMakeLists.txt. Не проще ли проект Эклипса создавать самим эклипсом, пользуясь соответствующим визардом?
Третий способ ставит в зависимость от Эклипса. Мне на данном этапе наплевать стал я зависимым или нет, но потом я думаю, это может помешать мигрировать куда-нибудь. Любые узко специализированные примочки могут оказать медвежью услугу.

Есть ли принципиальные ошибки в выше изложенном ? Если нет, дальше спрашивать буду.

Спасибо!!!!
bureau
Пытаюсь увеличить буфер данных выводимых в консоль. Но даже сняв галку "Limit console output" (Windiws -> Prerefernce->Run/Debug->Console) ничего не изменяется...
Может где-то вручную в конф. файле можно поменять этот параметр?

UP
Windiws -> Prerefernce->C/C++ ->Build->Console
"Limit console output"
сарматъ
Цитата(Сергей Борщ @ Sep 10 2008, 19:32) *
Поставил эклипсу 3.4.0 ganymede, комплект разработки C/C++. Инсталлировал плагин Zylin embedded cdt 4.5.1. В окне консоли gdb теперь можно вводить команды вручную.

а какое заклинание создает окно консоли gdb?

Цитата(Сергей Борщ @ Sep 5 2013, 14:40) *
В OpenOCD я наблюдал подобное поведение в случае, если в его скрипте нет команды "reset". Удалось это исправить в исходниках, но я не уверен, что починил правильно и в нужном месте. Не знаю, поможет ли это вам, но попробуйте пересобрать с вот этими исправлениями:

эти исправления не помогают избавиться от телнета - как раз позавчера писал об этом, а что эти правки делают?
ресет сбрасывает контроллер же? а хальт нет?
Сергей Борщ
QUOTE (сарматъ @ Oct 4 2013, 10:30) *
а какое заклинание создает окно консоли gdb?
Надо выбрать standard hardware GDB debugger launcher и в настройках появится галочка "verbose console mode".

QUOTE (сарматъ @ Oct 4 2013, 10:30) *
эти исправления не помогают избавиться от телнета - как раз позавчера писал об этом, а что эти правки делают?
Какой телнет? Зачем от него избавляться? Эти правки делают следующее: в hla_interface - если в скрипте не указано подключение линии сброса, то по документации предполагается, что ее нет. В коде это должно выглядеть как будто она в неактивном состоянии. В реальности же переменные остаются со значениями "не инициализаровано", OpenOCD считает, что reset не отпущен и не выполняет опрос состояния отлаживаемого процессора. Не вызывается функция poll() и он не может сообщить gdb что процессор работает. А когда дается команда halt - он без этого опроса не может узнать, что ядро остановилось и что об этом надо сообщить GDB. В hla_target при чтении состояния игнооиоуется переход ядра в любое состояние кроме HALT. Этот патч я вчера отослал и его в целом одобрили. Мне осталось разобраться, как теперь послать доработанный вариант.
сарматъ
телнет чтобы подсоединиться еклипсом на лету к работающей плате, без него получается криво

когда к openocd подключаешься телнетом и говоришь halt то потом еклипс нормально подключается, сразу видно где остановилась прошивка

если без телнета то еклипс как то недоподключается, там по кнопочкам с желтыми стрелочками (вход в процедуру выход из процедуры шаг через процедуру) надо понажимать в каком то непонятном для меня порядке, чтобы дебаггер эклипсовский засинхронизировался с платой, либо в опциях запуска run command на вкладке стартап железной отладки поставить monitor halt, но тогда при подключении openocd ругается что какая то ошибка отладчика то ли 6 то ли 9 и требуется ресет undefined debug reason 6 - target needs reset


лыжи не едут((
пишет ошибку Error within Debug UI: java.lang.reflect.InvocationTargetException
при выборе стандартного ланчера((

магия... нашел в инете рекомендацию по излечиванию этой ошибки удалитьпрект из воркспейса и заново добавить сделал, ошибка не исчезла но зато при DSF хардваре дебаг ланчер стало цепляться более корректнонет ничего не изменилось это я monitor halt не убрал
winipuh
Добрый вечер!
Решил попробовать Eclipse Juno + MinGW (Windows 7).
Можно ли в эклипсе настроить, чтобы при запуске программы ввод/вывод осуществлялся через системную консоль винды, а не через встроенную в эклипсе?
А то как оказалось нужен вот такой "костыль":
Код
    setvbuf(stdout, NULL, _IONBF, 0);
    setvbuf(stderr, NULL, _IONBF, 0);

Да и вообще как-то привычнее, чтобы при запуске появлялось черное окошко cmd.exe. Плюс с кодировкой проблемы - при использовании system("pause") абракадабра выводится sad.gif

Плюс появилась еще пара мелких вопросов:
1) Хочу, чтобы в окошке текстового редактора когда щелкаю мышкой на номере строки выделялась вся строка. Как это настроить?
2) Как сгруппировать значки fast view (Outline, Call Hierarchy, Tasks и т.п.)?
3) Настроил, чтобы запуске Build автоматически открывалось окошко build console. Как настроить, что окошко не закрывалось сразу же после завершения билда? А то прочитать не успеваю. sm.gif

И самое главное - а вы каким эклипсом пользуетесь? Мне нужен в связке с codesourcery для embedd-а и в связке с MinGW для простеньких консольных приложений. Есть ли смысл переходить на Juno, Kepler?
сарматъ
под линуксом кеплер работает прямее предыдущих версий на мой взгляд
AHTOXA
Использую Indigo. Всем устраивает, поэтому лень переползать на следующие версии.

Цитата(winipuh @ Oct 5 2013, 23:37) *
Можно ли в эклипсе настроить, чтобы при запуске программы ввод/вывод осуществлялся через системную консоль винды, а не через встроенную в эклипсе?

Снять птичку "Connect process input & output to a terminal" в меню "Run - Run configurations".
Цитата(winipuh @ Oct 5 2013, 23:37) *
2) Как сгруппировать значки fast view (Outline, Call Hierarchy, Tasks и т.п.)?

Мышой таскать, кидать на середину окошка, с которым нужно сгруппировать.
Цитата(winipuh @ Oct 5 2013, 23:37) *
3) Настроил, чтобы запуске Build автоматически открывалось окошко build console. Как настроить, что окошко не закрывалось сразу же после завершения билда? А то прочитать не успеваю. sm.gif

Показать его вручную (Window - Show view - Console), затем мышой запарковать куда удобно.
_Pasha
Цитата(сарматъ @ Oct 5 2013, 23:16) *
под линуксом кеплер работает прямее предыдущих версий на мой взгляд

Если не лень, поподробнее, плз.
--
Тоже на индиго, кеплер ради интереса запускал, но для полноценной работы надо накатывать плагины. В общем, чего-то революционного поверхностным взглядом не увидел и решил не дёргаться.
сарматъ
во первых у меня только кеплер заработал с gcc-arm-none-eabi-4_7-2013q2

во вторых в предыдущих версиях время от времени ломалась отладка - приходилось перезапускать еклипс, кеплер перезапускать не приходится

ну а так лучший враг хорошего если все устраивает то наверное менять ничего нет необходимости
IgorKossak
Насчёт кеплера подтверждаю, работает стабильнее и с embedded и с MinGW, и под Ubuntu Linux (12.4, 13.4) и под WinXP.
Насчёт "революционности" - все новости по отношению к Juno здесь.
winipuh
Цитата(AHTOXA @ Oct 6 2013, 12:19) *
Мышой таскать, кидать на середину окошка, с которым нужно сгруппировать.

В индиго можно перетаскивать, в джуне и кеплере — нет sad.gif
Интересно, что именно является багом - возможность перетаскивания или невозможность? sm.gif

Цитата(AHTOXA @ Oct 6 2013, 12:19) *
Снять птичку "Connect process input & output to a terminal" в меню "Run - Run configurations".

Узнать бы как эту птичку снять. Она неактивная (серого цвета)... Как решить ребус — пока так не нагуглил...
Мне очень нравится индексатор в эклипсе, но из-за этой с консолью шняги пока приходится кое-какие вещи дебажить в visual studio...
Так шо как грица "ай нид хелп"!

Цитата(AHTOXA @ Oct 6 2013, 12:19) *
Показать его вручную (Window - Show view - Console), затем мышой запарковать куда удобно.

Нет, я вот о чем спрашивал:
Эклипс-Европа - Запускаю билд. Вылазит окошко с логом. Билд проходит - окошко остается. Дочитал, кликнул мышкой в редакторе - окошко свернулось.
Эклипс-Кеплер - аналогично.
Эклипс-Джуно - Билд проходит и окошко тут же само сворачивается. Прочитать не успел... Снова щелкаем мышкой - открываем, читаем...

Как эта штука управляется/настраивается - я так и непонял...


Кстати еще вопрос.
В старом эклипсе европа когда наводишь мышку на дефайн - всплывает окошко с его описанием.
Например
Код
#define BLOCK_SIZE                        32
#define NUM_BLOCKS                       4
#define BUF_SIZE          BLOCK_SIZE * NUM_BLOCKS

Если навести на BUF_SIZE, то в всплывающем окошке будет #define BUF_SIZE BLOCK_SIZE * NUM_BLOCKS
Пробовал на других версиях эклипса - в окошке выводится то, что в итоге получится - #define BUF_SIZE 128.
Мне удобнее, чтобы выводилось как в первом варианте. Как это настроить?
AHTOXA
Цитата(winipuh @ Oct 16 2013, 04:14) *
В индиго можно перетаскивать, в джуне и кеплере — нет sad.gif
Интересно, что именно является багом - возможность перетаскивания или невозможность? sm.gif

ИМХО, перетаскивание и докинг тулбаров мышой - это фактически стандарт для IDE. Вероятно, где-то есть птичка, запрещающая перетаскивание.
По остальным вопросам мне нечего сказать, у меня индига.
Игорь_Ван
Здравствуйте. Возникла проблема с Eclipse kepler + Sourcery_CodeBench_Lite_for_ARM_GNU_Linux. При попытке создания любого проекта вылезает ошибка Program "arm-none-linux-gnueabi-gcc" not found in PATH [Discovery Options] page in project properties C/C++ Problem. Но в терминале $PATH выдаёт

/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/zavod/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/bin:/home/zavod/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/bin/cache,

то есть в переменной PATH всё на месте, и в этих папках arm-none-linux-gnueabi-gcc есть. Хотел зайти в Discovery Options, но такой страницы в свойствах проекта нет. При компиляции из консоли программа создаётся и работает нормально. К тому же не создаётся папка Includes, которая на другом компе для Sourcery CodeBench Lite Edition for ARM EABI всегда появлялась. ОС убунту 12.04.
_Pasha
Плагин для ARM стоит?
Сергей Борщ
QUOTE (Игорь_Ван @ Oct 31 2013, 15:18) *
Хотел зайти в Discovery Options, но такой страницы в свойствах проекта нет. При компиляции из консоли программа создаётся и работает нормально.
Посмотрите тут и сообщение №11 из ветки по ссылке.
Игорь_Ван
Плагин для ARM стоит, Discovery Options нашел, в Compiler invocation command прописан arm-none-linux-gnueabi-gcc, если там выбрать прямой путь до этого файла в тулчейне, то ошибка Program "arm-none-linux-gnueabi-gcc" not found in PATH, но выдаёт
make: *** [oo.o] Ошибка 127. Почему эклипс не может найти нужные файлы в PATH, если они там есть и из консоли всё нормально собирается? И откуда эта ошибка make?
mdmitry
Цитата(Игорь_Ван @ Nov 1 2013, 15:19) *
Плагин для ARM стоит, Discovery Options нашел, в Compiler invocation command прописан arm-none-linux-gnueabi-gcc, если там выбрать прямой путь до этого файла в тулчейне, то ошибка Program "arm-none-linux-gnueabi-gcc" not found in PATH, но выдаёт
make: *** [oo.o] Ошибка 127. Почему эклипс не может найти нужные файлы в PATH, если они там есть и из консоли всё нормально собирается? И откуда эта ошибка make?

Приведите, пожалуйста, полный текст сообщения об ошибке, появляющийся в консоле Eclipse, а не в окне Problems
Игорь_Ван
В обоих случаях выдаёт ошибку

15:31:53 **** Incremental Build of configuration Debug for project jk87 ****
make all
Building file: ../oo.c
/bin/sh: arm-none-linux-gnueabi-gcc: команда не найдена
Invoking: ARM Linux GCC C Compiler (Sourcery Lite Linux)
arm-none-linux-gnueabi-gcc -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="oo.o.lst" -c -fmessage-length=0 -MMD -MP -MF"oo.d" -MT"oo.d" -mcpu=arm926ej-s -mthumb -g3 -o "oo.o" "../oo.c"
make: *** [oo.o] Ошибка 127
15:31:53 Build Finished (took 183ms)

mdmitry
Цитата(Игорь_Ван @ Nov 1 2013, 15:33) *
В обоих случаях выдаёт ошибку

15:31:53 **** Incremental Build of configuration Debug for project jk87 ****
make all
Building file: ../oo.c
/bin/sh: arm-none-linux-gnueabi-gcc: команда не найдена
Invoking: ARM Linux GCC C Compiler (Sourcery Lite Linux)
arm-none-linux-gnueabi-gcc -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="oo.o.lst" -c -fmessage-length=0 -MMD -MP -MF"oo.d" -MT"oo.d" -mcpu=arm926ej-s -mthumb -g3 -o "oo.o" "../oo.c"
make: *** [oo.o] Ошибка 127
15:31:53 Build Finished (took 183ms)

Под какой ОС Вы работаете?
Для debian необходимо dash (по умолчанию) сменить на bash.
Когда Вы собираете из консоли, у Вас дополнительно никакие переменные окружения не устанавливаются?
Игорь_Ван
Ось убунту 12.04.
ls -la /bin/sh
lrwxrwxrwx 1 root root 9 нояб. 1 15:48 /bin/sh -> /bin/bash так что bash установлен.

В командной оболочке собираю так:
$ arm-none-linux-gnueabi-gcc -static main.c
$ls -l a.out
-rwxrwxr-x 1 zavod zavod 653950 нояб. 1 15:51 a.out
$ file a.out
a.out: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, for GNU/Linux 2.6.16, not stripped
mdmitry
Цитата(Игорь_Ван @ Nov 1 2013, 15:52) *
В командной оболочке собираю так:
$ arm-none-linux-gnueabi-gcc -static main.c
$ls -l a.out
-rwxrwxr-x 1 zavod zavod 653950 нояб. 1 15:51 a.out
$ file a.out
a.out: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, for GNU/Linux 2.6.16, not stripped

А где вызов make? Попробуйте собирать проект с помощью make в консоле. И хорошо бы сам Makefile показать.
Игорь_Ван
Так makefile же создаётся автоматически?

CODE
#######################################################################
#########
# Automatically-generated file. Do not edit!
################################################################################

-include ../makefile.init

RM := rm -rf

# All of the sources participating in the build are defined here
-include sources.mk
-include subdir.mk
-include objects.mk

ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
-include $(C_DEPS)
endif
ifneq ($(strip $(ASM_DEPS)),)
-include $(ASM_DEPS)
endif
ifneq ($(strip $(S_UPPER_DEPS)),)
-include $(S_UPPER_DEPS)
endif
endif

-include ../makefile.defs

# Add inputs and outputs from these tool invocations to the build variables
SECONDARY_FLASH += \
jk87.hex \

SECONDARY_LIST += \
jk87.lst \

SECONDARY_SIZE += \
jk87.siz \


# All Target
all: jk87.elf secondary-outputs

# Tool invocations
jk87.elf: $(OBJS) $(USER_OBJS)
@echo 'Building target: $@'
@echo 'Invoking: ARM Linux GCC C Linker (Sourcery Lite Linux)'
arm-none-linux-gnueabi-gcc -Xlinker --gc-sections -Wl,-Map,"jk87.map" -static -mcpu=arm926ej-s -mthumb -g3 -o "jk87.elf" $(OBJS) $(USER_OBJS) $(LIBS)
@echo 'Finished building target: $@'
@echo ' '

jk87.hex: jk87.elf
@echo 'Invoking: ARM Linux GNU Create Flash Image (Sourcery Lite Linux)'
arm-none-linux-gnueabi-objcopy -O ihex "jk87.elf" "jk87.hex"
@echo 'Finished building: $@'
@echo ' '

jk87.lst: jk87.elf
@echo 'Invoking: ARM Linux GNU Create Listing (Sourcery Lite Linux)'
arm-none-linux-gnueabi-objdump -h -S "jk87.elf" > "jk87.lst"
@echo 'Finished building: $@'
@echo ' '

jk87.siz: jk87.elf
@echo 'Invoking: ARM Linux GNU Print Size (Sourcery Lite Linux)'
arm-none-linux-gnueabi-size --format=berkeley "jk87.elf"
@echo 'Finished building: $@'
@echo ' '

# Other Targets
clean:
-$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) jk87.elf
-@echo ' '

secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE)

.PHONY: all clean dependents
.SECONDARY:

-include ../makefile.targets
mdmitry
Цитата(Игорь_Ван @ Nov 1 2013, 16:07) *
Так makefile же создаётся автоматически?

Понятно, я только для нативного компилятора из оболочки настройки делаю.

И кто мешает make all выполнить в консоле?
Игорь_Ван
Действительно, странно, но make all в консоли всё собрал нормально, правда сегодня уже не успею проверить работоспособность на самом контроллере.
CODE
zavod@zavod-System-Product-Name:~/workspace/jk87/Debug$ make all
Building file: ../oo.c
Invoking: ARM Linux GCC C Compiler (Sourcery Lite Linux)
arm-none-linux-gnueabi-gcc -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="oo.o.lst" -c -fmessage-length=0 -MMD -MP
-MF"oo.d" -MT"oo.d" -mcpu=arm926ej-s -mthumb -g3 -o "oo.o" "../oo.c"
Finished building: ../oo.c

Building target: jk87.elf
Invoking: ARM Linux GCC C Linker (Sourcery Lite Linux)
arm-none-linux-gnueabi-gcc -Xlinker --gc-sections -Wl,-Map,"jk87.map" -static -mcpu=arm926ej-s -mthumb -g3 -o "jk87.elf" ./oo.o
Finished building target: jk87.elf

Invoking: ARM Linux GNU Create Flash Image (Sourcery Lite Linux)
arm-none-linux-gnueabi-objcopy -O ihex "jk87.elf" "jk87.hex"
Finished building: jk87.hex

Invoking: ARM Linux GNU Create Listing (Sourcery Lite Linux)
arm-none-linux-gnueabi-objdump -h -S "jk87.elf" > "jk87.lst"
Finished building: jk87.lst

Invoking: ARM Linux GNU Print Size (Sourcery Lite Linux)
arm-none-linux-gnueabi-size --format=berkeley "jk87.elf"
text data bss dec hex filename
498800 3180 5068 507048 7bca8 jk87.elf
Finished building: jk87.siz
sherr
Извиняюсь, если такой вопрос уже был .
Есть разлапистый проект на основе STM32 Periferial Lib - куча папок, структуру которых рушить бы не
хотелось. Как сделать, чтобы под Eclipse все файлы исходников видели нужные им .h файлы,
независимо от их взаимного расположения в папках проекта. Прописывание в .include всех папок
с .h файлами не помогает ...
Сергей Борщ
Если библиотека лежит не в папке проекта, то можно ее корневую папку добавить в структуру проекта как linked folder (File->new->folder->advanced). Если там требуется указать относительный путь, то его надо указывать в виде ${PARENT-2-PROJECT_LOC}/common для папки ../../common

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

Или я неправильно понял фразу "чтобы под Eclipse все файлы исходников видели нужные им .h файлы"? У вас проект не собирается или не работает навигация по исходникам?



==========================================================================
Новый вопрос.

Кеплер, при настройке C/C++ General->Preprocessor include paths, macros etc->Providers->CDT GCC Builtin compiler settings (которое замена Discovery в предыдущих версиях) в каждом проекте создается папка .settings, в которую помещается файл language.settings.xml с настройками этого Provider. Логично было бы включать этот файл в репозиторий системы контроля версий, чтобы не создавать его заново при вытаскивании проекта на новой машине. Но в этом файле есть фрагмент
CODE
env-hash="тут какое-то число"
в котором "какое-то число" на каждой машине прописывается свое при открытии проекта. То есть получается, что если я работаю с одним проектом на двух машинах, то при переходе с машины на машину этот файл меняется и система контроля версий совершенно законно хочет это изменение сохранить в репозитории. Не включать файл в репозиторий тоже плохо - тогда придется при каждом доставании из репозитория настраивать CDT GCC Builtin compiler settings вручную заново. Ладно если в workspace один-два проекта, а если их несколько десятков?

В общем вопрос: кто как с этим борется?

Вообще последние версии вызывают недоумение - сначала в корне workspace появилась неизвестно для чего нужная папка RemoteSystemsTempFiles. Вот кто мешал засунуть ее в .metadata? Теперь эта .settings, при наличии двух файлов .project и .cproject - что мешало дописывать в них?
mdmitry
Цитата(Сергей Борщ @ Nov 5 2013, 11:56) *
Вообще последние версии вызывают недоумение - сначала в корне workspace появилась неизвестно для чего нужная папка RemoteSystemsTempFiles. Вот кто мешал засунуть ее в .metadata? Теперь эта .settings, при наличии двух файлов .project и .cproject - что мешало дописывать в них?

Здесь кое-что на эту тему. Меня пока не приперло с этим разбираться (могу терпеть, в отличие от Discovery).
Сергей Борщ
QUOTE (mdmitry @ Nov 5 2013, 21:04) *
Здесь кое-что на эту тему.
Спасибо, RemoteSystemsTempFiles убрал отключив RSE UI в Window -> Preferences -> General -> Startup and Shutdown

Добавлено: Ан нет, надо еще Window -> Preferences -> Remote systems убрать галочку "Re-open Remote systems view to previous state"
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.