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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> IAR Embedded Workbench и IntelliSense, Есть решение?
Pasha 111
сообщение May 4 2012, 14:09
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 154
Регистрация: 6-11-05
Из: Москва
Пользователь №: 10 515



Всем привет!

Вопрос такой: можно ли к IAR'у прикрутить IntelliSense? Мне по работе 80% времени нужно писать в IAR'е, а 20% - в MS Visual Studio. Так вот после последней переключаться опять на IAR становится очень грустно из-за интерфейса и всех примочек студии.

Хочеться хотя бы иметь что-то вроде этого, с остальным можно смириться:


Есть ли альтернатива IAR'у? Без ущерба для возможностей отладки через JLink?

Топик наверное не совсем в тему, но наболело уже, и гугл мне не помог (наверное не то спрашивал).
Go to the top of the page
 
+Quote Post
KRS
сообщение May 4 2012, 14:16
Сообщение #2


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



для ARM у IAR есть плагин к eclipse здесь есть топик про него.
Go to the top of the page
 
+Quote Post
_Артём_
сообщение May 4 2012, 14:25
Сообщение #3


Гуру
******

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



Цитата(Pasha 111 @ May 4 2012, 17:09) *
Вопрос такой: можно ли к IAR'у прикрутить IntelliSense? Мне по работе 80% времени нужно писать в IAR'е, а 20% - в MS Visual Studio. Так вот после последней переключаться опять на IAR становится очень грустно из-за интерфейса и всех примочек студии.

Может лучше создавать и редактировать проект в VS Studio?
Прописать все пути к IAR вместо путей на VC++.
А отлаживаться в IAR или Keil или Eclipse - в чём удобней.

Вот ещё такая штука есть - ссылка

Go to the top of the page
 
+Quote Post
Pasha 111
сообщение May 4 2012, 14:40
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 154
Регистрация: 6-11-05
Из: Москва
Пользователь №: 10 515



Цитата
для ARM у IAR есть плагин к eclipse здесь есть топик про него.

Сейчас посмотрю, хотя eclipse использовал очень мало, но он всё равно лучше IAR'а выглядит sm.gif

Цитата
Может лучше создавать и редактировать проект в VS Studio?
Прописать все пути к IAR вместо путей на VC++.
А отлаживаться в IAR или Keil или Eclipse - в чём удобней.

Вот ещё такая штука есть - ссылка

Помню я когда-то давно делал тоже самое, когда мне жутко не нравился старый Code Composer от TI, так вот намучился я тогда проект настраивать в студии, может сейчас всё лучше пойдёт sm.gif Попробую сначала этот способ.

Блин, неужели так сложно сделать IAR'овцам нативный IntelliSense? У них же есть, скажем, "Go to Definition", т.е. база данных по проекту всё равно строится, почему никак не могут допилить...
Go to the top of the page
 
+Quote Post
_Артём_
сообщение May 4 2012, 15:05
Сообщение #5


Гуру
******

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



Цитата(Pasha 111 @ May 4 2012, 17:40) *
Помню я когда-то давно делал тоже самое, когда мне жутко не нравился старый Code Composer от TI, так вот намучился я тогда проект настраивать в студии, может сейчас всё лучше пойдёт sm.gif Попробую сначала этот способ.

Тот ещё гемор - но результат того стоит.
Но Eclipse проще настроить.


Цитата(Pasha 111 @ May 4 2012, 17:40) *
Блин, неужели так сложно сделать IAR'овцам нативный IntelliSense? У них же есть, скажем, "Go to Definition", т.е. база данных по проекту всё равно строится, почему никак не могут допилить...

Ну, они сделали автоподсказку, лучше бы не делали: пару раз такого подсказывала, что полдня искать приходилось.
Go to the top of the page
 
+Quote Post
_Стас_
сообщение May 4 2012, 15:52
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 18
Регистрация: 21-06-08
Пользователь №: 38 462



А еще есть Slickedit, который прекрасно прикручивается к IAR. С MS Visual Studio я думаю тоже можно подружить.
Go to the top of the page
 
+Quote Post
borman11
сообщение May 4 2012, 21:16
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 16-03-06
Из: Москва
Пользователь №: 15 298



Я пишу код в Эклипсе, а отлаживаю в IAR. Плагин для эклипса есть, поддерживающий 6-ю версию IAR'а.
Пробовал отладку в самом Эклипсе - вроде работает, но как-то не легла душа. Да и конфигурировать проект в IAR'е удобнее.
Go to the top of the page
 
