Вы используете IAR, и ревниво завидуете тем, кто решает те же самые задачи в Eclipse? Вам жаль потерять инструментарий сборки из IAR, но хотели бы использовать возможности Eclipse? Тогда эта статья для Вас (перевод [1]).
Не хочу начать тут религиозную войну IDE... По крайней мере для IAR есть способ соединить вместе две вселенные: сборка на основе компилятора IAR, и инструментарий отладки, встроенный в Eclipse.
[Использовать Eclipse, или нет?]
Ни для кого не секрет, что в мире найдется немало поклонников программирования в среде Eclipse. Несомненно, для Eclipse есть альтернативы, и Eclipse не удовлетворяет абсолютно всем потребностям программирования. Но скорее всего будущее все-таки за Eclipse, и как минимум это очень хорошая альтернатива IDE. Особенно для программирования ARM многие поставщики тулчейнов берут как базу Eclipse IDE (как пример можно привести ThunderBench Development Tools for ARM Cortex). И да, не все производители спешат запрыгнуть на уходящий в светлое будущее поезд Eclipse. Наверное, в мире ARM есть еще больших игрока, не связанных с Eclipse, это Keil и IAR: они используют свою собственную проприетарную технологию IDE. Не уверен, как долго они смогут поддерживать свой высокий темп развития, учитывая прогресс среды разработки Eclipse и рост её популярности.
[Как быть с тулчейнами?]
Автор использует инструментарии Eclipse во многих своих проектах. Для микроконтроллеров Freescale это чаще всего Eclipse Kepler или CodeWarrior (последняя IDE предоставляется компанией Freescale, и она также основана на Eclipse). Для не-Freescale устройств ARM автор начал использовать основанную на Eclipse среду программирования ThunderBench от Emprog. Для других устройств ARM также используются бесплатные версии IAR (Embedded Workbench) и Keil (µVision). Как Вы можете видеть, получается целый зоопарк разных тулчейнов. Очевидны достоинства не-Eclipse IDE (меньше опций, они проще и привычнее), однако стоит рассмотреть расширенные возможности Eclipse и "научиться" другим пользовательским интерфейсам.
[Processor Expert для Eclipse]
Для устройств Freescale автор иногда использует Processor Expert. Это хорошая вещь, работающая с Keil и IAR (см. [2, 3]), но требует снова другой среды IDE (Processor Expert Driver Suite). Так что это требует запуска двух разных IDE и переключения между ними: работать можно, но это не идеально. Так что в конфигурации с Eclipse, которая работает как оболочка и интерфейс с пользователем (Front-End), среды программирования IAR или Keil будут использоваться как низкоуровневая поддержка (back end) - чтобы компилировать и загружать модули исходного кода.
[Компилятор]
Что в Keil и IAR сделано по-настоящему хорошо - компиляторы. Это именно то, чем они выделяются, и на чем сфокусированы разработчики: очень быстрая компиляция, генерация скоростного и плотного кода. GNU gcc не самый лучший компилятор в мире. Если сравнивать на практике, IAR может обычно на 10% улучшить код в сравнении с ARM GNU. Иногда 10% могут означать многое, когда нужно втиснуть приложение в ограниченную память микроконтроллера.
Примечание: следующее поколение Open Source LLVM/clang может поменять это лидерство, однако это тема для следующей статьи. В исследовательском проекте автора LLVM/clang давал выдающиеся результаты оптимизации. Возможно, что этот компилятор пока не готов выйти на широкий рынок, но компании Apple и Google делают в него большие инвестиции. Возможно недалеко то время, когда LLVM/clang преобразит индустрию компиляторов.
Очень важно уделять внимание повышению производительности труда разработчика. Функциональные возможности Eclipse и её плагины позволяют быть более продуктивными, это выдающиеся возможности редактора в сочетании с внешними инструментами (например система управления версиями). И конечно, есть большое комьюнити, которое может помочь в решении проблем.
Главный вопрос, который требует ответа: как подружить компилятор IAR со средой Eclipse IDE?
[IAR Eclipse Plugin]
Скорее всего, IAR задавали часто этот вопрос, и как следствие появился плагин IAR для Eclipse [4].
2016-06-20: выпущен релиз IAR Embedded Workbench for ARM 7.70.x. Для него не требуется обновление плагина.
2015-12-21: теперь доступна поддержка Embedded Workbench for RL78 2.x, Embedded Workbench for V850 4.x и Embedded Workbench for STM8 2.x.
2015-11-03: поддерживается отладчик ST-LINK.
2015-11-03: поддерживается Eclipse Mars.
2015-06-01: Java 6 больше не поддерживается. Плагины IAR Eclipse требуют Java 7 или более свежую версию Java.
2015-03-30: доступна поддержка Embedded Workbench for MSP430 6.20.x.
2015-03-30: доступна поддержка Embedded Workbench for ARM 7.40.x. Это обновление включает поддержку для C-RUN и C-STAT.
2015-03-02: Ветка ARM 6.50.x теперь неактивна. Она сохранена для совместимости, но будет получать исправления только критических ошибок.
2015-02-27: все обновления с сайтов Renesas требуют теперь Eclipse Juno SR2 или более свежую (4.2.1).
2014-12-08: стала доступна поддержка Embedded Workbench for ARM 7.30.x. Это обновление включает поддержку IAR Information Center и I-jet Trace.
2014-09-23: стал доступен IAR Plugin Manager. Это инструмент, который упрощает инсталляцию и конфигурирование плагинов тулчейна IAR. Он может быть установлен на любую версию Eclipse (нужна версия 3.7.2 или более свежая), и он будет автоматически загружать и устанавливать необходимые плагины тулчейна IAR.
2014-09-23: доступна поддержка Embedded Workbench for RH850 1.10.
• Eclipse. Загрузите Eclipse (http://www.eclipse.org/downloads/). Рекомендуется использовать самую последнюю доступную версию Eclipse (Neon). • IAR Embedded Workbench (плагины IAR Eclipse не включают в себя компилятор и отладчик как таковые). • Java Runtime Environment версии 8 ли более свежей. Загрузите Java (http://java.com/).
Для дополнительной информации про IAR Embedded Workbench for Eclipse посетите сайт iar.com [4].
Примечание: на момент тестирования на сайте были доступны плагины для версий 6.50/6.60.x IAR Embedded Workbench. Они без проблем работают и с версией IAR EWB 6.7.
[Инсталляция]
Вам потребуется:
1. Установленная среда Eclipse (автор использовал Eclipse Kepler). 2. Установленная IDE IAR Embedded Workbench (автор использовал IAR v6.7). 3. IAR Eclipse plugins, доступный по ссылке http://eclipse-update.iar.com//.
Примечание: для большинства архитектур IAR поддерживает интеграцию только на уровне сборки проекта. Но для ARM имеется и поддержка отладки.
Как получить ссылку для обновления:
Используется обычный механизм обновления Eclipse (меню Help -> Install New Software) с предоставлением ссылки на сайт обновления (автор настраивал Eclipse для ARM 6.50):
Примечание: инсталляция плагинов IAR не работает из коробки для CodeWarrior for MCU, он жалуется на отсутствие пакета org.apache.commons.cli 1.2.0. Автор впоследствии нашел способ обхода проблемы с Eclipse Kepler.
После перезапуска среды Eclipse она запросит предоставить путь до IAR Embedded Workbench (имеется в виду каталог инсталляции):
[Импортирование существующих проектов IAR]
Это осуществляется через меню File -> Import:
Все, что требуется - только указать файл проекта *.ewp:
По умолчанию система импортирования создает ссылки на файлы проекта. Это позволит оригинальным файлам сохранить свое место расположения.
В процессе импорта может появиться предупреждение, что нельзя конвертировать все опции:
К сожалению, не выводится подсказка, какие опции не были сконвертированы. Однако автор обнаружил, что импортированные проекты компилировались нормально.
Для импортированных проектов IAR имеется дополнительное меню:
Это меню осуществляет сборку всех конфигураций проекта. Но это обычная функция Eclipse, поэтому непонятно - для чего здесь имеется дополнительный пункт меню?
[Создание нового проекта IAR]
Теперь проекты для IAR можно создавать напрямую в Eclipse. Для этого зайдите в меню File -> New -> Project, и выберите проект C или C++:
Затем можно выбрать тип создаваемого проекта:
Переход к следующему диалогу предлагает выбрать цели сборки Release/Debug. Более важен следующий шаг, где выбирается тип микроконтроллера:
Примечание: тип устройства (микропроцессора) можно поменять в любой момент через меню Project -> Select Device.
После клика на кнопке Finish будет создан новый проект.
[Интеграция инструментария сборки IAR]
IAR использует тот же принцип управляемой генерации make-файлов (managed make), что и во многих других инструментах сборки, применяемых вместе с Eclipse. Интегрируются 2 вещи:
1. C-SPY (отладчик): настройки, связанные со сборкой (настройки библиотеки semihosting). 2. Панели Compiler/Assembler/Linker:
Опции подобны (или такие же) опциям в IAR Embedded Workbench. Панели Eclipse будет легче использовать тем, кто уже привык к интерфейсу настроек Eclipse.
Из-за того, что IAR build tools не удовлетворяют формату сообщений компилятора GNU gcc, в набор плагинов IAR входит специальный парсер ошибок (IAR Error parser):
Этот парсер ошибок гарантирует, что вывод в окно консоли сообщений (Console view) будет обработан корректно, и можно будет перейти в соответствующее место просмотра проблем компиляции (Problems view).
[Отладка]
Сборка работает замечательно, но это еще не все. Для настройки отладки откройте меню Debug Configurations, выберите C/C++ Application и используйте иконку new:
Новая созданная конфигурация запуска по умолчанию использует GDB (Grub DeBugger). Нужно поменять это с использованием ссылки Select other:
Здесь следует выбрать настройки, привязанные к конфигурации проекта (они не распространяются глобально на все рабочее пространство workspace), нам нужен вариант отладчика IAR C-SPY:
Нажмите OK, появится панель настроек IAR C-SPY debugger. На закладке Setup можно выбрать либо симулятор (simulator), либо соединение с аппаратным отладчиком JTAG (J-Link):
Примечание: автор не нашел способа использовать другой отладчик (например P&E Multilink). Так что он применял здесь J-Link, и для FRDM-KL25Z использовал Segger OpenSDA firmware.
Выбор соединения с отладчиком покажет дополнительные панели настроек. Для Freescale Kinetis-L нужно проверить, что используется SWD (не JTAG):
После этого можно отлаживать IAR-приложение отладчиком C-SPY в среде разработки Eclipse:
Дополнительно C-SPY предоставляет другие окна просмотра функций (Show View):
[Выводы]
Плагины IAR Eclipse хорошая альтернатива оригинальной среде разработки IAR, потому что объединяет мощность Eclipse IDE с инструментами компиляции и сборки IAR. Эти плагины просты в использовании и хорошо интегрируются в Eclipse. Можно даже использовать отладчик IAR C-SPY внутри Eclipse, однако это требует дополнительных шагов по конфигурированию.
Отладчик IAR предоставляет даже режим симуляции, который может быть полезен в случае отсутствия реальной аппаратуры - когда нужно опробовать какой-то код или протестировать алгоритм, не требующий железа. IAR C-Spy debugger поставляется отлично интегрированным с Eclipse, но аппаратные отладчики ограничены адаптерами Segger и фирменными IAR I-Jet. Скорее всего через GDB вместе с Eclipse можно запустить и другие отладчики (см. в сторону OpenOCD [5]).
[Ссылки]
1. Tutorial: Replacing IAR EW with Eclipse IDE site:mcuoneclipse.com. 2. IAR ARM v6.7 comes with improved Processor Expert Support site:mcuoneclipse.com. 3. Using Keil µVision 4 (ARM-MDK) with Processor Expert Driver Suite site:mcuoneclipse.com. 4. Eclipse integration Complete toolchain plugin for ARM site:iar.com. 5. OpenOCD: руководство пользователя, начало. 6. Разработка для AT91SAM на бесплатном ПО.
IAR c 8-й версии перешел внутри на Eclipse. Теперь он тормозит так же, как Eclipse, и все так же не умеет делать нормальную подсветку синтаксиса. Я перешел на Segger Embedded Studio, летает.
Комментарии
RSS лента комментариев этой записи