Замена IAR EWB на Eclipse IDE |
![]() |
Добавил(а) microsin |
Вы используете 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]. На этой страничке Вы найдете ссылку http://eclipse-update.iar.com/ с инструкциями по установке. [Что нового (161020)] 2016-08-08: теперь поддерживается Eclipse Neon. 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. Старые новости: http://eclipse-update.iar.com/oldnews.html [Системные требования] • Eclipse. Загрузите Eclipse (http://www.eclipse.org/downloads/). Рекомендуется использовать самую последнюю доступную версию Eclipse (Neon). Для дополнительной информации про IAR Embedded Workbench for Eclipse посетите сайт iar.com [4]. Примечание: на момент тестирования на сайте были доступны плагины для версий 6.50/6.60.x IAR Embedded Workbench. Они без проблем работают и с версией IAR EWB 6.7. [Инсталляция] Вам потребуется: 1. Установленная среда Eclipse (автор использовал Eclipse Kepler). Примечание: для большинства архитектур 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). Опции подобны (или такие же) опциям в 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. |