+Quote Post
Pasha 111
сообщение May 5 2012, 10:43
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 154
Регистрация: 6-11-05
Из: Москва
Пользователь №: 10 515



Вчера поставил с дуру Eclipse 64-битный, поставил на него плагин от IAR'а (eclipse-arm-6.21-latest.zip, у меня IAR версии 6.21.1). В окнах создания и импорта проекта появились соответствующие строки, но при их выборе возникала какая-то ошибка в java-исходниках.

Потом решил поставить 32-хразрядный эклипс, снёс старый поставил вот этот вот: eclipse-cpp-indigo-SR2-incubation-win32.zip. Потом поставил тот же плагин от IAR'а. И ничего. В списке установленных в эклипсе он числиться, а вот никаких упоминаний о нём в среде больше нет, ни в создании нового проекта, ни в импорте существующего. Пробовал сносить и ставить эклипс несколько раз. Весь день промучился, а толку 0. sad.gif Да и вообще мне эклипс с его странным workspac'ом как-то не очень понятен.

Нашёл тут свою старую ветку от сентября 2006 года:
Замена IAR'а, какие есть среды разработки с более приятным интерфейсом
столько времени прошло уже, а воз и ныне там.

У меня стоит MS Visual C++ Express 2010, попробую прикрутить к нему проект тогда, а отлаживаться в IAR'е, с эклипсом, видимо, не получится у меня (прочитал соседнюю ветку про плагин к нему - решение своей проблемы не нашёл).

Ставить External Editor в IAR на тот же Notepad++ как-то грустно, ибо в последнем всё равно нет IntelliSense (или всё-таки есть с помощью плагина?)

Если подытожить, то вариантов, как я понял, 4:
1) перейти с IAR'а на что-то другое (хорошая IDE + компилятор);
2) прикрутить всё-таки плагин от IAR'а к Eclipse;
3) прикрутить внешний редактор к IAR'у;
4) прикрутить компилятор IAR к другой IDE.

Может у кого был спешный опыт с пунктом 3?
Go to the top of the page
 
+Quote Post
borman11
сообщение May 5 2012, 12:59
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 16-03-06
Из: Москва
Пользователь №: 15 298



У меня Eclipse сборка Helios. eclipse-arm-6.30-latest ставится "одним кликом". Ничего допиливать не надо.
Go to the top of the page
 
+Quote Post
Pasha 111
сообщение May 6 2012, 12:20
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 154
Регистрация: 6-11-05
Из: Москва
Пользователь №: 10 515



borman11, я тоже думал, что не придётся sm.gif

Помучился, но разобрался и сделал проект в MS Visual C++ Express (makefile project), прописал все пути до IarBuild.

Всё компилируется, IntelliSense работает, лог построения в окне вывода отчёта появляется, при кликах на ошибках и предупреждениях на файлы исходного кода на нужные строки переходит. Пока доволен. Было бы неплохо ещё, чтобы ошибки сразу в Error List студии добавлялись, а не в Output Window, но и так тоже не плохо. Исправил даже баг с кривым отображением русских букв в логе.

А отлаживаться буду в IAR'е значит, но это всё равно лучше, чем в IAR'овском редакторе писать.
Go to the top of the page
 
+Quote Post
_Артём_
сообщение May 6 2012, 13:24
Сообщение #11


Гуру
******

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



Цитата(Pasha 111 @ May 6 2012, 15:20) *
borman11, я тоже думал, что не придётся sm.gif
Помучился, но разобрался и сделал проект в MS Visual C++ Express (makefile project), прописал все пути до IarBuild.

А что МК-специфичное в Preprocessor Definition прописывали?
Периферия подсказывается?
Go to the top of the page
 
+Quote Post
Pasha 111
сообщение May 6 2012, 14:57
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 154
Регистрация: 6-11-05
Из: Москва
Пользователь №: 10 515



_Артём_
Ничего не прописывал sm.gif Создал "Проект, использующий файл makefile", потом добавил в проект все исходники (можно, кстати, и не все - студия сама-то ничего не компилирует, она только ради редактора и IntelliSense'а нужна). Сам проект и решение не обязательно создавать в тех же папках, где проект и воркспейс от IAR'а, но так удобнее, потому что при настройке проекта в студии можно юзать макросы.

Дальше настройка в разделе "Свойства конфигурации" проекта:
Вкладка "Общие" - без изменений, вкладка "Отладка" - без изменений (собственно отлаживаться из студии и не получится), вкладка "Каталоги C++" - без изменений, но можно заменить на каталоги заголовочных файлов IAR'а (так, наверное, и нужно сделать, чтобы, к примеру, подсказка для printf() всплывала из заголовочных файлов IAR'а).

