Программирование ARM Замена IAR EWB на Eclipse IDE Sat, March 25 2017  

Поделиться

нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Замена IAR EWB на Eclipse IDE Печать
Добавил(а) microsin   

Вы используете IAR, и ревниво завидуете тем, кто решает те же самые задачи в Eclipse? Вам жаль потерять инструментарий сборки из IAR, но хотели бы использовать возможности Eclipse? Тогда эта статья для Вас (перевод [1]).

Не хочу начать тут религиозную войну IDE... По крайней мере для IAR есть способ соединить вместе две вселенные: сборка на основе компилятора IAR, и инструментарий отладки, встроенный в Eclipse.

using iar tools in 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].

IAR Eclipse Plugin website

На этой страничке Вы найдете ссылку 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 (плагины 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 имеется и поддержка отладки.

Как получить ссылку для обновления:

IAR Eclipse update site

Используется обычный механизм обновления Eclipse (меню Help -> Install New Software) с предоставлением ссылки на сайт обновления (автор настраивал Eclipse для ARM 6.50):

installing IAR plugins in Eclipse

Примечание: инсталляция плагинов IAR не работает из коробки для CodeWarrior for MCU, он жалуется на отсутствие пакета org.apache.commons.cli 1.2.0. Автор впоследствии нашел способ обхода проблемы с Eclipse Kepler.

После перезапуска среды Eclipse она запросит предоставить путь до IAR Embedded Workbench (имеется в виду каталог инсталляции):

path to IAR Embedded Workbench

[Импортирование существующих проектов IAR]

Это осуществляется через меню File -> Import:

importing existing IAR project

Все, что требуется - только указать файл проекта *.ewp:

IAR Embedded Workbench project to import into Eclipse

По умолчанию система импортирования создает ссылки на файлы проекта. Это позволит оригинальным файлам сохранить свое место расположения.

В процессе импорта может появиться предупреждение, что нельзя конвертировать все опции:

IAR project importer reminder

К сожалению, не выводится подсказка, какие опции не были сконвертированы. Однако автор обнаружил, что импортированные проекты компилировались нормально.

Для импортированных проектов IAR имеется дополнительное меню:

update imported IAR project

Это меню осуществляет сборку всех конфигураций проекта. Но это обычная функция Eclipse, поэтому непонятно - для чего здесь имеется дополнительный пункт меню?

[Создание нового проекта IAR]

Теперь проекты для IAR можно создавать напрямую в Eclipse. Для этого зайдите в меню File -> New -> Project, и выберите проект C или C++:

new C project for IAR in Eclipse

Затем можно выбрать тип создаваемого проекта:

creating IAR project select type

Переход к следующему диалогу предлагает выбрать цели сборки Release/Debug. Более важен следующий шаг, где выбирается тип микроконтроллера:

IAR device selection

Примечание: тип устройства (микропроцессора) можно поменять в любой момент через меню Project -> Select Device.

После клика на кнопке Finish будет создан новый проект.

[Интеграция инструментария сборки IAR]

IAR использует тот же принцип управляемой генерации make-файлов (managed make), что и во многих других инструментах сборки, применяемых вместе с Eclipse. Интегрируются 2 вещи:

1. C-SPY (отладчик): настройки, связанные со сборкой (настройки библиотеки semihosting).
2. Панели Compiler/Assembler/Linker:

IAR build tools Eclipse integration

Опции подобны (или такие же) опциям в IAR Embedded Workbench. Панели Eclipse будет легче использовать тем, кто уже привык к интерфейсу настроек Eclipse.

Из-за того, что IAR build tools не удовлетворяют формату сообщений компилятора GNU gcc, в набор плагинов IAR входит специальный парсер ошибок (IAR Error parser):

IAR error parser

Этот парсер ошибок гарантирует, что вывод в окно консоли сообщений (Console view) будет обработан корректно, и можно будет перейти в соответствующее место просмотра проблем компиляции (Problems view).

[Отладка]

Сборка работает замечательно, но это еще не все. Для настройки отладки откройте меню Debug Configurations, выберите C/C++ Application и используйте иконку new:

creating new IAR debug configuration

Новая созданная конфигурация запуска по умолчанию использует GDB (Grub DeBugger). Нужно поменять это с использованием ссылки Select other:

new IAR launch configuration created

Здесь следует выбрать настройки, привязанные к конфигурации проекта (они не распространяются глобально на все рабочее пространство workspace), нам нужен вариант отладчика IAR C-SPY:

using IAR C SPY debugger

Нажмите OK, появится панель настроек IAR C-SPY debugger. На закладке Setup можно выбрать либо симулятор (simulator), либо соединение с аппаратным отладчиком JTAG (J-Link):

select J Link as debug connection

Примечание: автор не нашел способа использовать другой отладчик (например P&E Multilink). Так что он применял здесь J-Link, и для FRDM-KL25Z использовал Segger OpenSDA firmware.

Выбор соединения с отладчиком покажет дополнительные панели настроек. Для Freescale Kinetis-L нужно проверить, что используется SWD (не JTAG):

J Link with SWD

После этого можно отлаживать IAR-приложение отладчиком C-SPY в среде разработки Eclipse:

debugging FRDM KL25Z with C SPY and Eclipse

Дополнительно C-SPY предоставляет другие окна просмотра функций (Show View):

C SPY debug views in Eclipse

[Выводы]

Плагины 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: руководство пользователя, начало.

 

Добавить комментарий


Защитный код
Обновить

Top of Page