|
IAR Embedded Workbench и IntelliSense, Есть решение? |
|
|
|
May 4 2012, 14:09
|

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

|
Всем привет! Вопрос такой: можно ли к IAR'у прикрутить IntelliSense? Мне по работе 80% времени нужно писать в IAR'е, а 20% - в MS Visual Studio. Так вот после последней переключаться опять на IAR становится очень грустно из-за интерфейса и всех примочек студии. Хочеться хотя бы иметь что-то вроде этого, с остальным можно смириться:  Есть ли альтернатива IAR'у? Без ущерба для возможностей отладки через JLink? Топик наверное не совсем в тему, но наболело уже, и гугл мне не помог (наверное не то спрашивал).
|
|
|
|
|
May 4 2012, 14:25
|
Гуру
     
Группа: Свой
Сообщений: 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 - в чём удобней. Вот ещё такая штука есть - ссылка
|
|
|
|
|
May 4 2012, 14:40
|

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

|
Цитата для ARM у IAR есть плагин к eclipse здесь есть топик про него. Сейчас посмотрю, хотя eclipse использовал очень мало, но он всё равно лучше IAR'а выглядит  Цитата Может лучше создавать и редактировать проект в VS Studio? Прописать все пути к IAR вместо путей на VC++. А отлаживаться в IAR или Keil или Eclipse - в чём удобней.
Вот ещё такая штука есть - ссылка Помню я когда-то давно делал тоже самое, когда мне жутко не нравился старый Code Composer от TI, так вот намучился я тогда проект настраивать в студии, может сейчас всё лучше пойдёт  Попробую сначала этот способ. Блин, неужели так сложно сделать IAR'овцам нативный IntelliSense? У них же есть, скажем, "Go to Definition", т.е. база данных по проекту всё равно строится, почему никак не могут допилить...
|
|
|
|
|
May 4 2012, 15:05
|
Гуру
     
Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322

|
Цитата(Pasha 111 @ May 4 2012, 17:40)  Помню я когда-то давно делал тоже самое, когда мне жутко не нравился старый Code Composer от TI, так вот намучился я тогда проект настраивать в студии, может сейчас всё лучше пойдёт  Попробую сначала этот способ. Тот ещё гемор - но результат того стоит. Но Eclipse проще настроить. Цитата(Pasha 111 @ May 4 2012, 17:40)  Блин, неужели так сложно сделать IAR'овцам нативный IntelliSense? У них же есть, скажем, "Go to Definition", т.е. база данных по проекту всё равно строится, почему никак не могут допилить... Ну, они сделали автоподсказку, лучше бы не делали: пару раз такого подсказывала, что полдня искать приходилось.
|
|
|
|
|
May 4 2012, 15:52
|
Участник

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

|
А еще есть Slickedit, который прекрасно прикручивается к IAR. С MS Visual Studio я думаю тоже можно подружить.
|
|
|
|
|
May 4 2012, 21:16
|
Участник

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

|
Я пишу код в Эклипсе, а отлаживаю в IAR. Плагин для эклипса есть, поддерживающий 6-ю версию IAR'а. Пробовал отладку в самом Эклипсе - вроде работает, но как-то не легла душа. Да и конфигурировать проект в IAR'е удобнее.
|
|
|
|
|
May 5 2012, 10:43
|

Частый гость
 
Группа: Свой
Сообщений: 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.  Да и вообще мне эклипс с его странным 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?
|
|
|
|
|
May 5 2012, 12:59
|
Участник

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

|
У меня Eclipse сборка Helios. eclipse-arm-6.30-latest ставится "одним кликом". Ничего допиливать не надо.
|
|
|
|
|
May 6 2012, 12:20
|

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

|
borman11, я тоже думал, что не придётся  Помучился, но разобрался и сделал проект в MS Visual C++ Express (makefile project), прописал все пути до IarBuild. Всё компилируется, IntelliSense работает, лог построения в окне вывода отчёта появляется, при кликах на ошибках и предупреждениях на файлы исходного кода на нужные строки переходит. Пока доволен. Было бы неплохо ещё, чтобы ошибки сразу в Error List студии добавлялись, а не в Output Window, но и так тоже не плохо. Исправил даже баг с кривым отображением русских букв в логе. А отлаживаться буду в IAR'е значит, но это всё равно лучше, чем в IAR'овском редакторе писать.
|
|
|
|
|
May 6 2012, 14:57
|

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

|
_Артём_Ничего не прописывал  Создал "Проект, использующий файл 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 можно положить куда угодно. Периферия подсказывается:
правда я уже очень давно вот так напрямую к ней не обращался
|
|
|
|
|
May 6 2012, 17:55
|

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

|
Цитата(Pasha 111 @ May 6 2012, 15:20)  borman11, я тоже думал, что не придётся  Было бы неплохо ещё, чтобы ошибки сразу в 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
|
|
|
|
|
May 6 2012, 19:09
|

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

|
VslavXСпасибо за скрипт! Никогда не понимал людей, пишущих на перле  Цитата "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 ошибки
|
|
|
|
|
May 6 2012, 19:58
|

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

|
Цитата(Pasha 111 @ May 6 2012, 22:09)  VslavXСпасибо за скрипт! Никогда не понимал людей, пишущих на перле  Берется книжка типа "Перл за 24 часа" и такой скрипт пишется за 10 минут  . Очень уж мощная штука 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 ошибки  Ну идею Вы поняли. Кстати, впервые такой фильтр-конвертор сообщений об ошибках еще в BC3.1 был прикручен - там были примеры проектов для таких фильтров и как их вкрутить в среду.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|