Все настройки нужно произвести во вкладке "NMake". В группе "IntelliSense":
"Определения препроцессора" - там нужно вставить определённые для каждого файла символы, я туда, как и в IAR'е, пишу "FLASH" и "AT91SAM7X128" (куда помещать код и тип процессора), чтобы при компиляции подхватить нужный .h-ник для процессора;
"Путь поиска включаемых файлов" - тут прописать дополнительные пути для поиска .h-ников, сюда я прописывал те же пути, что и в проекте в IAR';
"Обязательно включаемые файлы" - какие .h-ники обязательно подключать ко всем исходным файлам, у меня ничего нет, но нужно прописать то же, что и в проекте IAR'а.
Дальше в группе "Общие" (пишу настройки в расчёте, то проект студии лежит в той же папке, что и проект IAR):

"Командная строка для построения" =
"[путь до IarBuild.exe]\IarBuild.exe" "$(ProjectDir)имя_вашего_проекта_в_iar.ewp" -make $(Configuration) -log warnings

"Командная строка для перестроения всех файлов" =
"[путь до IarBuild.exe]\IarBuild.exe" "$(ProjectDir)имя_вашего_проекта_в_iar.ewp" -build $(Configuration) -log warnings

"Командная строка для очистки" =
"[путь до IarBuild.exe]\IarBuild.exe" "$(ProjectDir)имя_вашего_проекта_в_iar.ewp" -clean $(Configuration) -log all

Здесь $(Configuration) - макрос студии, который вставляет имя текущей конфигурации. Чтобы не путаться, я сделал новую конфигурацию с таким же именем, как и в проекте IAR'а: "at91sam7x128_flash".

IarBuild.exe - консольная утилита для построения существующего проекта IAR. Обычно лежит где-то здесь:
"c:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\common\bin\IarBuild.exe".

Usage: iarbuild <projectfile> [-clean | -build | -make] <config> [-log errors|warnings|info|all]

Есть одна проблема: IarBuild.exe выводит отчёт о построении в кодировке Win-1251, поэтому в консоли все сообщения об ошибках в файлах, которые в своём имени или пути имеют русские буквы, выводятся иероглифами, потому что консольное окно ожидает от программы вывода в unicode или cp866. Так же ведёт себя студия, поэтому когда кликаешь на строку с ошибкой, студия не показывает файл, а пишет, что "Не удаётся натий файл". Так что я написал небольшой скрипт, который:
1) выводит справку об аргументах командной строки;
2) сохраняет отчёт построения проекта в файле [каталог проекта]\IarBuild.txt (ANSI, Win-1251);
3) выводит в стандартный поток вывода отчёт о построении, преобразованный в кодировку CP-866, для корректного отображения русских букв в IDE.

Прикрепленный файл  IarBuild.zip ( 22.58 килобайт ) Кол-во скачиваний: 164

В файле IarBuild.bat нужно только на 9-й строке заменить путь до IarBuild.exe на ваш.

Тогда в настройках путей в NMake в студии нужно указать всё тоже самое, только вместо "[путь до IarBuild.exe]\IarBuild.exe" писать "[путь до IarBuild.bat]\IarBuild.bat", сам IarBuild.bat можно положить куда угодно.

Периферия подсказывается:
Прикрепленное изображение

правда я уже очень давно вот так напрямую к ней не обращался sm.gif
Go to the top of the page
 
+Quote Post
VslavX
сообщение May 6 2012, 17:55
Сообщение #13


embarrassed systems engineer
*****

Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038



Цитата(Pasha 111 @ May 6 2012, 15:20) *
borman11, я тоже думал, что не придётся sm.gif
Было бы неплохо ещё, чтобы ошибки сразу в Error List студии добавлялись, а не в Output Window, но и так тоже не плохо.

Легко - пропускаете Output компилятора через Perl со скриптом - скрипт конвертирует сообщения об ошибках формата IAR-а в формат студии. Запускать компилятор из студии так:

<путь и имя исполняемого файла компилятора> <параметры компилятора> 2>&1 | <исполняемый файл интерпретатора Perl> <имя файла скрипта>

(угловые скобки, ессно, не пишем - ограничивают имена в примере)
"2>&1" нужно чтобы перенаправить stderr компилятора в stdout, который поступит на вход Perl-а с указанным скриптом.
Скрипт для MSVC2005 и IAR (пробовал от 3.x до 6.41) в приложении (переименуйте .txt в .pl - форум не дает аттачить скрипты с таким расширением)





Прикрепленные файлы
Прикрепленный файл  iar2vc.txt ( 1.07 килобайт ) Кол-во скачиваний: 61
 
Go to the top of the page
 
+Quote Post
Pasha 111
сообщение May 6 2012, 19:09
Сообщение #14


Частый гость
**

Группа: Свой
Сообщений: 154
Регистрация: 6-11-05
Из: Москва
Пользователь №: 10 515



VslavX
Спасибо за скрипт! Никогда не понимал людей, пишущих на перле sm.gif

Цитата
"2>&1" нужно чтобы перенаправить stderr компилятора в stdout, который поступит на вход Perl-а с указанным скриптом.

Если я правильно понял, то делает он не совсем это. IarBuild (только сейчас проверил) вообще ничего в stderr не выводит. А вот если в качестве компилятора для студии прописать какой-нибудь .bat-файл, а в нём написать:

echo aaa.cpp(1) : Error 1 : error text >&2

то тогда в студии добавиться ошибка в Error List (строчка делает echo в stderr). Так что студия добавляет ошибки в Error List только если они пишутся в stderr.

А строка "2>&1 | " копирует в stdout, то, что IarBuild выводит в свой stderr (чисто на всякий случай, как я понял), а потом результат всего вывода (оператор "|" считывает выходные данные одной команды и записывает их на вход другой команды) перенаправляется в перл скрипт (т.е. и выводы stdout и stderr).

Так что реально должно работать и так:

<путь и имя исполняемого файла компилятора> <параметры компилятора> > <исполняемый файл интерпретатора Perl> <имя файла скрипта>

Просто в этом случае не будут видны возможные сообщения об ошибках самого компилятора.

У меня нет интерпретатора перл, и ставить его лень, щас на c# по быстрому парсер напишу и выведу в stderr ошибки sm.gif
Go to the top of the page
 
+Quote Post
VslavX
сообщение May 6 2012, 19:58
Сообщение #15


embarrassed systems engineer
*****

Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038



Цитата(Pasha 111 @ May 6 2012, 22:09) *
VslavX
Спасибо за скрипт! Никогда не понимал людей, пишущих на перле sm.gif

Берется книжка типа "Перл за 24 часа" и такой скрипт пишется за 10 минут sm.gif. Очень уж мощная штука Perl для обработки всяких текстов.

Цитата(Pasha 111 @ May 6 2012, 22:09) *
Если я правильно понял, то делает он не совсем это. IarBuild (только сейчас проверил) вообще ничего в stderr не выводит. А вот

IarBuild может быть и не выводит, а компилятор который он запускает - вроде бы ругается исключительно в stderr. По крайней мере версии 4.x точно так делали, а в stdout был молчок - никаких ошибок. То же самое касается GCC - ругается об ошибках исключительно в stderr. Поэтому без перенаправления - ошибки фильтрующим скриптом не хаваются.

Цитата(Pasha 111 @ May 6 2012, 22:09) *
если в качестве компилятора для студии прописать какой-нибудь .bat-файл, а в нём написать:

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

Цитата(Pasha 111 @ May 6 2012, 22:09) *
то тогда в студии добавиться ошибка в Error List (строчка делает echo в stderr). Так что студия добавляет ошибки в Error List только если они пишутся в stderr.

А строка "2>&1 | " копирует в stdout, то, что IarBuild выводит в свой stderr (чисто на всякий случай, как я понял), а потом результат всего вывода (оператор "|" считывает выходные данные одной команды и записывает их на вход другой команды) перенаправляется в перл скрипт (т.е. и выводы stdout и stderr).

Хм, странно, вроде бы мой скрипт выводит именно в stdout, а не в stderr. Может быть в Студии-2010 что-то поменяли.

Цитата(Pasha 111 @ May 6 2012, 22:09) *
У меня нет интерпретатора перл, и ставить его лень, щас на c# по быстрому парсер напишу и выведу в stderr ошибки sm.gif

Ну идею Вы поняли. Кстати, впервые такой фильтр-конвертор сообщений об ошибках еще в BC3.1 был прикручен - там были примеры проектов для таких фильтров и как их вкрутить в среду.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 8th July 2025 - 02:37
Рейтинг@Mail.ru


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