Собираем portable Eclipse-based-IDE для ARM
Как собрать C/C++ Eclipse IDE под Windows для сочинения и отладки микроконтроллерных программ, написано уже немало статей. Я же хочу показать, как сделать portable-версию IDE.
Сама среда Eclipse вполне себе перемещаема и не требует инсталляции. Абсолютным адресом обычно «страдают» инсталлируемые компиляторы-дебаггеры и разнообразные утилиты.
Кратко по порядку, что потребуется:
1. Папка Eclipse в корне диска C
Название и путь расположения может быть и другим. Просто так коротко и понятно.
2. Eclipse IDE for C/C++ Developers
Качать, как обычно, отсюда.
Имеется две версии: Windows 32 Bit и Windows 64 Bit. Какую лучше взять? Если IDE будет использоваться только на 64-разрядной Windows, то качаем версию 64. Если же нужна универсальная среда, способная работать и на x86, и на x64-версии Windows, нужно использовать вариант 32 Bit.
Существенной разницы в быстродействии двух версий не замечено.
3. Виртуальная машина java
Eclipse написана на java, и поэтому для работы требуется Java Virtual Machine (JVM). Виртуальная машина должна иметь ту же разрядность, что и версия Eclipse. Если ранее не была установлена, качаем и устанавливаем. Требуется версия не ниже 1.7.
Все необходимые файлы JVM обычно расположены по адресу
C:\Program Files\Java\ либо C:\Program Files (x86)\Java\.
Копируем все файлы из вышеуказанной папки в Eclipse\java\. Теперь у нас есть копия JVM, которая будет использоваться только для работы с Eclipse.
4. Командный файл для задания начальных параметров и запуска Eclipse
Создаём eclipse.bat и размещаем его в корне папки Eclipse\. В этом файле будем указывать все пути к используемым компонентам нашей IDE.
Для пробного запуска поместим в eclipse.bat следующее:
Здесь первой строкой определяем переменную DEVELOP_ROOT, которая хранит путь расположения (запуска) bat-файла. Собственно, этот параметр и обеспечивает переносимость IDE. Второй строкой задаём путь расположения JVM. Третьей строкой запускаем загрузчик Eclipse. Путь к JVM передаётся в eclipse-загрузчик посредством аргумента -vm.
Есть ещё полезные аргументы:
— путь к рабочей Workspace-папке. Она будет использоваться по умолчанию каждый раз при запуске Eclipse.
— аргументы, передаваемые в JVM. Здесь обычно указывают начальный -Xms и максимальный -Xmx размер памяти, отводимый под кучу. Если эти аргументы не указаны, то дефолтное значение берётся из файла конфигурации eclipse.ini.
Выполняем батник. Убеждаемся, что Эклипса успешно загружается и начинает работать.
5. Компилятор GNU Tools for ARM Embedded Processors
Качаем *.zip файл. Не надо никаких инсталляторов! Распаковать в папку \Eclipse\compilers\ (или в любую другую внутри Eclipse\).
6. Build tools (утилита make)
Рекомендую взять свежую версию tools из проекта GNU ARM Eclipse Plug-ins. Эта версия избавлена от проблемы 2000h (ограничение длины параметров командной строки). Там лежит инсталлятор, но его тоже совсем не обязательно выполнять. Достаточно просто распаковать (7-zip`ом например) и скопировать файлы из папки bin в Eclipse\compilers\make_utils\.
Чтобы Eclipse и его плагины могли работать с нашими утилитами, необходимо указать путь к ним при помощи переменной окружения PATH. Фишка в том, что переменная PATH, заданная в bat-файле, замещает одноимённую глобальную переменную, и позволяет указать пути к нужным нам локальным файлам. Новое значение PATH актуально только в пределах работы нашего eclipse.bat (т.е. для тех программ, которые оттуда запускаются).
Для запуска GCC-компилятора не нужен вот этот глобальный хлам:
и руками сюда вписывать абсолютные пути к компилятору не будем. А просто в бате укажем:
Отлично. Доустанавливаем необходимые плагины с утилитами и прописываем по мере необходимости относительные пути их расположения.
7. GNU ARM Eclipse plug-ins
Скачать архив, или установить напрямую через Eclipse.
8. Eclipse Embedded Systems Register View
Плагин для просмотра содержимого регистров микроконтроллера. Удобно во время отдадки. Ссылка для установки в Eclipse. Последняя версия в распакованном виде занимает всего-то 940 Мб…
9. Дрова и утилиты для отладчика JLink
Устанавливаем. Копируем файлы из C:\Program Files (x86)\SEGGER\JLinkARM_Vxxx\ в Eclipse\utils\jlink\vx.xxx. И… деинсталлируем. Всё что нужно для работы, скопировано. В том числе дрова для USB-отладчика.
Теперь для запуска jlink-gdb-сервера в Debug Configuration достаточно будет указать
Можно пропустить этот пункт, если jlink не используется.
10. OpenOCD
Сборка для Windows. Скачать, распаковать в папку Eclipse\utils\OpenOCD.
Путь для OpenOCD прописывать не требуется. Запуск сервера можно осуществить при помощи например такой конфигурации:
11. Добавить другие плагины и утилиты по вкусу
12. Скрыть DOS-окно
При запуске eclipse.bat отображается dos-окно, которое потом висит на панели задач до момента закрытия Эклипсы. Чтобы его скрыть, создайте файл eclipse.vbs в Eclipse\ с таким содержимым (updated):
Теперь при запуске этого скрипта будет запущен eclipse.bat, который в свою очередь запустит Eclipse без отображения ненужных dos-окошек.
Много кавычек требуется, чтобы «переварить» путь, содержащий пробелы.
Ещё один метод спрятать dos-окно без использования vbs — вызвать Эклипсу при помощи команды start:
Однако чёрное окошко перед скрытием всё же успевает отобразиться на 0,1-0,5 сек. Неэстетично.
Вариант vbs стартует чисто и без артефактов. Поэтому рекомендую именно его.
Заключение
В итоге получили IDE, которая содержит в одной папке все необходимые плагины/компиляторы/утилиты, и способную работать при любом пути расположения корневой папки (естественно, со стандартными ограничениями на длину пути к файлам). Полезности:
- легко сделать бэкап: сжать в архив целиком папку Eclipse и положить на полку до худших времён; впоследствии восстановление убитой IDE потребует пару минут;
- легко продублировать (т.е. просто скопировать) IDE на любой другой рабочий компьютер/ноут/принести домой/подарить другу; в отличие от инсталлятора, такая «установка» не пачкает реестр, ничего не прячет в Windows\ и Program Files\ и не распихивает конфигурационные файлы по разным системным и пользовательским папкам;
- легко обкатывать новые версии компиляторов/отладчиков; достаточно в bat-файле указать путь к новой и закомментарить путь к старой версии, затем перезапустить Eclipse;
- переносимость позволяет запустить IDE с флэшки; имеем «карманную» отладочную среду;
- можно jtag/swd-отлаживать одновременно две (и более) программы на одном компьютере, сделав отдельную копию и запустив ещё один экземпляр Eclipse.
p.s.Работоспособность ST-LINK utility не проверял, но думаю, проблем быть не должно. Нужно проверить.
p.p.s.
Если кто ещё не перешёл на Атмел-Студию, то добавить:
Компилятор WinAVR
Установить; скопировать в Eclipse\compilers\WinAVR-20100110; деинсталлировать.
The AVR Eclipse Plugin
С компилятором и плагином для AVR проблема: переносимости не получается. AVR-плагин ищет компилятор либо через реестр, либо по абсолютному пути, указанному в настройках.
— принудительно записать адрес компилятора в реестр. Либо вручную, выполнив xxx.reg файл с примерно таким содержимым:
Либо автоматически при каждом запуске Эклипсы, указав в бате
— вручную указать путь на странице настроек «Windows\Preferences\AVR\Paths» среды Eclipse.
p.p.p.s подправил статью с учётом комментариев.
IDE, собранную по описанной методике и готовую к применению, можно скачать здесь. В первую очередь требуются следующие архивы:
eclipse.7z (289 Мб) — собственно, Eclipse IDE + plugins + JVM;
compilers.7z (52 Мб) — AVR/ARM компиляторы + make;
utils.7z (62 Мб) — несколько вспомогательных утилит (в т.ч. OpenOCD, JLink).
Распаковать, запустить Eclipse.vbs.
Комментарии ( 26 )
dp0. Только стоит учесть, что оно уже включает в себя бэкслеш в конце.
Для записи адреса компилятора в реестр необходимо выполнить xxx.reg файл с таким содержимым:
dp0 — это папка с батником (%0 — нулевой аргумент ака имя батника,
Gnu arm eclipse windows
Eclipse Embedded CDT
Eclipse Embedded CDT is an open source project that includes a family of Eclipse plug-ins and tools for multi-platform embedded cross (Arm and RISC-V) development, based on GNU toolchains. The project is now part of the Eclipse Foundation, and is hosted on GitHub.
The Eclipse Embedded CDT plug-ins
These plug-ins provide Eclipse CDT (C/C++ Development Tooling) extensions for GNU embedded toolchains like xPack GNU Arm Embedded GCC, xPack GNU RISC-V Embedded GCC, etc.
In short, the Eclipse Embedded CDT plug-ins allow to create, build, debug and in general to manage Arm & RISC-V projects (executables and static/shared libraries, in both 32 and 64-bit versions) with the Eclipse framework (currently tested up to Eclipse 4.18, 2020-12). The plug-ins run on Windows, macOS and GNU/Linux. For more details please visit the features page.
Additional tools
Apart from the main Eclipse plug-ins, this project is accompanied by several other tools, distributed as separate packages.
xPack Windows Build Tools
The xPack Windows Build Tools project includes the additional tools required to perform builds on Windows (make & rm).
xPack GNU Arm Embedded GCC
The xPack GNU Arm Embedded GCC project is an alternate binary distribution that complements the official GNU Arm Embedded Toolchain maintained by Arm. Binaries for Windows, macOS and GNU/Linux are available.
xPack GNU RISC-V Embedded GCC
The xPack GNU RISC-V Embedded GCC project is a new distribution of the bare metal version of RISC-V GCC, maintained by SiFive. Binaries for Windows, macOS and GNU/Linux are available.
xPack OpenOCD
The xPack OpenOCD project is a new distribution of OpenOCD, customised for a better/more convenient integration with the OpenOCD Debugging plug-in. Binaries for Windows, macOS and GNU/Linux are available.
xPack QEMU Arm
The xPack QEMU Arm project is a fork of QEMU (an open source machine emulator), intended to provide support for Cortex-M emulation in Eclipse Embedded CDT. Binaries for Windows, macOS and GNU/Linux are available.
Notifications
To stay up-to-date with new releases, the recommended way is to follow @EmbedCDT on Twitter.
Alternatively you can subscribe to this site RSS feed.
To stay current with changes to individual projects, enable watching in the GitHub web interface for each project of interest.
License
Unless otherwise mentioned, all Eclipse plug-ins are provided free of charge under the terms of the Eclipse Public License 2.0.
Let us know if you enjoyed using this project!
If you enjoyed using this project, please let us know; here are some advices:
- the best way to praise us would be to donate; if you want to speed up development and help future versions include more and more great features, please consider donating; any contribution, small or generous, will be highly appreciated;
- star the projects you liked on GitHub (eclipse-plugins);
- follow the project on Twitter, to get notifications on new releases.
Gnu arm eclipse windows
В далеком 2015 году, в нашей статье Первый проект для VE-EP4CE10E. Часть 1. мы рассказывали о установке связки IDE Eclipse и свободного компилятора GNU ARM GCC. В принципе, за это время, появился фирменный пакет для разработки от компании ST Microelectronics под названием System Workbench For STM32. В одной из статей мы обязательно расскажем о нем. Но у нас проекты не только для контроллеров STM32. Поэтому начиная новый проект, мы решили обновить используемые нами инструменты до актуальной версии. Как оказалось, за 5 лет многие пункты нашей статьи устарели, поэтому представляем Вашему вниманию обновленную инструкцию:
Будем считать, что Java у нас уже установлена. В принципе, в процессе её установки ничего не изменилось. Далее скачиваем последнюю версию Eclipse IDE http://www.eclipse.org/downloads. На момент написания статьи, актуальной была версия Eclipse IDE 2020-06.
В данный момент eclipse устанавливается с помощью универсального установщика, копировать больше ничего, никуда не надо! ))) Так выглядит окно установки:
Путь до виртуальной машины Java должен определиться автоматически. Нам остается выбрать путь установки eclipse:
Нажимаем кнопку Inatall:
На этом установка eclipse завершена, правда у нас так и не появились обещанные пункт меню и иконка на рабочем столе. Но это уже мелочи.
Выбираем workspace с нашими проектами:
Теперь нам необходимо установить пакет программ для кросс компиляции программ для архитектуры ARM. Мы будем как и ранее устанавливать пакет расположенный по адресу: http://launchpad.net/gcc-arm-embedded. Скачиваем файл gcc-arm-none-eabi-9-2020-q2-update-win32.zip. Далее создаем каталог “D:\dev\ARM_toolchain\arm_gcc”. Копируем в него содержимое zip файла.
Утилиты Make for Windows за последние 5 лет не поменялись, поэтому оставляем прошлую версию.
Теперь перейдем к установке плагинов Eclipse необходимых для работы. За прошедшее время, проект переехал на github, а так-же обзавелся поддержкой архитектуры RISC-V. Теперь актуальные релизы находятся по этому адресу: https://github.com/gnu-mcu-eclipse/org.eclipse.epp.packages/releases. На момент написания статьи актуальной была версия 20200127-1311-gnumcueclipse-4.7.2-2019-12-R-win32.win32.x86_64.zip, качаем ее, выбираем пункт меню Help->Install New Software. В поле Work with вставляем сохраненный архив.
На этом шаге нас поджидает ошибка. Она связана с тем, что eclipse уже содержит некоторые нужные нам плагины, и их версии отличаются от тех, которые хотим поставить мы.
Поэтому мы возвращаемся на предидущий экран, нажав кнопку Back. Выбираем ссылку What is already installed? и отмечаем все пакеты, связанные с C/C++ от провайдера Eclipse CDT, и жмем Uninstall.
После удаления плагинов, eclipse перезагрузится, и предложит поставить удаленные плагины снова )))) Мы не поддадимся его уговорам, и пропустим это действие, нажав на Skip. Далее снова добавляем наши плагины, выбрав пункт меню Help->Install New Software. В этот раз все должно установится нормально. После завершения установки eclipse снова попросит перезагрузится, а после перезагрузки попросит обновить удаленные пакеты. В этот раз мы с ним соглашаемся, выбрав Install, плагины обновляются до актуальной версии.