AHTOXA 18 2 мая, 2012 Опубликовано 2 мая, 2012 · Жалоба Давайте напишу чуть подробнее, потому что штука весьма полезная. Идём в 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 :). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Артём__ 0 2 мая, 2012 Опубликовано 2 мая, 2012 (изменено) · Жалоба AHTOXA Спасибо. Думаю многим эта инфа пригодится: прописывыть всё что Эклипса подхватила - зто ад. В Discovery profile выбираем "GCC per project scanner". Кстати возможны варианты. Пока выбрал "GCC per project scanner". Результат крайне положительный: появились не только типы из stdint, но и функции из core_cm3.h. И по типам из scmRTOS также появилась подсказка. Осталось прописать тип проца? Задать в Symbols STM32F10X_MD. Или он тоже автоматом из makefile прочитается? Ещё вопрос. Как правильно переносить проект с одного компа на другой? Можно ли папку копировать и потом через импорт открывать? Или всё же надо Export в zip, потом Import из zip-а. Версия Eclipse подразумевается такая же. Изменено 3 мая, 2012 пользователем IgorKossak Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Артём__ 0 2 мая, 2012 Опубликовано 2 мая, 2012 · Жалоба Ещё вопрос. Как правильно переносить проект с одного компа на другой? Можно ли папку копировать и потом через импорт открывать? Или всё же надо Export в zip, потом Import из zip-а. Версия Eclipse подразумевается такая же. Нашёл такой вариант: Import-Select archive file. Есть другие варианты? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 141 2 мая, 2012 Опубликовано 2 мая, 2012 · Жалоба Осталось прописать тип проца? Задать в Symbols STM32F10X_MD. Или он тоже автоматом из makefile прочитается? Нет, настолько она еще не продвинута. В строке Compiler invocation arguments добавить в начало -mmcu=cortex-cm3 -mthumb -DSTM32F10X_MD Нашёл такой вариант: Import-Select archive file. Есть другие варианты? Я просто копирую проект и на новом месте делаю Import->General->Existing projects into workspace. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Артём__ 0 3 мая, 2012 Опубликовано 3 мая, 2012 · Жалоба Нет, настолько она еще не продвинута. В строке Compiler invocation arguments добавить в начало -mmcu=cortex-cm3 -mthumb -DSTM32F10X_MD попробую... я задавал в С/С++ General\ Symbols Я просто копирую проект и на новом месте делаю Import->General->Existing projects into workspace. Делал импорт через Existing code as Makefile project. Попробовал через Existing projects into workspace - результат лучше. Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Johnny81 0 3 мая, 2012 Опубликовано 3 мая, 2012 · Жалоба Нет, настолько она еще не продвинута. В строке Compiler invocation arguments добавить в начало -mmcu=cortex-cm3 -mthumb -DSTM32F10X_MD Чтобы ключи компиляции импортировались из make, эклипсу в этом окошке надо указать вызывать не не компилятор, а собственно make. Ну и makefile допилить соответственно - добавить цель вроде discover и ключики для нее подходящие. Я такое проделал для Scons-а, теперь у меня все ключи компиляции тянутся из sconstruct-файла. Для make не пробовал, но думаю непреодолимых сложностей не предвидится. Помимо ключей оттуда потянутся и пути к инклюдам - для меня это особенно актуально - у меня их много. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 141 3 мая, 2012 Опубликовано 3 мая, 2012 · Жалоба Чтобы ключи компиляции импортировались из make, эклипсу в этом окошке надо указать вызывать не не компилятор, а собственно make. Ну и makefile допилить соответственно - добавить цель вроде discover и ключики для нее подходящие.Ха, интересная мысль, спасибо. Надо попробовать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 18 3 мая, 2012 Опубликовано 3 мая, 2012 · Жалоба Я вчера попробовал - с наскока не получилось. Причём помню, что раньше вроде делал, а сейчас - не вышло. Глубоко копать не стал, потому что не использую автоматическое обнаружение - от него проекты перестают быть портабельными (обнаруживаются абсолютные пути, а у меня они разные дома и на работе). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 141 3 мая, 2012 Опубликовано 3 мая, 2012 · Жалоба потому что не использую автоматическое обнаружение - от него проекты перестают быть портабельными (обнаруживаются абсолютные пути, а у меня они разные дома и на работе).У меня тоже пути разные, обнаружение использую и проекты перемещаемы. Что я делаю не так? ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 18 4 мая, 2012 Опубликовано 4 мая, 2012 · Жалоба Так я не говорю, что оно не работает. Просто мешается :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Johnny81 0 4 мая, 2012 Опубликовано 4 мая, 2012 · Жалоба Я вчера попробовал - с наскока не получилось. Причём помню, что раньше вроде делал, а сейчас - не вышло. Глубоко копать не стал, потому что не использую автоматическое обнаружение - от него проекты перестают быть портабельными (обнаруживаются абсолютные пути, а у меня они разные дома и на работе). Странно это. В случае, если путь автоопределяются, то эклипс автоматически после каждого билда удаляет старые и добавляет новые. Так что по идее после переноса проекта достаточно сделать ребилд и пути заменятся на новые... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 4 мая, 2012 Опубликовано 4 мая, 2012 · Жалоба ... эклипс автоматически после каждого билда удаляет старые и добавляет новые. Так что по идее после переноса проекта достаточно сделать ребилд и пути заменятся на новые... Автоматически только новые добавляются. Чтобы удалить старые (а точнее - все по умолчанию, т. е. не пользовательские) надо нажать кнопку Clear в окне Discovery Options. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Артём__ 0 5 мая, 2012 Опубликовано 5 мая, 2012 · Жалоба Ещё вопросы. Нет ли каких-нибудь плагинов к Eclipse, увеличавающих ее функциональность? Не хватает следующего: Запоминание буфера обмена на 5-10 элементов. Автоподсказки по акронимам. И еще что хотелось бы поменять: 1) контекстное меню как-нибудь подредактировать - слишком оно перегружено. 2) выделение слов по Ctrl+Shift+стрелка - чтобы выделялось слово сразу целиком, а не почастяи - неудобно. 3) автоподсказчик иногда выбора не предлагает - сразу делает подстановку. Иногда это не нужно. Можно что-нибудь из этого сделать? Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 141 8 мая, 2012 Опубликовано 8 мая, 2012 · Жалоба Чтобы ключи компиляции импортировались из make, эклипсу в этом окошке надо указать вызывать не не компилятор, а собственно make. Ну и makefile допилить соответственно - добавить цель вроде discover и ключики для нее подходящие. Я вчера попробовал - с наскока не получилось. Разобрался. Действительно удобно. Буду переводить все проекты на такую систему. Тоже с наскока не получилось. Проблема была в передачи пути к specs-файлу. Привожу рецепт, возможно пригодится еще кому-то. 1) создаем в makefile цель discovery: #discovery target for Eclipse parser .PHONY: discovery discovery: $(CC) $(INCLUDES) $(CFLAGS) -E -P -v -dD '$(specs_file)' если в CFLAGS есть правило для генерации файлов (.dep или .lst) - его надо вынести из CFLAGS в отдельный, скажем, DEPFLAGS и вставить в нужные места, где оно использовалось. Также полезно отключить чтение зависимостей при выполнении этой цели (занимает много времени на больших проектах): 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', поскольку путь может быть с пробелами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Johnny81 0 10 мая, 2012 Опубликовано 10 мая, 2012 · Жалоба Запоминание буфера обмена на 5-10 элементов. это умеет пунто-свитчер, причем для системного буфера, а не только внутри эклипса 3) автоподсказчик иногда выбора не предлагает - сразу делает подстановку. Иногда это не нужно. preferences\c/c++\editor\context assist - тут с галками поиграйтесь Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться