|
|
  |
Вопросы по Eclipse, CDT, Zylin embedded CDT, предлагаю обсуждать тут, может потом FAQ выжмем |
|
|
|
May 2 2012, 18:51
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Давайте напишу чуть подробнее, потому что штука весьма полезная. Идём в Project - Properties, находим там C/C++ Build / Discovery options. В Discovery profile выбираем "GCC per project scanner". В появившемся снизу поле "Compiler invocation command" пишем arm-kgp-eabi-gcc (или arm-none-eabi-gcc в случае CodeSourcery). Всё. Давим OK, и у нас в "Project Explore" образуется куча инклюдов. Осталось обновить индекс (ПКМ на имени проекта - Index - Rebuild), и порядок, наш эклипс знает, что такое uint32_t  .
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
May 2 2012, 20:40
|
Гуру
     
Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322

|
AHTOXAСпасибо. Думаю многим эта инфа пригодится: прописывыть всё что Эклипса подхватила - зто ад. Цитата(AHTOXA @ May 2 2012, 21:51)  В Discovery profile выбираем "GCC per project scanner". Кстати возможны варианты.
Пока выбрал "GCC per project scanner". Результат крайне положительный: появились не только типы из stdint, но и функции из core_cm3.h. И по типам из scmRTOS также появилась подсказка. Осталось прописать тип проца? Задать в Symbols STM32F10X_MD. Или он тоже автоматом из makefile прочитается? Ещё вопрос. Как правильно переносить проект с одного компа на другой? Можно ли папку копировать и потом через импорт открывать? Или всё же надо Export в zip, потом Import из zip-а. Версия Eclipse подразумевается такая же.
Сообщение отредактировал IgorKossak - May 3 2012, 07:01
|
|
|
|
|
May 2 2012, 23:19
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
QUOTE (_Артём_ @ May 2 2012, 23:40)  Осталось прописать тип проца? Задать в Symbols STM32F10X_MD. Или он тоже автоматом из makefile прочитается? Нет, настолько она еще не продвинута. В строке Compiler invocation arguments добавить в начало -mmcu=cortex-cm3 -mthumb -DSTM32F10X_MD QUOTE (_Артём_ @ May 3 2012, 00:57)  Нашёл такой вариант: Import-Select archive file. Есть другие варианты? Я просто копирую проект и на новом месте делаю Import->General->Existing projects into workspace.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
May 3 2012, 13:05
|
Гуру
     
Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322

|
Цитата(Сергей Борщ @ May 3 2012, 02:19)  Нет, настолько она еще не продвинута. В строке Compiler invocation arguments добавить в начало -mmcu=cortex-cm3 -mthumb -DSTM32F10X_MD попробую... я задавал в С/С++ General\ Symbols Цитата(Сергей Борщ @ May 3 2012, 02:19)  Я просто копирую проект и на новом месте делаю Import->General->Existing projects into workspace. Делал импорт через Existing code as Makefile project. Попробовал через Existing projects into workspace - результат лучше. Спасибо.
|
|
|
|
|
May 3 2012, 13:14
|
Знающий
   
Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153

|
Цитата(Сергей Борщ @ May 3 2012, 03:19)  Нет, настолько она еще не продвинута. В строке Compiler invocation arguments добавить в начало -mmcu=cortex-cm3 -mthumb -DSTM32F10X_MD Чтобы ключи компиляции импортировались из make, эклипсу в этом окошке надо указать вызывать не не компилятор, а собственно make. Ну и makefile допилить соответственно - добавить цель вроде discover и ключики для нее подходящие. Я такое проделал для Scons-а, теперь у меня все ключи компиляции тянутся из sconstruct-файла. Для make не пробовал, но думаю непреодолимых сложностей не предвидится. Помимо ключей оттуда потянутся и пути к инклюдам - для меня это особенно актуально - у меня их много.
|
|
|
|
|
May 8 2012, 08:45
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
QUOTE (Непомнящий Евгений @ May 3 2012, 16:14)  Чтобы ключи компиляции импортировались из make, эклипсу в этом окошке надо указать вызывать не не компилятор, а собственно make. Ну и makefile допилить соответственно - добавить цель вроде discover и ключики для нее подходящие. QUOTE (AHTOXA @ May 3 2012, 21:27)  Я вчера попробовал - с наскока не получилось. Разобрался. Действительно удобно. Буду переводить все проекты на такую систему. Тоже с наскока не получилось. Проблема была в передачи пути к specs-файлу. Привожу рецепт, возможно пригодится еще кому-то. 1) создаем в makefile цель discovery: CODE #discovery target for Eclipse parser .PHONY: discovery discovery: $(CC) $(INCLUDES) $(CFLAGS) -E -P -v -dD '$(specs_file)' если в CFLAGS есть правило для генерации файлов (.dep или .lst) - его надо вынести из CFLAGS в отдельный, скажем, DEPFLAGS и вставить в нужные места, где оно использовалось. Также полезно отключить чтение зависимостей при выполнении этой цели (занимает много времени на больших проектах): CODE ifeq (,$(findstring clean,$(MAKECMDGOALS))) ifeq (,$(findstring cleanall,$(MAKECMDGOALS))) ifeq (,$(findstring discovery,$(MAKECMDGOALS))) -include $(shell mkdir $(DEPDIR) 2>/dev/null) $(wildcard $(DEPDIR)/*.d) endif endif endif Теперь в Eclipse, в Project->Propertities->C/C++ Build->Discovery Options выбираем: - Discovery profiles scope: 'Configuration-wide'
- Automated discovery of paths and symbols, Discovery profile: 'GCC per project info profile'
- Discovery profile options, ставим галочки:
- 'Enable build output scanner info discovery'
- 'Enable generate scanner info command'
- В строку 'Compiler invocation command' вписываем: make
- В строку 'Compiler invocation arguments' вписываем: specs_file=${plugin_state_location}/${specs_file} discovery
Жмем Automated discovery of paths and symbols -> Clear, OK, запускаем компиляцию проекта. исправлено: заключил в апострофы '$specs_file', поскольку путь может быть с пробелами.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
May 10 2012, 05:12
|
Знающий
   
Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153

|
Цитата(_Артём_ @ May 5 2012, 19:43)  Запоминание буфера обмена на 5-10 элементов. это умеет пунто-свитчер, причем для системного буфера, а не только внутри эклипса Цитата 3) автоподсказчик иногда выбора не предлагает - сразу делает подстановку. Иногда это не нужно. preferences\c/c++\editor\context assist - тут с галками поиграйтесь
|
|
|
|
|
  |
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|