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

 
 
51 страниц V  « < 34 35 36 37 38 > »   
Reply to this topicStart new topic
> Вопросы по Eclipse, CDT, Zylin embedded CDT, предлагаю обсуждать тут, может потом FAQ выжмем
AHTOXA
сообщение May 2 2012, 18:51
Сообщение #526


фанат дивана
******

Группа: Свой
Сообщений: 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 sm.gif.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
_Артём_
сообщение May 2 2012, 20:40
Сообщение #527


Гуру
******

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post
_Артём_
сообщение May 2 2012, 21:57
Сообщение #528


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(_Артём_ @ May 2 2012, 23:40) *
Ещё вопрос. Как правильно переносить проект с одного компа на другой?
Можно ли папку копировать и потом через импорт открывать?
Или всё же надо Export в zip, потом Import из zip-а. Версия Eclipse подразумевается такая же.

Нашёл такой вариант: Import-Select archive file.
Есть другие варианты?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение May 2 2012, 23:19
Сообщение #529


Гуру
******

Группа: Модераторы
Сообщений: 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)
Go to the top of the page
 
+Quote Post
_Артём_
сообщение May 3 2012, 13:05
Сообщение #530


Гуру
******

Группа: Свой
Сообщений: 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 - результат лучше. Спасибо.
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение May 3 2012, 13:14
Сообщение #531


Знающий
****

Группа: Свой
Сообщений: 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 не пробовал, но думаю непреодолимых сложностей не предвидится.

Помимо ключей оттуда потянутся и пути к инклюдам - для меня это особенно актуально - у меня их много.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение May 3 2012, 17:34
Сообщение #532


Гуру
******

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



QUOTE (Непомнящий Евгений @ May 3 2012, 16:14) *
Чтобы ключи компиляции импортировались из make, эклипсу в этом окошке надо указать вызывать не не компилятор, а собственно make. Ну и makefile допилить соответственно - добавить цель вроде discover и ключики для нее подходящие.
Ха, интересная мысль, спасибо. Надо попробовать.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение May 3 2012, 18:27
Сообщение #533


фанат дивана
******

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



Я вчера попробовал - с наскока не получилось. Причём помню, что раньше вроде делал, а сейчас - не вышло. Глубоко копать не стал, потому что не использую автоматическое обнаружение - от него проекты перестают быть портабельными (обнаруживаются абсолютные пути, а у меня они разные дома и на работе).


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение May 3 2012, 18:46
Сообщение #534


Гуру
******

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



QUOTE (AHTOXA @ May 3 2012, 21:27) *
потому что не использую автоматическое обнаружение - от него проекты перестают быть портабельными (обнаруживаются абсолютные пути, а у меня они разные дома и на работе).
У меня тоже пути разные, обнаружение использую и проекты перемещаемы. Что я делаю не так? wink.gif


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение May 4 2012, 02:59
Сообщение #535


фанат дивана
******

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



Так я не говорю, что оно не работает. Просто мешается sm.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение May 4 2012, 05:21
Сообщение #536


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Цитата(AHTOXA @ May 3 2012, 22:27) *
Я вчера попробовал - с наскока не получилось. Причём помню, что раньше вроде делал, а сейчас - не вышло. Глубоко копать не стал, потому что не использую автоматическое обнаружение - от него проекты перестают быть портабельными (обнаруживаются абсолютные пути, а у меня они разные дома и на работе).


Странно это. В случае, если путь автоопределяются, то эклипс автоматически после каждого билда удаляет старые и добавляет новые. Так что по идее после переноса проекта достаточно сделать ребилд и пути заменятся на новые...
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение May 4 2012, 06:45
Сообщение #537


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(Непомнящий Евгений @ May 4 2012, 08:21) *
... эклипс автоматически после каждого билда удаляет старые и добавляет новые. Так что по идее после переноса проекта достаточно сделать ребилд и пути заменятся на новые...

Автоматически только новые добавляются. Чтобы удалить старые (а точнее - все по умолчанию, т. е. не пользовательские) надо нажать кнопку Clear в окне Discovery Options.
Go to the top of the page
 
+Quote Post
_Артём_
сообщение May 5 2012, 15:43
Сообщение #538


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Ещё вопросы.
Нет ли каких-нибудь плагинов к Eclipse, увеличавающих ее функциональность?
Не хватает следующего:
Запоминание буфера обмена на 5-10 элементов.
Автоподсказки по акронимам.

И еще что хотелось бы поменять:

1) контекстное меню как-нибудь подредактировать - слишком оно перегружено.
2) выделение слов по Ctrl+Shift+стрелка - чтобы выделялось слово сразу целиком, а не почастяи - неудобно.
3) автоподсказчик иногда выбора не предлагает - сразу делает подстановку. Иногда это не нужно.

Можно что-нибудь из этого сделать?
Спасибо.

Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение May 8 2012, 08:45
Сообщение #539


Гуру
******

Группа: Модераторы
Сообщений: 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)
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение May 10 2012, 05:12
Сообщение #540


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Цитата(_Артём_ @ May 5 2012, 19:43) *
Запоминание буфера обмена на 5-10 элементов.

это умеет пунто-свитчер, причем для системного буфера, а не только внутри эклипса

Цитата
3) автоподсказчик иногда выбора не предлагает - сразу делает подстановку. Иногда это не нужно.

preferences\c/c++\editor\context assist - тут с галками поиграйтесь
Go to the top of the page
 
+Quote Post

51 страниц V  « < 34 35 36 37 38 > » 
Reply to this topicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


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


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