Перейти к содержанию
    

IAR Embedded Workbench и IntelliSense

Всем привет!

 

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

 

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

23bccaa58da9.png

 

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

 

Топик наверное не совсем в тему, но наболело уже, и гугл мне не помог (наверное не то спрашивал).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Может лучше создавать и редактировать проект в VS Studio?

Прописать все пути к IAR вместо путей на VC++.

А отлаживаться в IAR или Keil или Eclipse - в чём удобней.

 

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

Может лучше создавать и редактировать проект в VS Studio?

Прописать все пути к IAR вместо путей на VC++.

А отлаживаться в IAR или Keil или Eclipse - в чём удобней.

 

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

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

 

Блин, неужели так сложно сделать IAR'овцам нативный IntelliSense? У них же есть, скажем, "Go to Definition", т.е. база данных по проекту всё равно строится, почему никак не могут допилить...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Но Eclipse проще настроить.

 

 

Блин, неужели так сложно сделать IAR'овцам нативный IntelliSense? У них же есть, скажем, "Go to Definition", т.е. база данных по проекту всё равно строится, почему никак не могут допилить...

Ну, они сделали автоподсказку, лучше бы не делали: пару раз такого подсказывала, что полдня искать приходилось.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А еще есть Slickedit, который прекрасно прикручивается к IAR. С MS Visual Studio я думаю тоже можно подружить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я пишу код в Эклипсе, а отлаживаю в IAR. Плагин для эклипса есть, поддерживающий 6-ю версию IAR'а.

Пробовал отладку в самом Эклипсе - вроде работает, но как-то не легла душа. Да и конфигурировать проект в IAR'е удобнее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вчера поставил с дуру 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?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня Eclipse сборка Helios. eclipse-arm-6.30-latest ставится "одним кликом". Ничего допиливать не надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

borman11, я тоже думал, что не придётся :)

 

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

 

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

 

А отлаживаться буду в IAR'е значит, но это всё равно лучше, чем в IAR'овском редакторе писать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

borman11, я тоже думал, что не придётся :)

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

А что МК-специфичное в Preprocessor Definition прописывали?

Периферия подсказывается?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

_Артём_

Ничего не прописывал :) Создал "Проект, использующий файл 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 можно положить куда угодно.

 

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

post-10515-1336312088_thumb.png

правда я уже очень давно вот так напрямую к ней не обращался :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Берется книжка типа "Перл за 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 был прикручен - там были примеры проектов для таких фильтров и как их вкрутить в среду.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...