Pasha 111 0 4 мая, 2012 Опубликовано 4 мая, 2012 · Жалоба Всем привет! Вопрос такой: можно ли к IAR'у прикрутить IntelliSense? Мне по работе 80% времени нужно писать в IAR'е, а 20% - в MS Visual Studio. Так вот после последней переключаться опять на IAR становится очень грустно из-за интерфейса и всех примочек студии. Хочеться хотя бы иметь что-то вроде этого, с остальным можно смириться: Есть ли альтернатива IAR'у? Без ущерба для возможностей отладки через JLink? Топик наверное не совсем в тему, но наболело уже, и гугл мне не помог (наверное не то спрашивал). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KRS 0 4 мая, 2012 Опубликовано 4 мая, 2012 · Жалоба для ARM у IAR есть плагин к eclipse здесь есть топик про него. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Артём__ 0 4 мая, 2012 Опубликовано 4 мая, 2012 · Жалоба Вопрос такой: можно ли к IAR'у прикрутить IntelliSense? Мне по работе 80% времени нужно писать в IAR'е, а 20% - в MS Visual Studio. Так вот после последней переключаться опять на IAR становится очень грустно из-за интерфейса и всех примочек студии. Может лучше создавать и редактировать проект в VS Studio? Прописать все пути к IAR вместо путей на VC++. А отлаживаться в IAR или Keil или Eclipse - в чём удобней. Вот ещё такая штука есть - ссылка Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Pasha 111 0 4 мая, 2012 Опубликовано 4 мая, 2012 · Жалоба для ARM у IAR есть плагин к eclipse здесь есть топик про него. Сейчас посмотрю, хотя eclipse использовал очень мало, но он всё равно лучше IAR'а выглядит :) Может лучше создавать и редактировать проект в VS Studio? Прописать все пути к IAR вместо путей на VC++. А отлаживаться в IAR или Keil или Eclipse - в чём удобней. Вот ещё такая штука есть - ссылка Помню я когда-то давно делал тоже самое, когда мне жутко не нравился старый Code Composer от TI, так вот намучился я тогда проект настраивать в студии, может сейчас всё лучше пойдёт :) Попробую сначала этот способ. Блин, неужели так сложно сделать IAR'овцам нативный IntelliSense? У них же есть, скажем, "Go to Definition", т.е. база данных по проекту всё равно строится, почему никак не могут допилить... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Артём__ 0 4 мая, 2012 Опубликовано 4 мая, 2012 · Жалоба Помню я когда-то давно делал тоже самое, когда мне жутко не нравился старый Code Composer от TI, так вот намучился я тогда проект настраивать в студии, может сейчас всё лучше пойдёт :) Попробую сначала этот способ. Тот ещё гемор - но результат того стоит. Но Eclipse проще настроить. Блин, неужели так сложно сделать IAR'овцам нативный IntelliSense? У них же есть, скажем, "Go to Definition", т.е. база данных по проекту всё равно строится, почему никак не могут допилить... Ну, они сделали автоподсказку, лучше бы не делали: пару раз такого подсказывала, что полдня искать приходилось. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_стас_ 0 4 мая, 2012 Опубликовано 4 мая, 2012 · Жалоба А еще есть Slickedit, который прекрасно прикручивается к IAR. С MS Visual Studio я думаю тоже можно подружить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
borman11 0 4 мая, 2012 Опубликовано 4 мая, 2012 · Жалоба Я пишу код в Эклипсе, а отлаживаю в IAR. Плагин для эклипса есть, поддерживающий 6-ю версию IAR'а. Пробовал отладку в самом Эклипсе - вроде работает, но как-то не легла душа. Да и конфигурировать проект в IAR'е удобнее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Pasha 111 0 5 мая, 2012 Опубликовано 5 мая, 2012 · Жалоба Вчера поставил с дуру 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? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
borman11 0 5 мая, 2012 Опубликовано 5 мая, 2012 · Жалоба У меня Eclipse сборка Helios. eclipse-arm-6.30-latest ставится "одним кликом". Ничего допиливать не надо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Pasha 111 0 6 мая, 2012 Опубликовано 6 мая, 2012 · Жалоба borman11, я тоже думал, что не придётся :) Помучился, но разобрался и сделал проект в MS Visual C++ Express (makefile project), прописал все пути до IarBuild. Всё компилируется, IntelliSense работает, лог построения в окне вывода отчёта появляется, при кликах на ошибках и предупреждениях на файлы исходного кода на нужные строки переходит. Пока доволен. Было бы неплохо ещё, чтобы ошибки сразу в Error List студии добавлялись, а не в Output Window, но и так тоже не плохо. Исправил даже баг с кривым отображением русских букв в логе. А отлаживаться буду в IAR'е значит, но это всё равно лучше, чем в IAR'овском редакторе писать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Артём__ 0 6 мая, 2012 Опубликовано 6 мая, 2012 · Жалоба borman11, я тоже думал, что не придётся :) Помучился, но разобрался и сделал проект в MS Visual C++ Express (makefile project), прописал все пути до IarBuild. А что МК-специфичное в Preprocessor Definition прописывали? Периферия подсказывается? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Pasha 111 0 6 мая, 2012 Опубликовано 6 мая, 2012 · Жалоба _Артём_ Ничего не прописывал :) Создал "Проект, использующий файл 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 В файле IarBuild.bat нужно только на 9-й строке заменить путь до IarBuild.exe на ваш. Тогда в настройках путей в NMake в студии нужно указать всё тоже самое, только вместо "[путь до IarBuild.exe]\IarBuild.exe" писать "[путь до IarBuild.bat]\IarBuild.bat", сам IarBuild.bat можно положить куда угодно. Периферия подсказывается: правда я уже очень давно вот так напрямую к ней не обращался :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VslavX 0 6 мая, 2012 Опубликовано 6 мая, 2012 · Жалоба 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Pasha 111 0 6 мая, 2012 Опубликовано 6 мая, 2012 · Жалоба 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 ошибки :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VslavX 0 6 мая, 2012 Опубликовано 6 мая, 2012 · Жалоба VslavX Спасибо за скрипт! Никогда не понимал людей, пишущих на перле :) Берется книжка типа "Перл за 24 часа" и такой скрипт пишется за 10 минут :). Очень уж мощная штука Perl для обработки всяких текстов. Если я правильно понял, то делает он не совсем это. IarBuild (только сейчас проверил) вообще ничего в stderr не выводит. А вот IarBuild может быть и не выводит, а компилятор который он запускает - вроде бы ругается исключительно в stderr. По крайней мере версии 4.x точно так делали, а в stdout был молчок - никаких ошибок. То же самое касается GCC - ругается об ошибках исключительно в stderr. Поэтому без перенаправления - ошибки фильтрующим скриптом не хаваются. если в качестве компилятора для студии прописать какой-нибудь .bat-файл, а в нём написать: Я использую сразу gmake - он многопоточную компиляцию поддерживает (ключик -j), на многоядерном процессоре выигрыш значительный - почти кратный числу ядер. то тогда в студии добавиться ошибка в Error List (строчка делает echo в stderr). Так что студия добавляет ошибки в Error List только если они пишутся в stderr. А строка "2>&1 | " копирует в stdout, то, что IarBuild выводит в свой stderr (чисто на всякий случай, как я понял), а потом результат всего вывода (оператор "|" считывает выходные данные одной команды и записывает их на вход другой команды) перенаправляется в перл скрипт (т.е. и выводы stdout и stderr). Хм, странно, вроде бы мой скрипт выводит именно в stdout, а не в stderr. Может быть в Студии-2010 что-то поменяли. У меня нет интерпретатора перл, и ставить его лень, щас на c# по быстрому парсер напишу и выведу в stderr ошибки :) Ну идею Вы поняли. Кстати, впервые такой фильтр-конвертор сообщений об ошибках еще в BC3.1 был прикручен - там были примеры проектов для таких фильтров и как их вкрутить в среду. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться